في قطاع الطرق اللصوص متعدد الأسلحة

مرحبا بالجميع! اسمي ميشا كامينشيكوف ، أنا منخرط في علوم البيانات وتطوير الخدمات الدقيقة في فريق توصيات Avito. في هذه المقالة ، سأتحدث عن توصياتنا للإعلانات المماثلة وكيف نقوم بتحسينها باستخدام ماكينات الألعاب المتعددة. لقد قدمت عرضًا تقديميًا حول هذا الموضوع في مؤتمر Highload ++ Siberia وفي حدث "البيانات والعلوم: التسويق" .


الصورة

مخطط المقالة



توصيات بشأن Avito


أولاً ، نظرة عامة قصيرة على جميع أنواع التوصيات الموجودة على Avito.


توصيات مخصصة لعناصر المستخدم


تستند توصيات عنصر المستخدم على تصرفات المستخدم وهي مصممة لمساعدته في العثور بسرعة على المنتج الذي يهمك ، أو إظهار شيء مثير للاهتمام. يمكن رؤيتها على الصفحة الرئيسية للموقع والتطبيقات أو في القوائم البريدية. لإنشاء مثل هذه التوصيات ، نستخدم نوعين من النماذج: دون اتصال بالإنترنت وعبر الإنترنت.
تستند النماذج غير المتصلة بالإنترنت إلى خوارزميات حساب المصفوفة التي يتم تدريبها على جميع البيانات في غضون أيام قليلة ، ويتم تخزين التوصيات في مستودع سريع لتوزيعها على المستخدمين. تنظر النماذج عبر الإنترنت في التوصيات على الفور باستخدام محتوى الإعلانات من سجل المستخدم. ميزة النماذج غير المتصلة بالإنترنت هي أنها توفر توصيات أكثر دقة وعالية الجودة ، لكنها لا تأخذ في الاعتبار أحدث إجراءات المستخدم التي يمكن أن تحدث أثناء تدريب النموذج ، عندما تم إصلاح عينة التدريب. تستجيب النماذج عبر الإنترنت على الفور لإجراءات المستخدم ، ويمكن أن تتغير التوصيات مع كل إجراء.


توصيات البداية الباردة


لدى جميع أنظمة التوصيات ما يسمى بمشكلة "البداية الباردة". معناه أن النماذج الموضحة أعلاه لا يمكنها إعطاء توصيات لمستخدم جديد بدون تاريخ من الإجراءات. في مثل هذه الحالات ، من الأفضل تعريف المستخدم بما هو موجود على الموقع ، مع اختيار ليس فقط الإعلانات العشوائية ، ولكن ، على سبيل المثال ، الإعلانات من الفئات الشائعة في منطقة المستخدم.


توصيات البحث


بالنسبة للمستخدمين الذين غالبًا ما يستخدمون البحث ، نقوم بعمل اختصارات موصى بها للبحث - يرسلون المستخدم إلى فئة معينة ويضعون فلاتر. يمكن العثور على هذه التوصيات في أعلى الصفحة الرئيسية للتطبيق.


توصيات البند - البند


يتم عرض توصيات العناصر على الموقع في شكل إعلانات مماثلة على بطاقة المنتج. يمكن رؤيتها على جميع الأنظمة الأساسية تحت وصف الإعلان. نموذج التوصية حاليًا محتوى حصريًا ولا يستخدم معلومات حول إجراءات المستخدم ، لذا يمكننا على الفور التقاط إجراءات مماثلة من بين الإعلانات النشطة على الموقع لإعلان جديد. لاحقًا في المقالة سأتحدث عن هذا النوع الخاص من التوصيات.


بمزيد من التفاصيل حول جميع أنواع التوصيات حول Avito التي كتبناها بالفعل في مدونتنا. اقرأ إذا كنت مهتمًا.


إعلانات مماثلة


إليك ما تبدو عليه كتلة الإعلانات المتشابهة:


الصورة

ظهر هذا النوع من التوصيات على الموقع أولاً وقبل كل شيء ، وتم تنفيذ المنطق على محرك بحث أبو الهول . في الواقع ، هذا النموذج هو مزيج خطي من العوامل المختلفة: مطابقة الكلمة ، المسافة ، فرق السعر ومعلمات أخرى.


