كيف نستخدم item2vec للتوصية بمنتجات مماثلة

مرحبًا ، اسمي فاسيا روبتسوف ، أقوم بتطوير أنظمة التوصية في Avito.


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


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


في المقالة سأخبرنا كيف قمنا بتحسين توصيات item2item الخاصة بنا بسبب item2vec وكيف أثر ذلك على توصيات user2item.



كما كان من قبل


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


   , , . ,    « wifi » «SQ11» ,  , , . — «  », «   », «-» « ». ,   , . «»       ,  .


, ,   .   finn.no "Deep neural network marketplace recommenders in online experiments".


item2vec


item2vec  ,     ,   .


 ,   .   .



    ,  ,  . ,   — .   , ,   ,   ,   .  ?   ,  :



  , 0.6 ± 0.1.       .



 .  , ,   .   ?


, ,   — , ,   . , ,   .   . , . ,      ,  ,   -.


 


  . , , 8 .     3 .



, ,   . ,  desktop   . ,  app — .


  540  180  .



  — 14 . ,   ,   . ,   «» «»  . .   — .


    :



— 128- .


— ,   embedding : , , (  , ) (  ).  title embedding ,   — lstm. — one-hot .   — .


title , ,  .   , .   . , — lstm GRU .    , .


. ,  . —   . , . — , .


  — .  ,  -1  1. ,  128,    int8   .


  . ,  int8.


GPU, 20 . CPU GPU .


,   id  .  , .



, 128- .
   ,   .   :


1. .



2. 4000  ( — ,   GPU)   .   ,     ,  .



3. , .
— . 100    , 100    .



4. — cross entropy loss — .



  , forward  4001 , backward —  101,  ,  .


    500 000 000 () × 4 000 ( ) × 5 () = 10 ^ 13 . 2  4 x Tesla P40.


  :




  : 7    , 6    ,    . ,   , .   prec@8.




  item2vec   « ».    AvitoNet. AvitoNet — ,   .    .     -.


  3    6 .     — 62 .  , — 2048,   GPU,  CPU . :  ,   — , 3 , . , .   ,   , . Prec@8  0,4%, , .




  « »:



  « / /122—128 (6—8 )».   :



  , ,   «» «».


 item2vec :



« ». -, -   «» «».  , ,   «». , — !



    top-n .   Sphinx.    , .  200ms (p99) 200K rpm.



    .     -.    , , - — , .   .


  .



  ,  .   :


sim(i, j) = <v_i, v_j> * (log(t_j + 1) ^ a_c)


i j — , j (t_j = now - start_time_j).


, , ,  , .       . , c — a_c. ,   0,   . ,   — .   .  , ,   - . , .



, .
— ,    , , .


 item2vec  30%  ,  20%    .


All Articles