嗨,我叫Vasya Rubtsov,我正在Avito开发推荐系统。
广告空间的主要目的是帮助卖家找到买家,以及正在寻找产品的买家。与在线商店不同,销售事实发生在我们平台之外,因此我们无法跟踪。因此,对我们而言,关键指标是“联系”-这是按下产品卡上的“显示电话”按钮,或者是在信使中与卖家开始对话的事件。通过此指标,我们得到“买家”-每天至少进行一次联系的唯一身份用户数。
Avito推荐部门处理的两个主要产品是主页或user2item上的用户推荐,以及产品卡或item2item上的大量类似广告。所有广告浏览量的三分之一和所有联系人的四分之一来自推荐,因此引荐引擎在Avito中扮演着重要的角色。
在本文中,我将介绍由于item2vec我们如何改进了item2item建议,以及这如何影响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% .