استنادًا إلى معلمات الإعلان المستهدف ، يتم إنشاء طلب في أبو الهول ، ويتم استخدام أدوات التصنيف المدمجة للترتيب.


مثال على الطلب:


SELECT id, weight as ranker_weight, ranker_weight * 10 + (metro_id=42) * 5 + (location_id=2525) * 10 + (110000 / (abs(price - 1100000) + 110000)) * 5 as rel FROM items WHERE MATCH('@title |scott|scale|700|premium') AND microcat_id=100 ORDER BY rel DESC, sort_time DESC LIMIT 0,32 OPTION max_matches=32, ranker=expr('sum(word_count)') 

إذا حاولت وصف هذا النهج بشكل أكثر رسمية ، يمكنك أن تتخيل المراتب في شكل بعض الأوزان w1...wn، ومعلمات الإعلان s1...sn(المصدر هو الإعلان الأصلي) و t1...tn(إعلان مستهدف). لكل من المعلمات نقدم دالة التشابه f(s،t). يمكن أن تكون ثنائية (على سبيل المثال ، صدفة مدينة الإعلان) ، يمكن أن تكون منفصلة (المسافة بين الإعلانات) ومستمرة (على سبيل المثال ، الفرق النسبي في السعر). ثم سيتم الإعلان عن النتيجة النهائية في إعلانين من خلال الصيغة

الدرجة $ = \ sum_ {i = 1} ^ {n} {w_i} * {f_i} (s_i، t_i) $


باستخدام محرك البحث ، يمكنك بسرعة قراءة قيمة هذه الصيغة لعدد كبير بما فيه الكفاية من الإعلانات وترتيب التسليم في الوقت الحقيقي.

أظهر هذا النهج نفسه بشكل جيد في شكله الأصلي ، ولكن كان له عيوب كبيرة.


مشاكل الاقتراب


أولاً ، تم اختيار الأوزان في البداية بطريقة الخبراء ولم تكن موضع شك. في بعض الأحيان كانت هناك تغييرات في الأوزان ، ولكن تم إجراؤها على أساس ملاحظات نقطة ، وليس على أساس تحليل سلوك المستخدم بشكل عام.


ثانيًا ، كانت الأوزان مشفرة على الموقع ، وكان إجراء تغييرات عليها غير مريح للغاية.


خطوة نحو الأتمتة


كانت الخطوة الأولى نحو تحسين نموذج التوصية هي إزالة كل المنطق في خدمة مايكرو منفصلة في بايثون. تنتمي هذه الخدمة بالفعل بالكامل إلى فريق التوصيات الخاص بنا ، ويمكننا إجراء التجارب في كثير من الأحيان.
يمكن أن تتميز كل تجربة بما يسمى "التكوين" - مجموعة من الأوزان للمراتب. نريد إنشاء تكوينات واختيار الأفضل بناءً على إجراءات المستخدم. كيف يمكن إنشاء هذه التكوينات؟


الخيار الأول ، الذي كان منذ البداية ، هو جيل الخبراء من التكوينات. بمعنى ، باستخدام المعرفة من مجال الموضوع ، نفترض أنه ، على سبيل المثال ، عند البحث عن سيارة ، يهتم الأشخاص بخيارات قريبة من السعر الذي يشاهدونه ، وليس فقط نماذج مماثلة ، والتي يمكن أن تكلف أكثر بكثير.


الخيار الثاني هو تكوينات عشوائية. قمنا بتعيين نوع من التوزيع لكل من المعلمات ثم أخذ عينة من هذا التوزيع. هذه الطريقة أسرع لأنك لا تحتاج إلى التفكير في كل من المعلمات لجميع الفئات.


خيار أكثر تعقيدًا هو استخدام الخوارزميات الجينية. نحن نعلم أيًا من التكوينات يمنحنا أفضل تأثير من حيث إجراءات المستخدم ، لذلك في كل تكرار يمكننا تركها وإضافة أخرى جديدة: عشوائي أو خبير.


يعد استخدام التعلم الآلي خيارًا أكثر تعقيدًا يتطلب تاريخًا طويلًا من التجارب. يمكننا تمثيل مجموعة من المعلمات كمتجه لميزة ومقياس الهدف كمتغير هدف. ثم سنجد مثل هذه المجموعة من المعلمات التي ، وفقًا لتقييم النموذج ، ستزيد من مقياسنا المستهدف.
في حالتنا ، استقرنا على النهجين الأولين ، بالإضافة إلى الخوارزميات الجينية في أبسط صورة: نترك الأفضل ، ونزيل الأسوأ.


