Cómo mejoramos drásticamente la calidad de las recomendaciones en el comercio minorista fuera de línea

¡Hola a todos! Mi nombre es Sasha, soy CTO y cofundadora de LoyaltyLab. Hace dos años, mis amigos y yo, como todos los estudiantes pobres, íbamos por la noche a comprar cerveza a la tienda más cercana a nuestra casa. Nos molestó mucho que el minorista, sabiendo que vendríamos a comprar cerveza, no ofreciera un descuento en patatas fritas o galletas saladas, ¡aunque esto era muy lógico! No entendíamos por qué sucedía esta situación y decidimos iniciar nuestra propia empresa. Bueno, como beneficio adicional, hazte descuentos todos los viernes en esas mismas fichas.

Cómo mejoramos drásticamente la calidad de las recomendaciones en el comercio minorista fuera de línea

Y todo llegó al punto en el que presento material sobre el aspecto técnico del producto en GTC de NVIDIA. Estamos felices de compartir nuestro trabajo con la comunidad, por eso publico mi informe en forma de artículo.

introducción

Como todos los demás al comienzo del viaje, comenzamos con una descripción general de cómo se crean los sistemas de recomendación. Y la arquitectura más popular resultó ser el siguiente tipo:
Cómo mejoramos drásticamente la calidad de las recomendaciones en el comercio minorista fuera de línea

Está formado por dos partes:

  1. Muestreo de candidatos para recomendaciones utilizando un modelo simple y rápido, generalmente colaborativo.
  2. Ranking de candidatos con un modelo de contenido más complejo y lento, teniendo en cuenta todas las características posibles de los datos.

En adelante utilizaré los siguientes términos:

  • candidato/candidato para recomendaciones – un par usuario-producto que potencialmente podría incluirse en recomendaciones en producción.
  • extracción de candidatos/extractor/método de extracción de candidatos — un proceso o método para extraer “candidatos a recomendación” de los datos disponibles.

El primer paso suele implicar el uso de diferentes variaciones de filtrado colaborativo. El más popular - ALS. Es sorprendente que la mayoría de los artículos sobre sistemas de recomendación solo revelen varias mejoras en los modelos colaborativos en la primera etapa, pero nadie hable mucho sobre otros métodos de muestreo. Para nosotros, el enfoque de usar solo modelos colaborativos y varias optimizaciones con ellos no funcionó con la calidad que esperábamos, por lo que investigamos específicamente en esta parte. Y al final del artículo mostraré cuánto pudimos mejorar ALS, que era nuestra base.

Antes de pasar a describir nuestro enfoque, es importante señalar que en las recomendaciones en tiempo real, cuando es importante para nosotros tener en cuenta los datos que ocurrieron hace 30 minutos, realmente no hay muchos enfoques que puedan funcionar en el tiempo requerido. Pero, en nuestro caso, tenemos que recopilar recomendaciones no más de una vez al día y, en la mayoría de los casos, una vez a la semana, lo que nos permite utilizar modelos complejos y mejorar la calidad varias veces.

Tomemos como base las métricas que solo ALS muestra en la tarea de extraer candidatos. Las métricas clave que monitoreamos son:

  • Precisión: la proporción de candidatos seleccionados correctamente entre los incluidos en la muestra.
  • El recuerdo es la proporción de candidatos que surgieron de los que realmente estaban en el intervalo objetivo.
  • Puntuación F1: medida F calculada sobre los dos puntos anteriores.

También veremos las métricas del modelo final después de entrenar el aumento de gradiente con características de contenido adicionales. También hay 3 métricas principales aquí:

  • precision@5: el porcentaje promedio de productos de los 5 primeros en términos de probabilidad para cada comprador.
  • tasa de respuesta@5: conversión de clientes de una visita a la tienda a la compra de al menos una oferta personal (5 productos en una oferta).
  • promedio de roc-auc por usuario - promedio roc-auc para cada comprador.

Es importante tener en cuenta que todas estas métricas se miden en validación cruzada de series de tiempo, es decir, el entrenamiento se produce en las primeras k semanas y se toman k+1 semanas como datos de prueba. Así, los altibajos estacionales tuvieron un impacto mínimo en la interpretación de la calidad de los modelos. Más adelante en todos los gráficos, el eje de abscisas indicará el número de semana en la validación cruzada y el eje de ordenadas indicará el valor de la métrica especificada. Todos los gráficos se basan en datos de transacciones de un cliente para que las comparaciones entre sí sean correctas.

