Hola, mi nombre es Vasya Rubtsov, estoy desarrollando sistemas de recomendaciĂłn en Avito.
El objetivo principal del espacio publicitario es ayudar a los vendedores a encontrar compradores y compradores que buscan productos. A diferencia de las tiendas en lĂnea, el hecho de la venta ocurre fuera de nuestra plataforma, y ​​no podemos rastrear esto. Por lo tanto, la mĂ©trica clave para nosotros es "contacto": este es el caso de presionar el botĂłn "mostrar telĂ©fono" en la tarjeta del producto, o el comienzo de un diálogo en el mensajero con el vendedor. De esta mĂ©trica obtenemos "compradores": la cantidad de usuarios Ăşnicos por dĂa que hicieron al menos un contacto.
Los dos productos principales con los que se ocupa el departamento de recomendaciones de Avito son las recomendaciones de los usuarios en la página de inicio o user2item y un bloque de anuncios similares en la tarjeta del producto o item2item. Un tercio de todas las vistas de anuncios y una cuarta parte de todos los contactos provienen de recomendaciones, por lo que los motores de referencia juegan un papel importante en Avito.
En el artĂculo contarĂ© cĂłmo mejoramos nuestras recomendaciones de item2item debido a item2vec y cĂłmo esto afectĂł las recomendaciones de user2item.

Como era antes
Anteriormente, para buscar anuncios similares, utilizamos un modelo lineal sobre las caracterĂsticas obtenidas para un par de anuncios: el nĂşmero de palabras coincidentes en el tĂtulo y la descripciĂłn del anuncio, ubicaciones coincidentes, parámetros, proximidad por geografĂa. Los coeficientes en este modelo fueron seleccionados por bandidos multi-armados. Lo dijimos en un artĂculo separado .
, , . , « 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% .