وصلنا الآن إلى الجزء الأكثر إثارة للاهتمام من المقالة: يمكننا إنشاء التكوينات ، ولكن كيف نجري التجارب بحيث تكون سريعة وفعالة؟


التجريب


يمكن إجراء التجربة في شكل اختبار A / B / .... للقيام بذلك ، نحتاج إلى إنشاء تكوينات N ، والانتظار لنتائج مهمة إحصائيًا ، وأخيرًا ، حدد أفضل تكوين. يمكن أن يستغرق هذا وقتًا طويلاً ، وخلال الاختبار يمكن لمجموعة ثابتة من المستخدمين تلقي توصيات ذات جودة رديئة - مع إنشاء عشوائي للتكوينات ، هذا ممكن تمامًا. أيضًا ، إذا أردنا إضافة بعض التكوين الجديد إلى التجربة ، فسنضطر إلى إعادة تشغيل الاختبار مرة أخرى. لكننا نريد إجراء التجارب بسرعة ، حتى نتمكن من تغيير ظروف التجربة. وحتى لا يعاني المستخدمون من تكوينات سيئة عمدا. سوف يساعدنا العديد من قطاع الطرق المسلحين في ذلك.


قطاع طرق متعدد الأسلحة


جاء اسم الطريقة من "قطاع الطرق المسلحين" - ماكينات القمار في كازينو برافعة يمكنك سحبها والحصول على فوز. تخيل أنك في غرفة بها عشرات من هذه الأجهزة ، ولديك N محاولات مجانية للعب على أي منها. بالطبع ، تريد كسب المزيد من المال ، ولكنك لا تعرف مسبقًا الجهاز الذي يحقق أكبر ربح. تكمن مشكلة العديد من قطاع الطرق المسلحين على وجه التحديد في العثور على الجهاز الأكثر ربحية مع الحد الأدنى من الخسائر (اللعب على الآلات غير المواتية).


إذا قمنا بصياغة هذا من حيث مهمة توصياتنا ، فقد اتضح أن الأجهزة هي تكوينات ، وكل محاولة هي اختيار تكوين لتكوين التوصيات ، والمكاسب هي بعض المقاييس المستهدفة اعتمادًا على ملاحظات المستخدم.


ميزة اللصوص عبر اختبارات A / B / ...


ميزتها الرئيسية هي أنها تسمح لنا بتغيير مقدار حركة المرور اعتمادًا على نجاح تكوين معين. هذا يحل فقط مشكلة أن الناس سيحصلون على توصيات سيئة طوال التجربة. إذا لم ينقروا على التوصيات ، فسوف يفهم قطاع الطرق هذا بسرعة ولن يختاروا هذا التكوين. بالإضافة إلى ذلك ، يمكننا دائمًا إضافة تهيئة جديدة إلى التجربة أو ببساطة حذف واحدة من الحالية. يمنحنا جميعًا المرونة في إجراء التجارب وحل مشاكل النهج من خلال اختبار A / B / ....



استراتيجيات العصابات


هناك الكثير من الاستراتيجيات لحل مشكلة ماكينات الألعاب المتعددة. بعد ذلك ، سأصف عدة فئات من الاستراتيجيات سهلة التنفيذ التي حاولنا تطبيقها في مهمتنا. ولكن عليك أولاً أن تفهم كيفية مقارنة فعالية الاستراتيجيات. إذا كنا نعرف مسبقًا أي قلم يعطي أقصى ربح ، فستكون الإستراتيجية المثلى دائمًا هي سحب هذا القلم. نحدد عدد الخطوات ونحسب المكافأة المثلى Ropt. للاستراتيجية ، سنحسب أيضًا المكافأة. Rاستراتيجيةوإدخال المفهوم نأسف $ :

regret=RoptRاستراتيجية


يمكن مقارنة الاستراتيجيات الأخرى بهذه القيمة فقط. ألاحظ أن الاستراتيجيات لها طبيعة التغيير نأسف $ قد تكون مختلفة ، وقد تكون إحدى الإستراتيجيات أفضل لعدد قليل من الخطوات ، وأخرى لإحدى الخطوات الكبيرة.