Antes de comenzar a describir nuestro enfoque, primero observamos la línea de base, que es un modelo entrenado por ALS.
Métricas de recuperación de candidatos:
Cómo mejoramos drásticamente la calidad de las recomendaciones en el comercio minorista fuera de línea

Métricas finales:
Cómo mejoramos drásticamente la calidad de las recomendaciones en el comercio minorista fuera de línea

Trato todas las implementaciones de algoritmos como una especie de hipótesis empresarial. Así, de manera muy aproximada, cualquier modelo colaborativo puede considerarse como una hipótesis de que “la gente tiende a comprar lo que compran personas similares a ellos”. Como ya dije, no nos limitamos a esa semántica y aquí hay algunas hipótesis que funcionan bien con los datos en el comercio minorista fuera de línea:

  1. Que ya he comprado antes.
  2. Similar a lo que compré antes.
  3. Período de una compra anterior hace mucho tiempo.
  4. Popular por categoría/marca.
  5. Compras alternas de diferentes bienes de una semana a otra (cadenas de Markov).
  6. Productos similares a los compradores, según características construidas por diferentes modelos (Word2Vec, DSSM, etc.).

¿Qué compraste antes?

La heurística más obvia que funciona muy bien en el comercio minorista de comestibles. Aquí tomamos todos los productos que el titular de la tarjeta de fidelidad compró en los últimos K días (normalmente entre 1 y 3 semanas) o K días hace un año. Aplicando únicamente este método obtenemos las siguientes métricas:
Cómo mejoramos drásticamente la calidad de las recomendaciones en el comercio minorista fuera de línea

Aquí es bastante obvio que cuanto más tiempo tomamos el período, más recuerdo tenemos y menos precisión tenemos y viceversa. En promedio, las “últimas 2 semanas” dan mejores resultados para los clientes.

Similar a lo que compré antes

No es sorprendente que para el comercio minorista de comestibles "lo que compré antes" funcione bien, pero extraer candidatos solo de lo que el usuario ya compró no es muy bueno, porque es poco probable que sorprenda al comprador con algún producto nuevo. Por lo tanto, proponemos mejorar ligeramente esta heurística utilizando los mismos modelos colaborativos. De los vectores que recibimos durante la capacitación de ALS, podemos obtener productos similares a los que el usuario ya compró. Esta idea es muy similar a los “vídeos similares” en los servicios de visualización de contenidos de vídeo, pero como no sabemos qué está comiendo/comprando el usuario en un momento concreto, sólo podemos buscar vídeos similares a lo que ya ha comprado, especialmente ya que ya sabemos lo bien que funciona. Aplicando este método a las transacciones de los usuarios durante las últimas 2 semanas, obtenemos las siguientes métricas:
Cómo mejoramos drásticamente la calidad de las recomendaciones en el comercio minorista fuera de línea

es k — el número de productos similares que se recuperan para cada producto adquirido por el comprador durante los últimos 14 días.
Este enfoque funcionó especialmente bien para nuestro cliente, para quien era fundamental no recomendar nada que ya estuviera en el historial de compras del usuario.

Período de compra tardía

Como ya hemos descubierto, debido a la alta frecuencia de compra de bienes, el primer enfoque funciona bien para nuestras necesidades específicas. Pero ¿qué pasa con productos como detergente en polvo, champú, etc.? Es decir, con productos que probablemente no se necesitarán cada semana o dos y que los métodos anteriores no pueden extraer. Esto lleva a la siguiente idea: se propone calcular el período de compra de cada producto en promedio para los clientes que compraron el producto con más frecuencia. k una vez. Y luego extraiga lo que probablemente ya se le haya acabado al comprador. Los plazos calculados para las mercancías se pueden comprobar visualmente para comprobar si son adecuados:
Cómo mejoramos drásticamente la calidad de las recomendaciones en el comercio minorista fuera de línea

Y luego veremos si el final del período del producto cae dentro del intervalo de tiempo en el que las recomendaciones estarán en producción y veremos qué sucede. El enfoque se puede ilustrar así:
Cómo mejoramos drásticamente la calidad de las recomendaciones en el comercio minorista fuera de línea

Aquí tenemos 2 casos principales que se pueden considerar:

  1. ¿Es necesario tomar muestras de productos de clientes que han comprado el producto menos de K veces?
  2. ¿Es necesario tomar una muestra de un producto si el final de su período cae antes del comienzo del intervalo objetivo?

