Ir al contenido

Blog


How To Get from Salad to Sushi in 3 Moves

December 21, 2016

|
Mitchell Koch

Mitchell Koch

En DoorDash queremos que a la gente le resulte lo más fácil posible descubrir y pedir a los mejores restaurantes de su barrio. Como parte de ese objetivo, un problema fascinante que estamos abordando es cómo crear una experiencia personalizada para cada usuario en la plataforma DoorDash mediante la aparición de recomendaciones de restaurantes y otros comerciantes en función de su historial de pedidos. Hemos estado experimentando con diversas técnicas para personalizar la experiencia de DoorDash y, aunque apenas hemos arañado la superficie, siempre estamos buscando formas de mejorar nuestros modelos.

Para un reciente proyecto de hackathon queríamos modelar las similitudes entre las cocinas en DoorDash, tanto para entender mejor el problema, así como para utilizar estos datos para mejorar nuestras recomendaciones. En este caso, la pregunta es: si sabemos que te gustan ciertas cocinas, ¿qué otras cocinas podemos recomendarte?

Para ello, utilizamos el aprendizaje de estructuras de redes bayesianas sobre datos de órdenes. Una red bayesiana es un modelo gráfico probabilístico que representa las relaciones entre variables y sus dependencias en una estructura de grafos. En nuestro caso, tenemos variables de cocina, como "española" y "tapas", y queremos representar la distribución de probabilidades entre ellas, es decir, que si te gusta la comida española, es muy probable que también te gusten las tapas. Un algoritmo de aprendizaje de estructuras de redes bayesianas encuentra una representación compacta de la distribución de probabilidad conjunta entre todas las variables de los datos. En pocas palabras, nos permite hallar la probabilidad de pedir un tipo de cocina dado que ya se ha pedido otro tipo de cocina. Mientras que el uso de datos de intervención nos permitiría obtener una causalidad real, en este caso podemos ver las relaciones entre cocinas, pero no podemos confiar en la causalidad de las flechas. Para conocer la estructura de la red, utilizamos un método de escalada, que dio como resultado el gráfico siguiente. Puede probar esta técnica con sus propios datos utilizando el paquete bnlearn de R. (Aunque las redes de Bayes pueden representar relaciones inversas, en el gráfico siguiente sólo mostramos relaciones positivas).

De un rápido vistazo a los resultados, el gráfico muestra algunas relaciones interesantes. Como era de esperar, si te gusta la comida italiana, es probable que te guste la pizza o la pasta. Pero también hay algunos resultados sorprendentes: por ejemplo, si te gusta la comida rápida, es probable que también te guste la comida china.

En el futuro esperamos utilizar este tipo de modelo para determinar a qué usuarios concretos debemos informar sobre determinadas promociones o nuevos restaurantes. Por ejemplo, si queremos destacar un restaurante tailandés en particular, podemos ver aquí que podría ser muy relevante para cualquier persona a la que le guste la comida asiática. Incorporar este tipo de información a nuestros modelos de recomendación podría ser útil para sugerir restaurantes de cocinas similares. Estamos deseando implementar este tipo de información en el motor de recomendación de DoorDash para personalizar mejor tu experiencia en el servicio y facilitar más que nunca que la gente haga pedidos a nuevos restaurantes.

Sobre el autor

  • Mitchell Koch

Trabajos relacionados

Ubicación
San Francisco, CA; Oakland, CA
Departamento
Ingeniería
Ubicación
Toronto, ON
Departamento
Ingeniería
Ubicación
San Francisco, CA; Sunnyvale, CA
Departamento
Ingeniería
Ubicación
San Francisco, CA; Mountain View, CA; Nueva York, NY; Seattle, WA
Departamento
Ingeniería
Ubicación
San Francisco, CA; Sunnyvale, CA; Seattle, WA
Departamento
Ingeniería