Los clientes acuden a DoorDash para descubrir y realizar pedidos en una amplia selección de sus tiendas favoritas, por lo que es importante poder mostrar lo que es más relevante para ellos. En un artículo anterior, Powering Search & Recommendations at DoorDash, explicamos cómo creamos nuestra experiencia inicial de búsqueda y descubrimiento personalizados para mostrar las mejores tiendas a los consumidores en función de sus preferencias personales.
Allí mostramos cómo éramos capaces de aumentar la tasa de clics utilizando recomendaciones en un 25% frente a una línea de base de mostrar los restaurantes más populares. Mediante la incorporación de información latente, así como la preparación de un canal de formación y una configuración de máquina de gradiente reforzado que utilizamos en otros sistemas en DoorDash, hemos sido capaces de ver un aumento en la tasa de clics en otro 5% en las pruebas iniciales de correo electrónico y estamos en el proceso de probar y desplegar estos cambios más ampliamente en el correo electrónico y en la aplicación.
Información latente
En DoorDash, nuestro problema de recomendaciones difiere del típico problema de recomendaciones de comercio electrónico en que los consumidores sólo ven las tiendas que están cerca de ellos geográficamente. (Véase 'ÄúHowwe Designed Road Distances in DoorDash Search'Äù) Debido a esta escasez en la matriz de los consumidores a las tiendas, empezamos con un sistema de recomendación basado en el conocimiento descrito en el artículo anterior en lugar de utilizar un enfoque como el filtrado colaborativo.
Sin embargo, sí queremos incluir el tipo de información latente procedente de la similitud entre consumidor y tienda. Para ello, utilizamos una técnica similar a la de procesamiento del lenguaje natural de word2vec, en nuestro caso store2vec. Con word2vec, la idea es que las palabras pueden codificarse en un espacio vectorial para representar propiedades semánticas. Por ejemplo, utilizando word2vec, si tenemos un vector para "rey" y restamos "hombre" y añadimos "mujer", obtendremos "reina".
Codificar las tiendas de DoorDash en un espacio vectorial promete representar semánticamente propiedades de las tiendas sobre las que de otro modo no tendríamos información, como si la tienda se centra en ofrecer productos dulces, si es un restaurante de moda o si es vegetariano.
Por ejemplo, aquí están las tiendas más similares basadas en la distancia store2vec para Smitten Ice Cream en Los Altos y Darbar en Palo Alto:
Smitten Ice Cream: Baskin Robbins, Jamba Juice, Tin Pot Creamery, Krispy Kreme Doughnuts
Darbar: Amber Dhara, Amber India, Curry Up Now, Janta Indian Cuisine, Rangoon Ruby, Shiva'Äôs
Para store2Vec, incrustamos los almacenes como vectores utilizando el algoritmo word2vec (CBOW) del paquete gensim con la siguiente modificación.
- cada tienda es una palabra de nuestro vocabulario y
- cada frase es una lista de tiendas vistas juntas en una sesión de usuario.
En el caso del contexto de palabras, la ventana de contexto de 5 es la que mejor funciona. Como restricciones de calidad, aplicamos umbrales mínimos al número de tiendas en una sesión y al número de sesiones en las que aparece una tienda.
Esto nos da vectores para cada tienda. A continuación, para generar los vectores de un consumidor, sumamos los vectores de cada tienda en la que haya hecho un pedido en los últimos 6 meses o 100 pedidos. Para determinar la distancia entre una tienda y un consumidor, tomamos la distancia coseno entre el vector de la tienda y el vector del consumidor.
Para ilustrarlo, construimos un consumidor de ejemplo con un historial de pedidos compuesto por 4505 Burgers & BBQ y New Nagano Sushi (marcados con [email protected] en la figura). Podemos ver que los restaurantes de hamburguesas y sushi son algunos de los puntos más cercanos, pero curiosamente también algunos restaurantes coreanos. Los puntos se han trazado utilizando t-SNE y el proyector de incrustación de Tensorflow. Las distancias que aparecen a la derecha son la distancia coseno entre el vector consumidor y el vector tienda.
Formación
Esta característica de distancia store2vec es una de las que hemos añadido a nuestro proceso de formación para recomendaciones. El proceso de formación consta de las siguientes fases.
Generación de ejemplos positivos y negativos: Tomamos muestras de pedidos anteriores como ejemplos positivos. Extraemos datos basados en datos pasados para que las características coincidan con lo que habrían sido en el momento anterior al pedido, con el fin de mantener la integridad del entrenamiento/prueba. Para generar ejemplos negativos, utilizamos el enfoque de contraste de ruido; elegimos aleatoriamente otra tienda en la que el consumidor podría haber realizado el pedido.
Generación de características: A partir de los datos de consumidores y tiendas, extraemos muchas características relacionadas con los datos anotados sobre consumidores y tiendas, como categorías, valoración, popularidad e información sobre navegación, clics y pedidos.
Dividir entrenamiento/prueba: Dividimos el 70% de entrenamiento y el 30% de prueba como una división temporal para que no estemos probando en datos que se produjeron antes de los datos en los que entrenamos.
Entrenamiento de modelos: Entrenamos modelos de regresión logística y de máquina de gradiente aumentado (GBM). Para los modelos GBM, utilizamos LightGBM. Estos son los mismos marcos que utilizamos para muchos otros sistemas de aprendizaje automático en DoorDash, como la predicción del tiempo de preparación y la predicción de lotes.
Evaluación del modelo: El modelo predice P(pedido | consumidor, tienda) y es un clasificador binario. Para evaluarlo en este problema de clasificación, utilizamos el área bajo la curva (AUC) de la curva precisión/recuperación. Esto proporciona una métrica de evaluación que no cambia si los valores de puntuación se inflan o desinflan, pero la clasificación sigue siendo la misma. También utilizamos métricas comerciales para comprobar los modelos, como la tarifa media de entrega, la valoración media y, por ejemplo, los usuarios con un historial de pedidos que se ajusta a determinados patrones, con el fin de comprobar la cordura de los modelos de salida.
Trabajo futuro
Desarrollar un modelo de recomendaciones que incluya características latentes es sólo el segundo gran paso en este sentido. He aquí algunas áreas que nos proponemos explorar en el futuro:
- Generar recomendaciones con contexto: Generar una lista de recomendaciones es útil, pero poder mostrar secciones con descripciones puede dar a la gente más confianza en las recomendaciones y permitir personalizar más la app de DoorDash
- Optimizaciones de store2vec: Hay más cosas que pueden hacer que estas recomendaciones sean más potentes mejorando store2vec. Por ejemplo, podríamos incluir a los consumidores en el mismo proceso de optimización, lo que significaría que generaríamos vectores para tiendas y consumidores juntos en lugar de tener un paso de promediación separado.
- Frescura en las recomendaciones: Basándonos en los datos de impresión, podríamos ajustar las recomendaciones para un consumidor a medida que utiliza el producto
- Nuevos modelos: Hemos experimentado con modelos alternativos como los modelos de aprendizaje profundo seq2seq que se muestran a continuación, y esperamos ver mejoras en el rendimiento con la integración de modelos similares.
Conclusión
La personalización es prometedora para ayudar a los consumidores que utilizan DoorDash a encontrar rápidamente lo que buscan y a encontrar los restaurantes que más les interesan. Aplicando características latentes pudimos mejorar nuestras predicciones. Al aplicar nuestros sistemas de aprendizaje automático existentes a este problema para GBM, pudimos obtener un gran impulso. En general, observamos un aumento aproximado del 20 % en el AUC fuera de línea y actualmente estamos probando estos modelos en el correo electrónico y en la aplicación, donde observamos un aumento aproximado del 5 % en la tasa de clics.
Si te apasiona resolver problemas desafiantes en este espacio, estamos contratando personal para el equipo de ciencia de datos y aprendizaje automático, así como para el equipo de búsqueda y relevancia. Si estás interesado en trabajar en otras áreas de DoorDash, visita nuestra página de empleo.
¬πAunque intentamos optimizar para aumentar los pedidos, el porcentaje de clics es la métrica principal para las recomendaciones y la búsqueda, ya que es la métrica directa.