El siguiente gráfico muestra los resultados que logra este método con diferentes hiperparámetros:
Cómo mejoramos drásticamente la calidad de las recomendaciones en el comercio minorista fuera de línea
ft — Tome únicamente a los clientes que hayan comprado el producto al menos K (aquí K=5) veces.
tm — Elija únicamente candidatos que se encuentren dentro del intervalo objetivo

No es de extrañar que sea capaz (0, 0) el mas grande recordar y el mas pequeño precisión, ya que bajo esta condición se recuperan la mayoría de los candidatos. Sin embargo, los mejores resultados se logran cuando no tomamos muestras de productos para clientes que compraron un producto en particular menos de k veces y extraer, incluidas las mercancías, cuyo final del período cae antes del intervalo objetivo.

Popular por categoría

Otra idea bastante obvia es probar productos populares de diferentes categorías o marcas. Aquí calculamos para cada comprador. top-k categorías/marcas “favoritas” y extraiga “popular” de esta categoría/marca. En nuestro caso, determinaremos “favorito” y “popular” por el número de compras del producto. Una ventaja adicional de este enfoque es su aplicabilidad en el caso de arranque en frío. Es decir, para clientes que han realizado muy pocas compras, o llevan mucho tiempo sin ir a la tienda, o acaban de emitir una tarjeta de fidelización. Para ellos, es más fácil y mejor almacenar artículos que sean populares entre los clientes y que tengan un historial. Las métricas resultantes son:
Cómo mejoramos drásticamente la calidad de las recomendaciones en el comercio minorista fuera de línea
Aquí el número después de la palabra "categoría" significa el nivel de anidamiento de la categoría.

En general, tampoco sorprende que las categorías más limitadas logren mejores resultados, ya que extraen productos "favoritos" más precisos de los compradores.

Compras alternas de diferentes productos de una semana a otra.

Un enfoque interesante que no he visto en artículos sobre sistemas de recomendación es un método estadístico de cadenas de Markov bastante simple y al mismo tiempo funcional. Aquí tomamos 2 semanas diferentes, luego para cada cliente creamos pares de productos. [comprado en la semana i]-[comprado en la semana j], donde j > i, y a partir de aquí calculamos para cada producto la probabilidad de cambiar a otro producto la próxima semana. Es decir, para cada par de bienes producti-productj Contamos su número en los pares encontrados y lo dividimos por el número de pares, donde produccion Fue en la primera semana. Para extraer candidatos, tomamos el último recibo del comprador y extraemos top-k los próximos productos más probables de la matriz de transición que recibimos. El proceso de construcción de una matriz de transición se ve así:
Cómo mejoramos drásticamente la calidad de las recomendaciones en el comercio minorista fuera de línea

A partir de ejemplos reales en la matriz de probabilidad de transición vemos los siguientes fenómenos interesantes:
Cómo mejoramos drásticamente la calidad de las recomendaciones en el comercio minorista fuera de línea
Aquí se pueden observar dependencias interesantes que se revelan en el comportamiento del consumidor: por ejemplo, los amantes de los cítricos o de una marca de leche de la que probablemente cambiarán a otra. Tampoco es de extrañar que productos con una alta frecuencia de repetición de compras, como la mantequilla, también acaben aquí.

Las métricas del método con cadenas de Markov son las siguientes:
Cómo mejoramos drásticamente la calidad de las recomendaciones en el comercio minorista fuera de línea
k — el número de productos que se recuperan para cada producto comprado en la última transacción del comprador.
Como podemos ver, el mejor resultado lo muestra la configuración con k=4. El aumento en la semana 4 puede explicarse por el comportamiento estacional alrededor de las vacaciones. 

Productos similares a los compradores, según las características construidas por diferentes modelos.

Ahora hemos llegado a la parte más difícil e interesante: buscar vecinos más cercanos basándose en vectores de clientes y productos construidos según varios modelos. En nuestro trabajo utilizamos 3 de estos modelos:

  • ALS
  • Word2Vec (Item2Vec para este tipo de tareas)
  • DSSM

Ya nos hemos ocupado de la ELA, puedes leer sobre cómo aprende. aquí. En el caso de Word2Vec utilizamos la conocida implementación del modelo de genio. Por analogía con los textos, definimos la oferta como un recibo de compra. Por lo tanto, al construir un vector de producto, el modelo aprende a predecir su “contexto” para el producto en el recibo (los productos restantes en el recibo). En los datos de comercio electrónico, es mejor utilizar la sesión del comprador en lugar de un recibo; los chicos de Ozono. Y DSSM es más interesante de analizar. Inicialmente, los chicos de Microsoft lo escribieron como modelo para la búsqueda, Puedes leer el artículo de investigación original aquí.. La arquitectura del modelo se ve así:
Cómo mejoramos drásticamente la calidad de las recomendaciones en el comercio minorista fuera de línea