استراتيجيات الجشع


كما يوحي الاسم ، تستند استراتيجيات الجشع على مبدأ واحد بسيط - اختر دائمًا القلم الذي يعطي في المتوسط ​​أعظم مكافأة. تختلف استراتيجيات هذا الفصل في كيفية استكشاف البيئة لتحديد هذا القلم بالذات. هناك ، على سبيل المثال ،  epsilongreedyاستراتيجية. لديها معلمة واحدة -  epsilon، والذي يحدد الاحتمالية التي نختار بها ليس أفضل قلم ، ولكن عشوائي ، وبالتالي استكشاف بيئتنا. يمكنك أيضًا تقليل احتمالية البحث بمرور الوقت. تسمى هذه الاستراتيجية  إبسيلونيتناقص. استراتيجيات الجشع سهلة التنفيذ ومفهومة ، لكنها ليست فعالة دائمًا.


UCB1


هذه الاستراتيجية حتمية تمامًا - يتم تحديد القلم بشكل فريد من المعلومات المتاحة حاليًا. هنا الصيغة:

arm=arg undersetjmax( overlinexj+ sqrt frac2 lnnnj)


جزء من الصيغة مع  overlinexjيعني منتصف القلم j وهو مسؤول عن الاستغلال ، تمامًا كما هو الحال في استراتيجيات الجشع. الجزء الثاني من الصيغة مسؤول عن الاستكشاف ، nهو العدد الإجمالي للإجراءات nj- عدد أعمال القلم j. هناك تقدير مثبت لهذه الاستراتيجية على نأسف $ . يمكنك أن تقرأ عنها هنا .

أخذ عينات طومسون


في هذه الإستراتيجية ، نعين توزيعًا عشوائيًا لكل قلم ، وفي كل خطوة نأخذ رقمًا من هذا التوزيع ، ونختار القلم وفقًا للحد الأقصى. استنادًا إلى التعليقات ، نقوم بتحديث معلمات التوزيع بحيث تتوافق أفضل الأقلام مع التوزيع بمتوسط ​​كبير ، ويقل تشتته مع عدد الإجراءات. يمكنك قراءة المزيد عن هذه الاستراتيجية في مقال ممتاز.


مقارنة الإستراتيجية


دعونا محاكاة الاستراتيجيات الموصوفة أعلاه على بيئة اصطناعية بثلاثة مقابض ، كل منها يتوافق مع توزيع برنولي مع معلمة p=0.3،0.5،0.7دولاوفقًا لذلك. استراتيجياتنا:


  •  epsilongreedyمع  epsilon=0.1؛
  • UCB1 ؛
  • أخذ عينات طومسون بيتا


يظهر الرسم البياني أن استراتيجية الجشع نأسف $ ينمو بشكل خطي ، وفي الإستراتيجيتين الأخريين - لوغاريتميا ، وأخذ عينات طومسون يظهر نفسه أفضل بكثير من الآخرين ولها نأسف $ يكاد لا ينمو مع عدد الخطوات.
رمز المقارنة متاح على جيثب .


لقد تعرفت عليك على قطاع طرق متعدد الأسلحة والآن يمكنني أن أخبرك كيف استخدمناهم.


قطاع طرق متعددو الأسلحة في أفيتو


لذلك ، لدينا العديد من التكوينات (مجموعات من المعلمات) ، ونريد اختيار الأفضل منها بمساعدة العصابات المتعددة الأسلحة. لتعلم قطاع الطرق ، نحتاج إلى تفصيل واحد مهم - تعليقات المستخدمين. في الوقت نفسه ، يجب أن يتوافق اختيار الإجراءات التي نتدرب عليها مع أهدافنا - أريد من المستخدمين إجراء المزيد من المعاملات مع توصيات أفضل.


اختر الإجراءات المستهدفة


