La misión de la experiencia de compra minorista de DoorDash pretende combinar lo mejor de las compras en persona con el poder de la personalización. Aunque comprar en una tienda física tiene sus ventajas, una tienda física no se puede personalizar: el consumidor tiene que recorrer los pasillos para encontrar lo que necesita. Por el contrario, una experiencia de compra digital puede ser muy personalizada. Al conocer el historial de compras de cada consumidor, sus restricciones dietéticas, sus marcas favoritas y otros detalles personalizados, no sólo podemos recomendarle artículos que reflejen sus necesidades y preferencias de compra únicas, sino que también podemos agilizar la creación de carritos. La personalización va más allá de la simple selección de opciones para artículos que ya están en la lista de un comprador; también aporta una sensación de serendipia al desvelar posibles nuevos productos favoritos que los consumidores no habían considerado antes. Utilizar el poder de la personalización para crear un viaje de compras encantador fomenta la retención del consumidor al infundir la confianza de que DoorDash entiende realmente las necesidades y preferencias del comprador.
En este post, mostramos cómo hemos creado una experiencia de compra personalizada para nuestras nuevas tiendas verticales, que incluyen tiendas de comestibles, de conveniencia, de mascotas y de alcohol, entre muchas otras. Tras una descripción general de nuestro marco de recomendación, nos centramos en los detalles del modelado, los retos que hemos encontrado en el camino y cómo los hemos abordado.
Los retos de crear un modelo de recomendación
Crear modelos de recomendación para nuestras tiendas minoristas es una tarea difícil que requiere un profundo conocimiento del inventario, las preferencias de los clientes y el contexto de compra. A diferencia de nuestro negocio de restauración, en el que un comerciante típico sólo vende unas pocas docenas o, como mucho, cientos de platos o bebidas, nuestras tiendas de nuevos negocios verticales suelen tener cientos de miles de SKU en miles de categorías. El tamaño del inventario y la variedad de categorías exigen que nuestros sistemas de recomendación criben eficazmente entre un tsunami de opciones para recomendar opciones relevantes a los consumidores. Por otra parte, los compradores de comestibles y comercios minoristas suelen tener hábitos de compra y demandas más variados que los consumidores de restaurantes; mientras que algunos clientes prefieren volver a pedir los mismos artículos cada semana, otros pueden querer explorar nuevos productos o comprar artículos de temporada, como disfraces de Halloween. Además, los sistemas de recomendación deben adaptarse rápidamente a las preferencias dinámicas de los clientes, que pueden cambiar significativamente en función del contexto de compra, como ventas promocionales, eventos especiales o incluso la hora del día.
Marco general
Como se muestra en la figura 1, al entrar en la página de inicio de una tienda DoorDash, los consumidores ven varias colecciones temáticas -por ejemplo, "Productos ecológicos" y "Ofertas populares"- de arriba abajo, cada una con una selección de artículos ordenados de izquierda a derecha. Si un artículo le interesa inmediatamente, puede pulsar el botón "+" para añadirlo a su cesta. Los que busquen más información pueden hacer clic en la imagen del artículo para ver más detalles del producto antes de decidir si lo añaden a la cesta. Si las colecciones iniciales no atraen al comprador, puede desplazarse verticalmente hacia abajo para ver otras colecciones. Del mismo modo, si el tema de la colección es atractivo pero los artículos visibles no son de interés, los consumidores pueden deslizar horizontalmente para ver más artículos a la derecha.
Antes de la introducción de los modelos ML, nuestro equipo de operaciones tenía que comisariar manualmente las colecciones y determinar tanto sus posiciones verticales como las posiciones horizontales de los artículos dentro de cada colección. A medida que crecen los negocios verticales de DoorDash, atrayendo a más consumidores a estas páginas, la recuperación y clasificación manual ya no es sostenible, sobre todo porque no se pueden tener en cuenta las necesidades personales de los consumidores. En su lugar, hemos creado un nuevo marco, como se muestra en la figura 2, para personalizar las recomendaciones a los compradores.
Este marco consta de los seis componentes siguientes:
I. Generación de la colección:
Nuestras colecciones se dividen en tres categorías principales, dependiendo de cómo se generen.
- Colecciones generadas por el operador: Curadas manualmente por operadores y suelen contener artículos populares de un comerciante, así como artículos de temporada o agrupados por un tema específico.
- Colecciones personalizadas basadas en reglas: Artículos seleccionados para cada consumidor en función de su historial de compras, por ejemplo, nuevos artículos de la marca o categoría de artículos más comprados por un consumidor.
- Colecciones personalizadas basadas en ML: Categorías de artículos que los modelos ML predicen que son muy relevantes para el consumidor.
II. Recuperación de la colección:
A la hora de ofrecer la página de un comerciante, puede resultar costoso desde el punto de vista computacional buscar todos los artículos disponibles en una tienda y clasificarlos en todas las colecciones. Para evitar este elevado coste, utilizamos un modelo de recuperación de colecciones para realizar una primera pasada por nuestro gran grupo de colecciones y determinar cuáles mostrar a los consumidores en la primera página, en la segunda y así sucesivamente. Esto agiliza la búsqueda y clasificación de elementos en una sola página cada vez.
III. Clasificación horizontal de elementos:
Una vez recuperadas las colecciones, utilizamos un clasificador de elementos para colocarlos horizontalmente dentro de cada colección; los elementos más relevantes aparecen a la izquierda, mientras que los menos relevantes se desplazan a la derecha.
IV. Posprocesamiento de artículos:
Aplicamos la lógica empresarial para ajustar las clasificaciones de los modelos. Por ejemplo, los artículos sin fotos se clasifican peor porque es menos probable que los consumidores se interesen por ellos. También se desclasifican los artículos con una alta probabilidad de agotarse, como predice otro modelo, ya que es menos probable que se agoten. La diversidad dentro de una misma colección también se aplica para evitar mostrar artículos similares en una misma fila (por ejemplo, tres tipos de manzanas en una colección de frutas y verduras).
V. Clasificación de la colección:
Una vez clasificados y ajustados los artículos dentro de cada colección, realizamos una segunda ronda de clasificación fina dentro de las colecciones. Esto garantiza que las colecciones con puntuaciones medias más altas para sus elementos mejor clasificados aparezcan más arriba que aquellas con elementos menos atractivos.
VI. Tratamiento posterior de la recogida:
De forma similar al postprocesamiento de artículos, también aplicamos lógica empresarial para finalizar las colecciones. Un ejemplo es la deduplicación de artículos entre colecciones para que los consumidores no encuentren artículos muy similares de una colección a otra. También aplicamos la diversidad entre colecciones para aliviar la agrupación de colecciones que contienen artículos similares.
Manténgase informado con las actualizaciones semanales
Suscríbase a nuestro blog de ingeniería para estar al día de los proyectos más interesantes en los que trabaja nuestro equipo.
Please enter a valid email address.
Gracias por suscribirse.
Profundización en el modelo ML
Recuperación de colecciones
El modelo de recuperación de colecciones, como se muestra en la Figura 3, es uno de los componentes clave de la personalización de las páginas de la tienda. Determina qué colecciones se muestran a los consumidores en cada página. El objetivo del modelo es predecir la probabilidad de que un consumidor interactúe con una colección determinada, por ejemplo, haciendo clic o añadiendo artículos al carrito.
El modelo de recuperación de colecciones tiene en cuenta las siguientes características:
- Popularidad de las colecciones, que puede determinarse de varias formas, como por ejemplo a través de un alto índice de clics (CTR), un gran número de clics o un subtotal elevado de pedidos de artículos de la colección, entre otros factores.
- Características del consumidor, por ejemplo, si el consumidor está suscrito a DashPass, si es un usuario nuevo o avanzado, o cuántos pedidos ha realizado anteriormente.
- Compromiso anterior del consumidor con esta colección, que puede medirse mediante métricas como el CTR, las tasas de adición a la cesta, las tasas de conversión y los subtotales, que pueden indicar el futuro compromiso entre el consumidor y colecciones similares.
- Interacción anterior de los consumidores con artículos de esta colección; los consumidores pueden interactuar con los mismos artículos en diferentes tiendas o colecciones. La interacción de los consumidores con artículos de todas las superficies -por ejemplo, clics en los resultados de búsqueda o clics en páginas de categorías- se utilizan como características de entrada para el modelo de recuperación de colecciones.
- Características de contexto, como la hora del día, el día de la semana, el tipo de tienda y la geolocalización, entre otros factores.
Clasificación de los artículos
Un modelo de clasificación de artículos determina el orden horizontal de los artículos dentro de una colección. Empezamos con un modelo que predice el CTR porque los clics contienen mucha información sobre las preferencias de los consumidores y están muy correlacionados con las estrellas del norte de nuestro negocio, como el add-to-cart y la conversión. Sin embargo, pronto nos dimos cuenta de que optimizar en función de los clics tenía ciertos inconvenientes. Los modelos que optimizan en función del CTR tienden a mejorar la posición de los artículos de nicho con un CTR histórico elevado que, sin embargo, sólo atraen a un pequeño grupo de compradores, mientras que otros artículos con clics frecuentes rara vez se añaden al carrito, lo que se conoce como tasa de clics a CTA. Estos problemas se mitigaron en gran medida aplicando ponderaciones más altas a las muestras positivas en las que un clic va seguido de la adición del artículo al carrito y, en última instancia, de la conversión.
Características del modelo de clasificación de ítems puede dividirse en tres categorías principales:
- Compromiso anterior de los consumidores con este tema
- Atributos de los artículos, como precio, descuentos, marca, categorías de productos y popularidad.
- Características del consumidor, como preferencia de categoría, restricciones dietéticas y sensibilidad al precio.
Además de los tipos de características numéricas y categóricas tradicionales, también utilizamos incrustaciones semánticas de consumidores y artículos desarrolladas por el equipo de ML de DoorDash, que ofrecen una representación más rica de nuestros consumidores y artículos más allá de las características densas incluidas anteriormente.
Abordar el sesgo de posición
Como ocurre con otros modelos de clasificación, los clasificadores personalizados de DoorDash se ven afectados por el sesgo de posición. De hecho, este problema se hace más significativo debido al espacio limitado en nuestra aplicación para consumidores. En la mayoría de los dispositivos móviles, los consumidores sólo pueden ver los tres primeros artículos de cada colección sin tener que desplazarse a la derecha. Como muestra la figura 4, el sesgo de posición provoca un descenso del CTR -número de clics/número de impresiones- después de esos tres primeros artículos. Como los consumidores tienen que desplazarse manualmente para explorar más artículos, la impresión general de los artículos cae bruscamente en la cuarta posición, lo que provoca un aumento significativo del CTR del tercer al cuarto artículo de cada colección (las posiciones de las tarjetas de los artículos tienen índice 0).
Incorporamos las posiciones de los artículos como una característica clave en nuestro modelo para tener en cuenta el impacto de las posiciones de los artículos en el CTR. Como las posiciones varían en función de la superficie del producto, incluimos la superficie del producto como característica adicional. Durante la fase de entrenamiento, el modelo aprende cómo las posiciones de los artículos y las superficies de los productos influyen colectivamente en la clasificación. Durante la inferencia, fijamos el valor de la posición del artículo en 0, que representa la primera posición, y la superficie del producto en la superficie real en la que se llama al modelo para hacer predicciones.
Diversificar nuestras recomendaciones
Ordenar los artículos y las colecciones basándose únicamente en las puntuaciones de los modelos suele dar lugar a agrupaciones de artículos similares horizontalmente y de colecciones similares verticalmente porque presentan puntuaciones de modelos similares. Esta falta de diversidad no proporciona una experiencia óptima a los compradores, ni aprovecha plenamente la página de una tienda para deleitar a los clientes con nuevos descubrimientos. Para diversificar nuestras recomendaciones, aplicamos la relevancia marginal máxima tanto a los artículos como a las colecciones después de la fase de clasificación. Tomemos como ejemplo la diversificación de artículos: Dado el conjunto de artículos I, que incluye todos los artículos seleccionados previamente (inicialmente un conjunto de artículos en blanco), tratamos de encontrar el siguiente artículo j que maximice la función objetivo O(j, I), que equilibra la puntuación y la similitud del artículo:
O(j,I) = Sj -⍺- sim(j, I)
donde Sj es el núcleo de artículos predicho a partir del modelo de clasificación y la métrica de similitud sim(j, I) se define en función de atributos de artículos como categorías y marcas. El valor ⍺ se determina mediante experimentos en línea. Este enfoque se aplica también a la diversificación de colecciones.
En el procesamiento backend, esta técnica se aplica como un paso posterior a la clasificación horizontal y vertical de las colecciones. Más concretamente, la diversificación horizontal -dentro de una colección- se lleva a cabo tras la clasificación de los artículos, aplicándose el cálculo de similitud a nivel de categoría de producto. Las colecciones se diversifican inicialmente a nivel de tienda, tras lo cual se utiliza la paginación para determinar qué colecciones se sirven actualmente a la vista y, a continuación, se produce la diversificación a nivel de página. La similitud de las colecciones se calcula agregando la similitud de la taxonomía de los artículos por colección.
Futuros objetivos de personalización
Aunque hemos detallado cómo las soluciones de ML están ayudando a DoorDash a recomendar a los consumidores artículos relevantes y diversos de un vasto inventario que abarca miles de categorías, nuestro equipo de ML también está incorporando historiales de pedidos de restaurantes para informar recomendaciones de comestibles a consumidores individuales. Por ejemplo, un cliente habitual de restaurantes veganos podría apreciar las selecciones veganas curadas en nuestras tiendas de comestibles. Tenemos previsto utilizar secuencias de comportamiento de los consumidores para captar mejor sus intereses a corto y largo plazo. En cuanto a la arquitectura de los modelos, estamos avanzando hacia arquitecturas MTML (multitarea multietiqueta) para adaptarnos a múltiples superficies de productos y optimizar objetivos de modelado complejos. Por último, queremos implantar funciones en tiempo real que capten los comportamientos de los consumidores dentro de una sesión, por ejemplo, los artículos que están en el carrito y las consultas de búsqueda de los últimos minutos, para que la personalización sea más oportuna y consciente del contexto.
Agradecimientos
Un agradecimiento especial a Meng Chen, Shi Wang, Talia Stadtmauer, Vivek Paharia, Andre Jacobovitz, Yucong Ji, Jennifer Yunus, Sudeep Das y Kurt Smith, que han colaborado para hacer realidad este apasionante trabajo.