تخيل أن لديك مجموعة بيانات من مئات الآلاف إلى ملايين الصور دون أي بيانات وصفية تصف محتوى كل صورة. كيف يمكننا بناء نظام قادر على العثور على مجموعة فرعية من تلك الصور التي تجيب بشكل أفضل على استعلام بحث المستخدم؟
ما سنحتاجه بشكل أساسي هو محرك بحث قادر على ترتيب نتائج الصور بالنظر إلى مدى توافقها مع استعلام البحث، والذي يمكن التعبير عنه إما بلغة طبيعية أو بواسطة صورة استعلام أخرى.
الطريقة التي سنحل بها المشكلة في هذا المنشور هي من خلال تدريب نموذج عصبي عميق يتعلم تمثيلًا ثابت الطول (أو تضمينًا) لأي صورة ونص مدخلين ويجعله بحيث تكون تلك التمثيلات قريبة في الفضاء الإقليدي إذا كانت أزواج النص- الصورة أو الصورة "متشابهة".
لم أتمكن من العثور على مجموعة بيانات كبيرة بما يكفي لتصنيف نتائج البحث ولكنني تمكنت من الحصول على مجموعة البيانات هذه: http://jmcauley.ucsd.edu/data/amazon/ التي تربط صور عناصر التجارة الإلكترونية بصورها العنوان والوصف. سوف نستخدم هذه البيانات الوصفية كمصدر إشرافي للتعرف على تمثيلات الصور النصية المرتبطة ذات المغزى. اقتصرت التجارب على عناصر الموضة (الملابس والأحذية والمجوهرات) وعلى 500000 صورة من أجل إدارة الحسابات وتكاليف التخزين.
تربط مجموعة البيانات المتوفرة لدينا كل صورة بوصف مكتوب باللغة الطبيعية. لذلك نحدد مهمة نريد أن نتعلم فيها تمثيلًا متصلًا وثابت الطول للصور والنص بحيث يكون كل تمثيل للصورة قريبًا من تمثيل وصفها.
يأخذ النموذج 3 مدخلات: الصورة (وهي نقطة الارتساء)، وعنوان الصورة + الوصف (المثال الإيجابي)، والمدخل الثالث عبارة عن عينة عشوائية من النص (المثال السلبي).
ومن ثم نحدد نموذجين فرعيين:
يُنتج النموذج الفرعي للصورة التضمين للمرساة **E_a ** ويقوم النموذج الفرعي للنص بإخراج التضمين للعنوان الإيجابي + الوصف E_p والتضمين للنص السلبي E_n .
نقوم بعد ذلك بالتدريب من خلال تحسين الخسارة الثلاثية التالية:
L = الحد الأقصى (د(E_a، E_p)-d(E_a، E_n)+alpha، 0)
حيث d هي المسافة الإقليدية وalpha هي معلمة مفرطة تساوي 0.4 في هذه التجربة.
ما تسمح به هذه الخسارة بشكل أساسي هو جعل **d(E_a, E_p) صغيرًا وجعل d(E_a, E_n) **كبيرًا، بحيث يكون تضمين كل صورة قريبًا من تضمين وصفها وبعيدًا عن تضمين وصفها نص عشوائي.
بمجرد أن تعلمنا نموذج تضمين الصورة ونموذج تضمين النص، يمكننا تصورهما من خلال عرضهما في بعدين باستخدام tsne (https://scikit-learn.org/stable/modules/generated/sklearn.manifold.TSNE.html).
يتم ربط صور الاختبار والوصف النصي المقابل لها بخطوط خضراء
يمكننا أن نرى من الحبكة أنه بشكل عام، في مساحة التضمين، تكون الصور والأوصاف المقابلة لها متقاربة. وهو ما كنا نتوقعه بالنظر إلى خسارة التدريب التي تم استخدامها.
نستخدم هنا بعض الأمثلة على الاستعلامات النصية للبحث عن أفضل التطابقات في مجموعة مكونة من 70000 صورة. نقوم بحساب تضمين النص للاستعلام ثم التضمين لكل صورة في المجموعة. قمنا أخيرًا باختيار أفضل 9 صور هي الأقرب إلى الاستعلام في مساحة التضمين.
توضح هذه الأمثلة أن نماذج التضمين قادرة على تعلم التمثيلات المفيدة للصور والتضمينات ذات التركيب البسيط للكلمات.
سنستخدم هنا صورة كاستعلام ثم نبحث في قاعدة البيانات التي تضم 70.000 صورة عن الأمثلة الأكثر تشابهًا معها. يتم تحديد الترتيب حسب مدى قرب كل زوج من الصور في مساحة التضمين باستخدام المسافة الإقليدية.
توضح النتائج أن التضمينات التي تم إنشاؤها هي تمثيلات عالية المستوى للصور التي تلتقط أهم خصائص الكائنات الممثلة دون أن تتأثر بشكل مفرط بالاتجاه أو الإضاءة أو التفاصيل المحلية البسيطة، دون أن يتم تدريبها بشكل صريح على القيام بذلك.
لقد عملنا في هذا المشروع على كتل التعلم الآلي التي تسمح لنا ببناء محرك بحث يعتمد على الكلمات الرئيسية والصور ويتم تطبيقه على مجموعة من الصور. الفكرة الأساسية هي تعلم وظيفة تضمين ذات معنى ومنضمة للنص والصورة ثم استخدام المسافة بين العناصر في مساحة التضمين لتصنيف نتائج البحث.
مراجع :