كان النهج الأول لاختيار الإجراءات المستهدفة بسيطًا وساذجًا للغاية. كمقياس الهدف ، اخترنا عدد المشاهدات ، وتعلم قطاع الطرق كيفية تحسين هذا المقياس بشكل جيد. ولكن كانت هناك مشكلة: المزيد من وجهات النظر ليست دائما جيدة. على سبيل المثال ، في فئة "تلقائي" ، تمكنا من زيادة عدد المشاهدات بنسبة 15٪ ، ولكن في نفس الوقت انخفض عدد طلبات الاتصال بنفس المقدار. عند الفحص الدقيق ، اتضح أن قطاع الطرق اختاروا قلمًا تم إيقاف تشغيل المرشح حسب المنطقة. لذلك ، أظهر الحظر إعلانات من جميع أنحاء روسيا ، حيث يكون اختيار الإعلانات المماثلة بالطبع أكبر. تسبب هذا في زيادة عدد المشاهدات: ظاهريًا ، بدت التوصيات ذات جودة أفضل ، ولكن عندما أدخلوا بطاقة المنتج ، أدرك الناس أن السيارة كانت بعيدة جدًا عنهم ولم يقدموا طلب اتصال.


الطريقة الثانية هي معرفة كيفية التحويل من عرض كتلة إلى طلب اتصال. بدا هذا النهج أفضل من النهج السابق ، فقط إذا كان هذا المقياس هو المسؤول المباشر تقريبًا عن جودة التوصيات. ولكن ظهرت مشكلة أخرى - الموسمية اليومية. اعتمادًا على الوقت من اليوم ، يمكن أن تختلف قيم التحويل أربع مرات (!) (غالبًا ما يكون هذا أكثر من تأثير التكوين الأفضل) ، واستمر تحديد القلم الذي كان محظوظًا لاختياره في الفاصل الزمني الأول بتحويل مرتفع أكثر من غيرها.



ديناميكيات التحويل اليومية (تم تغيير قيم المحور ص)


وأخيرا ، النهج الثالث. نستخدمه الآن. نختار المجموعة المرجعية ، التي تتلقى دائمًا توصيات حول الخوارزمية نفسها ولا تخضع لتأثير قطاع الطرق. بعد ذلك ، ننظر إلى العدد المطلق لجهات الاتصال في مجموعتنا المستهدفة والمرجعية. لا تخضع علاقتهم للموسمية ، حيث نختار المجموعة المرجعية بشكل عشوائي ، ويستند هذا النهج بشكل ملائم على أخذ عينات طومسون.


استراتيجيتنا


نحن نميز بين المرجع والمجموعات المستهدفة ، كما هو موضح أعلاه. ثم تهيئة مقابض N (كل منها يتوافق مع التكوين) مع توزيع بيتا B( alpha=1، beta=1)


في كل خطوة:


  • لكل قلم نأخذ رقمًا من التوزيع المقابل له ونختار القلم وفقًا للحد الأقصى ؛
  • احسب عدد الإجراءات في المجموعات Rtargetو Rreferenceلفترة معينة من الوقت (في حالتنا 10 ثوان) وتحديث معلمات التوزيع للقلم المحدد:  alpha mathrel+=Rtarget،  beta mathrel+=Rreference.

باستخدام هذه الإستراتيجية ، نقوم بتحسين المقياس الذي نحتاج إليه ، وعدد طلبات الاتصال في المجموعة المستهدفة ، وتجنب المشاكل التي وصفتها أعلاه. بالإضافة إلى ذلك ، في اختبار A / B العالمي ، أظهر هذا النهج أفضل النتائج.


النتائج


تم تنظيم اختبار A / B العام على النحو التالي: يتم تقسيم جميع الإعلانات عشوائيًا إلى مجموعتين. إلى إعلانات أحدهم نعرض التوصيات بمساعدة قطاع الطرق ، وإلى الآخر - مع خوارزمية الخبراء القديمة. ثم نقيس عدد طلبات الاتصال بالتحويل في كل مجموعة (الطلبات المقدمة بعد التبديل إلى الإعلانات من الكتلة المماثلة). في المتوسط ​​، في جميع الفئات ، تتلقى مجموعة بها قطاع طرق أكثر من 10٪ من الإجراءات المستهدفة أكثر من التحكم ، ولكن في بعض الفئات يمكن أن يصل هذا الاختلاف إلى 30٪.


وتسمح لك المنصة التي تم إنشاؤها بتغيير المنطق بسرعة ، وإضافة التكوينات إلى قطاع الطرق ، والتحقق من الفرضيات.


إذا كانت لديك أسئلة حول خدمة التوصية الخاصة بنا أو قطاع الطرق المتعددين ، فاسألهم في التعليقات. سأكون سعيدا للإجابة.

Source: https://habr.com/ru/post/ar417571/


All Articles