es Q — consulta, consulta de búsqueda de usuario, D[yo] — documento, página de internet. La entrada al modelo son los atributos de la solicitud y las páginas, respectivamente. Después de cada capa de entrada hay varias capas completamente conectadas (perceptrón multicapa). A continuación, el modelo aprende a minimizar el coseno entre los vectores obtenidos en las últimas capas del modelo.
Las tareas de recomendación utilizan exactamente la misma arquitectura, solo que en lugar de una solicitud hay un usuario y en lugar de páginas hay productos. Y en nuestro caso, esta arquitectura se transforma en la siguiente:
Cómo mejoramos drásticamente la calidad de las recomendaciones en el comercio minorista fuera de línea

Ahora, para comprobar los resultados, queda por cubrir el último punto: si en el caso de ALS y DSSM hemos definido explícitamente vectores de usuario, entonces en el caso de Word2Vec solo tenemos vectores de producto. Aquí, para construir el vector de usuario, hemos definido 3 enfoques principales:

  1. Simplemente agregue los vectores, luego, para la distancia del coseno, resulta que simplemente promediamos los productos en el historial de compras.
  2. Suma de vectores con cierta ponderación temporal.
  3. Pesaje de mercancías con coeficiente TF-IDF.

En el caso de la ponderación lineal del vector del comprador, partimos de la hipótesis de que el producto que el usuario compró ayer tiene una mayor influencia en su comportamiento que el producto que compró hace seis meses. Entonces consideramos la semana anterior del comprador con probabilidades de 1 y lo que sucedió después con probabilidades de ½, ⅓, etc.:
Cómo mejoramos drásticamente la calidad de las recomendaciones en el comercio minorista fuera de línea

Para los coeficientes TF-IDF hacemos exactamente lo mismo que en TF-IDF para textos, solo que consideramos al comprador como un documento y el cheque como una oferta, respectivamente, la palabra es un producto. De esta manera, el vector del usuario se desplazará más hacia bienes raros, mientras que los bienes frecuentes y familiares para el comprador no lo cambiarán mucho. El enfoque se puede ilustrar así:
Cómo mejoramos drásticamente la calidad de las recomendaciones en el comercio minorista fuera de línea

Ahora veamos las métricas. Así es como se ven los resultados de ALS:
Cómo mejoramos drásticamente la calidad de las recomendaciones en el comercio minorista fuera de línea
Métricas para Item2Vec con diferentes variaciones de construcción del vector del comprador:
Cómo mejoramos drásticamente la calidad de las recomendaciones en el comercio minorista fuera de línea
En este caso, se utiliza exactamente el mismo modelo que en nuestra línea base. La única diferencia es qué k usaremos. Para utilizar únicamente modelos colaborativos, debe tomar entre 50 y 70 productos más cercanos para cada cliente.

Y métricas según DSSM:
Cómo mejoramos drásticamente la calidad de las recomendaciones en el comercio minorista fuera de línea

¿Cómo combinar todos los métodos?

Genial, dirás, pero ¿qué hacer con un conjunto tan grande de herramientas de extracción de candidatos? ¿Cómo elegir la configuración óptima para tus datos? Aquí tenemos varios problemas:

  1. Es necesario limitar de alguna manera el espacio de búsqueda de hiperparámetros en cada método. Por supuesto, es discreto en todas partes, pero el número de puntos posibles es muy grande.
  2. Utilizando una pequeña muestra limitada de métodos específicos con hiperparámetros específicos, ¿cómo puede seleccionar la mejor configuración para su métrica?

Aún no hemos encontrado una respuesta definitivamente correcta a la primera pregunta, por lo que procedemos de lo siguiente: para cada método, se escribe un limitador de espacio de búsqueda de hiperparámetros, dependiendo de algunas estadísticas de los datos que tenemos. Así, conociendo el periodo medio entre compras de las personas, podemos adivinar con qué periodo utilizar el método “lo que ya se ha comprado” y “período de una compra pasada”.

Y después de haber analizado una cantidad adecuada de variaciones de diferentes métodos, notamos lo siguiente: cada implementación extrae una cierta cantidad de candidatos y tiene un cierto valor de métrica clave para nosotros (recuerdo). Queremos obtener un total de un cierto número de candidatos, dependiendo de nuestra potencia informática permitida, con la métrica más alta posible. Aquí el problema colapsa maravillosamente en el problema de la mochila.
Cómo mejoramos drásticamente la calidad de las recomendaciones en el comercio minorista fuera de línea

