كل حدث من هذا القبيل مصحوب باهتمام كبير من مستخدمي الإنترنت. لا يريد الناس قراءة ما حدث فحسب ، بل يريدون أيضًا إلقاء نظرة على الصور. يذهبون بحثًا عن الصور ويتوقعون العثور هناك على صور جديدة ذات صلة ربما لم تكن موجودة قبل ساعات قليلة. ينشأ الاهتمام بشكل غير متوقع وفي غضون أيام قليلة ينخفض إلى الصفر تقريبًا.
خصوصية الموقف هي أن محركات البحث التقليدية ليست مصممة لمثل هذا السيناريو. علاوة على ذلك ، يتناقض معيار حداثة المحتوى مع الخصائص المهمة الأخرى للبحث الجيد: الصلة ، والسلطة ، وما إلى ذلك. هناك حاجة إلى تقنيات خاصة ليس فقط للعثور على محتوى جديد ، ولكن أيضًا للحفاظ على التوازن في النتائج.
اسمي دينيس ساخنوف ، سأتحدث اليوم عن نهج جديد لتقديم محتوى جديد إلى Yandex.Kartinki. وزميلي دميتري كريفوكونكريفوكونسيشارك تفاصيل حول المقاييس وترتيب الصور الحديثة. سوف تتعلم عن الأساليب القديمة والجديدة لتقييم الجودة. سنذكّرك أيضًا بـ YT و Logbroker و RTMR.
لكي يعمل البحث عن الصور بشكل جيد في هذا الجزء من الاستعلامات ، التي يجب أن تحتوي الإجابات عليها على محتوى جديد ، تحتاج إلى حل المهام التالية:
- تعلم كيفية البحث عن الصور الجديدة وتنزيلها بسرعة.
- تعلم كيفية معالجتها بسرعة.
- تعرف على كيفية جمع المستندات بسرعة للبحث بناءً على الصور (ستصبح هذه النقطة أكثر وضوحًا مع تقدم القصة).
- صياغة معايير لجودة البحث عن محتوى جديد.
- تعلم كيفية ترتيب ومزج المحتوى في SERP بناءً على متطلبات الجودة.
لنبدأ بالنقطة الأولى.
1. الحصول على الصور
هناك العديد من المواقع على الإنترنت ، ينشر الكثير منها شيئًا ما بانتظام ، بما في ذلك الصور. لكي يرى الأشخاص كل هذا في البحث عن الصور ، يجب أن يصل الروبوت إلى الموقع ويقوم بتنزيل المحتوى. هذه هي الطريقة التي يعمل بها البحث عادة: نتجول في المواقع التي نعرفها بسرعة نسبيًا ونحصل على صور جديدة. ولكن عندما يتعلق الأمر بالمحتوى الذي أصبح فجأة ذا صلة في الوقت الحالي ، فإن هذا النموذج يفشل. نظرًا لضخامة الإنترنت ، من المستحيل تنزيل مستندات HTML لجميع المواقع في العالم "الآن" واستيعابها جميعًا بسرعة. على الأقل لم يحل أي شخص في العالم مثل هذه المشكلة حتى الآن.
قد يتخيل شخص ما حلًا للمشكلة بهذه الطريقة: تتبع دفعات الطلبات وقبل كل شيء معالجة تلك المصادر التي تطابق الطلبات بطريقة ما. لكن هذا يبدو جيدًا على الورق فقط. أولاً ، للتحقق من تطابق شيء ما مع شيء ما ، يجب أن يكون لديك بالفعل محتوى في متناول اليد. ثانيًا ، إذا بدأنا في فعل شيء ما بعد ذروة الطلبات ، فسنكون متأخرين بالفعل. بقدر ما يبدو الأمر مجنونًا ، فأنت بحاجة إلى العثور على محتوى جديد قبل أن تحتاج إليه. لكن كيف تتنبأ بما هو غير متوقع؟
الإجابة الصحيحة ليست بأي حال من الأحوال. لا نعرف أي شيء عن توقيت الانفجارات البركانية. لكننا نعرف المواقع التي يظهر فيها المحتوى الجديد والمفيد عادةً. ذهبنا من هذا الجانب. بدأنا في استخدام صيغة التعلم الآلي التي تعطي الأولوية للزحف إلى الزاحف لدينا بناءً على جودة المحتوى ومدى صلته به. دع مُحسنات محركات البحث يغفر لنا: لن ندخل في التفاصيل هنا. تتمثل مهمة الروبوت في تسليم مستندات HTML إلينا في أسرع وقت ممكن. بعد ذلك فقط يمكننا إلقاء نظرة على الملء والعثور على نصوص جديدة وروابط للصور وما إلى ذلك.
روابط الصور جيدة ، لكنها ليست مفيدة بشكل خاص لعمليات البحث حتى الآن. بادئ ذي بدء ، تحتاج إلى تنزيلها إلينا. ولكن مرة أخرى ، هناك عدد كبير جدًا من الروابط الجديدة للصور لتنزيلها على الفور. والمشكلة هنا ليست فقط في مواردنا: كما أن مالكي المواقع لا يريدون أن يزعجهم Yandex عن طريق الخطأ. لذلك ، نستخدم التعلم الآلي لتحديد أولويات تنزيلات الصور. العوامل مختلفة ، هناك الكثير منها ، لن نشرح كل شيء ، لكن على سبيل المثال يمكننا القول أن تكرار ظهور الصورة على مصادر مختلفة يؤثر أيضًا على الأولوية.
لدينا الآن قائمة روابط للصور. ثم نقوم بتنزيلها على أنفسنا. نحن نستخدم خدمة Logbroker الخاصة بنا. يعمل هذا الشيء كحافلة نقل ، حيث ينجو بنجاح من الازدحام المروري. قبل عدة سنوات، زميلنا أليكسي Ozeritsky بالفعل تحدث عن هذه التقنية على حبري.
هذا هو المكان الذي يتم فيه إكمال المرحلة الأولى منطقيًا. لقد حددنا المصادر واستخرجنا بعض الصور بنجاح. لم يتبق سوى القليل: لتتعلم كيفية العمل معهم.
2. معالجة الصور
الصور نفسها مفيدة بالطبع ، لكنها لا تزال بحاجة إلى التحضير. وهي
تعمل على النحو التالي : 1. في خدمة الحوسبة عديمة الحالة RTHub ، يتم إعداد إصدارات بأحجام مختلفة. يعد هذا ضروريًا للبحث ، حيث يكون من الملائم عرض الصور المصغرة في النتائج ، وإعطاء المحتوى الأصلي من الموقع المصدر عند النقر.
2. يتم حساب ميزات الشبكة العصبية. في وضع عدم الاتصال (أي مسبقًا ، وليس في وقت التصنيف) على الأجهزة المزودة بوحدة معالجة الرسومات ، يتم تشغيل الشبكات العصبية ، وستكون النتيجة نواقل لميزات الصورة. وأيضًا يتم حساب قيم المصنفات المفيدة: الجمال والجماليات والمحتوى غير المناسب وغيرها الكثير. ما زلنا بحاجة إلى كل هذا.
3. ثم باستخدام المعلومات المحسوبة من الصورة ، يتم لصق النسخ المكررة معًا. هذا مهم: من غير المرجح أن يكون المستخدم سعيدًا بنتائج البحث التي تسود فيها الصور نفسها. في الوقت نفسه ، قد تختلف قليلاً: في مكان ما يقطعون الحافة ، في مكان ما يضيفون علامة مائية ، إلخ. نقوم بلصق النسخ المكررة على مرحلتين. أولاً ، هناك تجميع تقريبي للصور القريبة باستخدام ناقلات الشبكة العصبية. في هذه الحالة ، قد لا تتطابق الصور الموجودة في الكتلة حتى في المعنى ، لكن هذا يسمح لنا بموازاة المزيد من العمل معها. ثم ، داخل كل مجموعة ، نلصق التكرارات من خلال البحث عن نقاط الربط في الصور. يرجى ملاحظة: الشبكات العصبية رائعة في البحث عن صور مماثلة ، ولكن الأدوات الأقل "عصرية" تكون أكثر فاعلية في العثور على التكرارات الكاملة ؛ يمكن أن تكون الشبكات العصبية ذكية جدًا وترى "نفس الشيء في مختلف".
لذلك ، بنهاية هذه المرحلة ، لدينا صور جاهزة في إصدارات مختلفة ، مرت عبر لصق النسخ المكررة ، مع شبكة عصبية محسوبة مسبقًا وميزات أخرى. التقديم للترتيب؟ لا ، الوقت مبكر جدا.
3. نقوم بجمع الصور في المستندات
المستند هو اسمنا للكيان الذي يشارك في الترتيب. من جانب المستخدم ، قد يبدو كأنه رابط إلى صفحة (ابحث عبر المواقع) أو صورة (ابحث عن صور) أو فيديو (ابحث عن فيديو) أو صانع قهوة (ابحث عن سلع) أو أي شيء آخر. لكن في الداخل ، خلف كل وحدة في نتائج البحث ، هناك مجموعة كاملة من المعلومات غير المتجانسة. في حالتنا - ليس فقط الصورة نفسها ، وشبكتها العصبية والميزات الأخرى ، ولكن أيضًا معلومات حول الصفحات التي يتم وضعها فيها ، والنصوص التي تصفها على هذه الصفحات ، وإحصاءات سلوك المستخدم (على سبيل المثال ، النقرات على الصورة). معًا - هذه هي الوثيقة. وقبل الشروع مباشرة في البحث ، يجب جمع الوثيقة. وآلية تكوين قاعدة البحث المعتادة للصور غير مناسبة هنا.
يتمثل التحدي الرئيسي في أن المكونات المختلفة للوثيقة يتم إنشاؤها في أوقات مختلفة وفي أماكن مختلفة. يمكن لـ Logbroker نفسه تنزيل معلومات حول الصفحات والنصوص ، ولكن ليس في وقت واحد مع الصور. تأتي بيانات سلوك المستخدم في الوقت الفعلي من خلال نظام معالجة سجل RTMR . ويتم تخزين كل هذا بشكل مستقل عن الصور. لتجميع مستند ، تحتاج إلى تجاوز مصادر البيانات المختلفة باستمرار.
نستخدم MapReduce لتشكيل قاعدة البحث الرئيسية للصور. إنها طريقة فعالة وموثوقة للعمل مع كميات هائلة من البيانات. ولكن بالنسبة لمهمة الحداثة ، فهي ليست مناسبة: نحن بحاجة إلى الحصول بسرعة كبيرة من التخزين على جميع البيانات اللازمة لتشكيل كل مستند ، والتي لا تتوافق مع MapReduce. لذلك ، في حلقة الحداثة ، نستخدم طريقة مختلفة: تأتي المعلومات غير المتجانسة إلى نظام معالجة البيانات المتدفقة RTRobot ، والذي يستخدم تخزين KV لمزامنة تدفقات معالجة البيانات المختلفة والتسامح مع الخطأ.
في حلقة النضارة ، نستخدم الجداول الديناميكية بناءً على نظام YT الخاص بنا كتخزين KV... في الواقع ، هذا مستودع لكل المحتوى الذي قد نحتاجه. مع وصول سريع جدا. ومن هناك نطلب على الفور كل ما قد يكون مفيدًا للبحث عن الصور ، وجمع المستندات ، واستخدام LogBroker ، ونقلها إلى خوادم البحث ، حيث يتم إضافة البيانات المعدة إلى قاعدة بيانات البحث.
بفضل دائرة منفصلة للعمل مع الحداثة ، والتي تغطي جميع المراحل (من البحث عن الصور على الويب إلى إعداد المستندات) ، يمكننا معالجة مئات الصور الجديدة في الثانية وتسليمها للبحث ، في المتوسط ، في بضع دقائق من ظهورها.
لكن إحضار الصور للبحث لا يكفي. يجب أن تكون قادرًا على إظهارها في نتائج البحث عندما تكون مفيدة. وهنا ننتقل إلى الخطوة التالية - تحديد المنفعة. أعطي الكلمة لديمتريكريفوكون...
4. نقيس الجودة
يبدأ النهج العام لتحسين جودة البحث باختيار مقياس. في البحث عن صور Yandex ، يكون نوع المقياس كالتالي تقريبًا:
حيث
n هو عدد الصور الأولى (المستندات) للمشكلة التي نقوم بتقييمها ؛
p_i - وزن الموضع في نتائج البحث (كلما زاد الموضع ، زاد الوزن) ؛
r_i - الصلة (مدى تطابق الصورة مع الطلب) ؛
w_i… m_i - مكونات أخرى لجودة الاستجابة (نضارة ، جمال ، حجم ...) ؛
f (...) هو نموذج يجمع هذه المكونات.
ببساطة ، كلما زادت الصور المفيدة في نتائج البحث ، زاد مقدار هذا التعبير.
بضع كلمات حول نموذج f (...). يتم تدريبها من خلال المقارنة الزوجية للصور مع بولكرز. يرى الشخص طلبًا وصورتين ، ثم يختار الأفضل. إذا كررت هذا مرات عديدة ، فسيتعلم النموذج كيفية التنبؤ بمكون الجودة الأكثر أهمية لطلب معين.
على سبيل المثال ، إذا تم طلب صور فوتوغرافية جديدة لثقب أسود ، فسيكون لمكون الحداثة أعلى معامل. وإذا كان الأمر يتعلق بجزيرة استوائية ، فإن الجمال ، لأن قلة من الناس يبحثون عن صور هواة لجزر قبيحة ، فعادة ما تكون هناك حاجة إلى صور جذابة. كلما كان تسليم الصور أفضل بصريًا في مثل هذه الحالات ، زاد احتمال استمرار الشخص في استخدام الخدمة. لكن دعونا لا ننشغل بهذا.
لذا ، فإن مهمة خوارزميات الترتيب هي تحسين هذا المقياس. لكن لا يمكنك تقدير كل الملايين من الطلبات اليومية: هذا عبء ضخم ، وقبل كل شيء ، على المتداولين. لذلك ، من أجل مراقبة الجودة ، نخصص عينة عشوائية (سلة) لفترة زمنية محددة.
يبدو أن هناك مقياسًا يتم فيه أخذ عنصر الحداثة في الاعتبار بالفعل ، وهناك مجموعة مختارة من طلبات مراقبة الجودة. يمكنك إغلاق الموضوع على هذا والانتقال إلى التصنيف. لكن لا.
في حالة الصور الجديدة ، تظهر مشكلة. عند تقييم الخوارزميات ، يجب أن نكون قادرين على فهم أننا نستجيب جيدًا لطلب المستخدم في نفس اللحظة التي يتم فيها إدخال الطلب في البحث. طلب العام الماضي الجديد قد لا يكون كذلك الآن. وشيء آخر سيكون إجابة جيدة. لذلك ، فإن سلة الطلبات الثابتة (على سبيل المثال ، في السنة) ليست مناسبة.
كطريقة أولى لحل هذه المشكلة ، حاولنا الاستغناء عن السلة على الإطلاق. باتباع منطق معين ، بدأنا في مزج الصور الجديدة في الإخراج ، ثم درسنا سلوك المستخدم. إذا تغير إلى الأفضل (على سبيل المثال ، نقر الأشخاص بنشاط أكبر على النتائج) ، فإن المزج كان مفيدًا. لكن هذا النهج به خلل: تقييم الجودة يعتمد بشكل مباشر على جودة خوارزمياتنا. على سبيل المثال ، إذا كانت الخوارزمية الخاصة بنا لا تتكيف مع بعض الطلبات ولا تخلط المحتوى ، فلن يكون هناك شيء للمقارنة ، مما يعني أننا لن نفهم ما إذا كانت هناك حاجة إلى محتوى جديد. لذلك توصلنا إلى أن هناك حاجة إلى نظام تقييم مستقل من شأنه أن يظهر الجودة الحالية لخوارزمياتنا ولا يعتمد عليها.
كان نهجنا الثاني على النحو التالي. نعم ، لا يمكننا استخدام سلة تسوق ثابتة نظرًا لتنوع الطلبات الجديدة. ولكن يمكننا أن نترك للقاعدة ذلك الجزء من السلة الذي لا توجد متطلبات نضارة له ، وإضافة الجزء الطازج هناك يوميًا. للقيام بذلك ، قمنا بإنشاء خوارزمية تحدد تلك الموجودة في دفق طلبات المستخدم التي تتطلب على الأرجح استجابة بصور جديدة. عادة ما تحتوي مثل هذه الاستعلامات على تفاصيل غير متوقعة. بالطبع ، نحن نستخدم التحقق اليدوي لتصفية الضوضاء والحطام واستيعاب المواقف الخاصة. على سبيل المثال ، قد يكون طلب البحث ذا صلة فقط ببلد معين. في هذه الحالة ، لم نعد نتلقى المساعدة من قبل المتداولين ، ولكن من قبل المقيمين: مثل هذا العمل يتطلب خبرة ومعرفة خاصة.
طلب [صورة ثقب أسود]
عند القيام بذلك ، لا نضيف مثل هذه الطلبات الجديدة إلى عربة التسوق لتقييم الجودة فحسب ، بل نحفظ أيضًا نتائج بحثنا في وقت العثور على الطلبات. وبهذه الطريقة لا يمكننا تقييم الجودة الأساسية للاستجابة فحسب ، بل أيضًا مدى سرعة استجابة بحثنا للحدث.
لذا ، دعونا نلخص النتائج الأولية. للرد بشكل جيد على الاستفسارات الجديدة ، لم نضمن التسليم السريع للبحث ومعالجة الصور فحسب ، بل أعدنا أيضًا ابتكار الطريقة التي نقيس بها الجودة. يبقى معرفة الجودة التي نقيسها.
5. الترتيب
اسمحوا لي أن أذكركم أعلاه أننا وصفنا الانتقال من النهج الأول لتقييم جودة البحث عن الصور إلى الطريقة الثانية: من خلط النتائج إلى التجديد اليومي لسلة القبول مع الطلبات الجديدة. لقد تغير النموذج - الخوارزميات نفسها تحتاج إلى تغييرات. من الصعب أن أشرح للقراء من الخارج ، لكنني سأحاول. إذا كان لديك أي أسئلة ، فلا تتردد في طرحها في التعليقات.
في السابق ، تم تنفيذ الأساليب عن طريق القياس مع الحل الذي كنت أتحدث عنهزميلنا أليكسي شاغريف. يوجد مصدر رئيسي للوثائق (فهرس البحث الرئيسي). وهناك أيضًا مصدر إضافي للوثائق الحديثة ، حيث تعتبر سرعة الدخول في البحث أمرًا بالغ الأهمية. لا يمكن تصنيف المستندات من مصادر مختلفة وفقًا لمنطق واحد ، لذلك استخدمنا مخططًا غير بسيط إلى حد ما لدمج المستندات من مصدر جديد في المشكلة الرئيسية. بعد ذلك ، قمنا بمقارنة مقاييس نتائج البحث الرئيسية بدون مستندات إضافية ومعها.
الآن الوضع مختلف. نعم ، لا تزال المصادر مختلفة ماديًا ، ولكن من حيث المقاييس ، لا يهم من أين جاءت الصورة الجديدة. ويمكنه أيضًا الوصول من المصدر الرئيسي إذا تمكن الروبوت العادي من الوصول إليه. في هذه الحالة ، ستكون المقاييس مطابقة للموقف عندما وصلت الصورة نفسها إلى المشكلة من خلال مصدر منفصل. يحتوي الأسلوب الجديد على حداثة ذات مغزى للاستعلام والنتيجة ، ولم تعد بنية المصدر مهمة جدًا. نتيجة لذلك ، يتم ترتيب كل من المستندات الرئيسية والحديثة باستخدام نفس النموذج ، مما يسمح لنا بخلط الصور الجديدة في نتائج البحث باستخدام منطق أبسط بكثير من ذي قبل: ببساطة عن طريق الفرز حسب القيمة عند إخراج نموذج واحد. بالطبع ، أثر هذا أيضًا على الجودة.
استمر. لترتيب شيء ما ، تحتاج إلى مجموعة بيانات يتم تدريب النموذج عليها. للصور الحديثة - مجموعة بيانات مع أمثلة للمحتوى الحديث. لدينا بالفعل مجموعة بيانات أساسية ، كنا بحاجة إلى تعلم كيفية إضافة أمثلة جديدة إليها. وهنا يتم تذكيرنا بسلة الاستلام ، والتي نستخدمها بالفعل لمراقبة الجودة. تختلف الطلبات الجديدة الواردة فيه كل يوم ، مما يعني أنه في اليوم التالي يمكننا تلقي طلبات الأمس الجديدة وإضافتها إلى مجموعة البيانات للتدريب. في الوقت نفسه ، لا نخاطر بإعادة التدريب ، حيث لا يتم استخدام نفس البيانات في وقت واحد للتدريب والتحكم.
نظرًا للانتقال إلى مخطط جديد ، زادت جودة نتائج البحث للصور الحديثة بشكل ملحوظ. إذا كان التدريب السابق يعتمد بشكل أساسي على إحصائيات المستخدم حول الطلبات الجديدة ، ولهذا السبب ، حصلنا على تعليقات مع خوارزمية التصنيف الحالية ، والآن يتم تجميع أساس التدريب بموضوعية في سلال الطلبات ، والتي تعتمد فقط على تدفق طلبات المستخدمين. سمح لنا هذا بمعرفة كيفية إظهار نتائج جديدة حتى عندما لم تكن هناك نتائج من قبل. بالإضافة إلى ذلك ، نظرًا لدمج خطوط أنابيب الترتيب للخطوط الرئيسية والجديدة ، بدأ الأخير في التطور بشكل أسرع بشكل ملحوظ (تصل جميع التحسينات في مصدر واحد الآن تلقائيًا إلى الثاني).
في منشور واحد ، من المستحيل التحدث بالتفصيل عن جميع الأعمال التي قام بها فريق البحث عن الصور في Yandex. نتمنى أن نكون قد نجحنا في توضيح ما هي مميزات إيجاد صور جديدة. ولماذا يلزم إجراء تغييرات في جميع مراحل البحث ، حتى يتمكن المستخدمون من العثور بسرعة على صور جديدة لبلوتو أو أي معلومات أخرى ذات صلة.