Aquí el número de candidatos es el peso del lingote y el método de recuperación es su valor. Sin embargo, hay 2 puntos más que se deben tener en cuenta a la hora de implementar el algoritmo:

  • Los métodos pueden superponerse en los candidatos que recuperan.
  • En algunos casos, será correcto tomar un método dos veces con parámetros diferentes, y el resultado candidato del primero no será un subconjunto del segundo.

Por ejemplo, si tomamos la implementación del método "lo que ya compré" con diferentes intervalos de recuperación, entonces sus conjuntos de candidatos estarán anidados entre sí. Al mismo tiempo, los diferentes parámetros en las “compras periódicas” a la salida no garantizan una intersección completa. Por lo tanto, dividimos los enfoques de muestreo con diferentes parámetros en bloques de modo que de cada bloque queramos tomar como máximo un enfoque de extracción con hiperparámetros específicos. Para hacer esto, necesitas ser un poco inteligente al implementar el problema de la mochila, pero las asintóticas y el resultado no cambiarán.

Esta combinación inteligente nos permite obtener las siguientes métricas en comparación con modelos simplemente colaborativos:
Cómo mejoramos drásticamente la calidad de las recomendaciones en el comercio minorista fuera de línea
En las métricas finales vemos la siguiente imagen:
Cómo mejoramos drásticamente la calidad de las recomendaciones en el comercio minorista fuera de línea

Sin embargo, aquí puedes notar que hay un punto descubierto en las recomendaciones que son útiles para los negocios. Ahora acabamos de aprender cómo hacer un gran trabajo al predecir lo que comprará el usuario, por ejemplo, la próxima semana. Pero simplemente dar un descuento en algo que ya comprará no es muy bueno. Pero está bien maximizar las expectativas, por ejemplo, de las siguientes métricas:

  1. Margen/facturación basado en recomendaciones personales.
  2. Cheque de cliente promedio.
  3. Frecuencia de visitas.

Así que multiplicamos las probabilidades obtenidas por diferentes coeficientes y las reclasificamos para que los productos que afectan las métricas anteriores lleguen a la cima. No existe una solución ya preparada sobre qué enfoque es mejor utilizar. Incluso experimentamos con tales coeficientes directamente en la producción. Pero aquí hay técnicas interesantes que la mayoría de las veces nos dan los mejores resultados:

  1. Multiplicar por el precio/margen del producto.
  2. Multiplicar por el recibo promedio en el que aparece el producto. Entonces surgirán productos con los que normalmente se llevan otra cosa.
  3. Multiplique por la frecuencia promedio de visitas de los compradores de este producto, basándose en la hipótesis de que este producto provoca que la gente regrese por él con más frecuencia.

Después de realizar experimentos con coeficientes, obtuvimos las siguientes métricas en producción:
Cómo mejoramos drásticamente la calidad de las recomendaciones en el comercio minorista fuera de línea
es conversión general de productos - la proporción de productos comprados de todos los productos en las recomendaciones que generamos.

Un lector atento notará una diferencia significativa entre las métricas en línea y fuera de línea. Este comportamiento se explica por el hecho de que no todos los filtros dinámicos de productos que se pueden recomendar se pueden tener en cuenta al entrenar el modelo. Para nosotros es normal que la mitad de los candidatos seleccionados se puedan filtrar; esta especificidad es típica de nuestro sector.

En términos de ingresos, se obtiene la siguiente historia, está claro que después del lanzamiento de las recomendaciones, los ingresos del grupo de prueba están creciendo con fuerza, ahora el aumento promedio en los ingresos con nuestras recomendaciones es del 3-4%:
Cómo mejoramos drásticamente la calidad de las recomendaciones en el comercio minorista fuera de línea

En conclusión, quiero decir que si necesita recomendaciones no en tiempo real, entonces se puede encontrar un aumento muy grande en la calidad en experimentos con la extracción de candidatos para recomendaciones. Una gran cantidad de tiempo para su generación permite combinar muchos buenos métodos, que en total darán excelentes resultados para el negocio.

Estaré encantado de charlar en los comentarios con cualquiera que encuentre interesante el material. Puedes hacerme preguntas personalmente en Telegram.. También comparto mis pensamientos sobre IA/startups en mi canal de telegramas - bienvenido :)

Fuente: habr.com

Añadir un comentario