Ir al contenido

Blog


Selección de la mejor imagen para cada comerciante mediante exploración y aprendizaje automático

4 de enero de 2023

|
Chun-Chen Kuo

Chun-Chen Kuo

In order to inspire DoorDash consumers to order from the platform there are few tools more powerful than a compelling image, which raises the questions: what is the best image to show each customer, and how can we build a model to determine that programmatically using each merchant's available images?

Figura 1: Superficies de descubrimiento con imágenes de comerciantes

Out of all the different information presented on the home page (see Figure 1), studies with consumers have repeatedly shown that images play the most important role in providing consumers with "evidence" that helps them choose a merchant and which items to order. When consumers evaluate an unfamiliar restaurant, they first think "Does it look good?" Essentially, people eat with their eyes and images can tell them a lot about the food's cuisine, type of restaurant, quality of food, nutritional information, price range, and more. Once they determine that an item looks good, consumers will continue the ordering journey and access other factors such as type of food, wait time, affordability, etc.

Dada la importancia de las imágenes de los comercios mostradas en los estudios, decidimos poner en marcha el proyecto para optimizar la imagen de los comercios mostrada a los consumidores. Queremos construir un modelo que elija las imágenes de producto que mejor atraigan e inspiren a los consumidores. También queríamos construir un modelo de exploración para seguir ampliando nuestra comprensión de qué imágenes interesan a los clientes.

Cómo desarrollamos nuestros modelos de selección de imágenes

How we grew our image selection from an MVP to its current progress exemplifies our team's practice of starting small and then using data and testing to grow progressively. At the beginning, the image selection logic was simple. We showed the header image for a store in a carousel which is manually selected by operators at the store or business level and showed the image of the best-selling item of the store in store feed and search feed. With the setting, consumers only see a single image across various discovery surfaces. The selected image remained static as it represented the store's best selling item which had minimal variance over time. In addition, there is a pitfall of the image selection logic, which is that the most bought item may not be an entree or terribly representative of a store. It's not uncommon for a popular side like fries or a soda to be featured instead of an entree that would better represent the merchant's offerings. 

Cómo avanzamos más allá del MVP

The MVP we built was a positive first step, but after collecting data about the product's shortcomings, our team went about making improvements for the next iteration. The personalization team first built an image filtration to filter out common items that might not be representative of the merchant. This was done by putting in business rules for restaurants that featured images, should not be drinks or sides (unless that was the merchant's primary selling point), and saw improvement on key metrics such as conversion in the A/B test.

Como siguiente paso, probamos a rotar las imágenes de descubrimiento a partir de un pool de cuatro imágenes (una imagen de cabecera y tres de los platos más vendidos), para mostrar una selección más amplia de los artículos más vendidos del menú de la tienda. La figura 2 muestra un ejemplo de pool de imágenes de un comercio. La hipótesis del equipo era que mostrar imágenes más frescas ayudaría a los consumidores a reconsiderar un comercio que antes habían pasado por alto. Los objetivos eran: 

  • determinar si la rotación de imágenes mejoraba la participación de los consumidores (clics);
  • determinar si la rotación de imágenes animaba a los consumidores a probar nuevos comercios; 
  • determinar si la combinación de las dos anteriores mejora la tasa de conversión; y
  •  recopilar datos de entrenamiento para algoritmos de aprendizaje automático. 
Figura 2: Ejemplo del grupo de selección de imágenes compuesto por la imagen de cabecera y las imágenes de los artículos destacados. La imagen de cabecera es la imagen que aparece en la parte superior de la página de la tienda y las imágenes de los artículos destacados son imágenes de los artículos destacados.
Figura 2: Ejemplo del grupo de selección de imágenes compuesto por la imagen de cabecera y las imágenes de los artículos destacados. La imagen de cabecera es la imagen que aparece en la parte superior de la página de la tienda y las imágenes de los artículos destacados son imágenes de los artículos destacados.

The test drove improvements in homepage clicks and new restaurant trials but had a negative impact on homepage conversions. What this means is that fresher images attracted more consumer interest and drove click-throughs to merchant pages. However, fresh images didn't guarantee conversion. While rotated images piqued consumers' interest, consumers might be confused that previously rejected merchants showed up differently on their feeds, and opted to reject the same merchants again. The additional friction (rejecting the same merchant again) took away the time consumers could have used on exploring other merchants they are more likely to order from. Therefore the overall homepage conversion dropped. The lesson we learned from here is that there is a difference between what drives click and what drives conversion.

Seleccionar la mejor imagen para cada comerciante

To address the shortcoming of image rotation, we need to select an image which has high quality and can really drive conversion. Recall that the image pool consists of images from featured (top selling) items. Another challenge we had to deal with was that just because an item was a top seller did not mean it had a high-quality or compelling image. These low-quality images could potentially be bad representatives of the merchant's selection and items and showing them on the discovery surfaces may actually hurt the conversion rate.

To solve the problem, we used a data driven approach to answer the question: if we need to choose one single image to represent a merchant, what would be the best image? Given that the team's goal is to improve the conversion rate, it's straightforward to look at past data to figure out which image drove most conversions. The image rotation experiment mentioned above provided us with the data we needed to start the image optimization process.

Equilibrio entre explotación y exploración

Elegir la imagen que generó más conversiones en el experimento de rotación de imágenes puede ser un buen comienzo. Sin embargo, no podemos limitarnos a elegir las imágenes de un análisis puntual previo. A continuación se exponen los principales problemas con los que tropieza un planteamiento simple, y que nosotros resolvimos:

  • New images don't have a chance to be shown to consumers. The initial conversion rate is 0 for a new image but it may be an image with high quality.
  • Consumers' taste may change over time. The image which drove most conversion in the past is not guaranteed to drive most conversion in the future. If we always show the image, there is no chance for other images to catch up.
  • Consumers may get tired of seeing the same image again and again. If the consumer doesn't find the current image attractive, showing the same image may not help conversion.

Para introducir la exploración, utilizamos un algoritmo bandit multibrazo para implementar el modelo Image EnE. El planteamiento es similar al que hicimos en Recomendación de páginas de inicio con explotación y exploración

La puntuación compuesta (final) del modelo se formula como:

donde:

  • c es el identificador del consumidor
  • m es el identificador del comerciante
  • i es la url de la imagen

donde:

La puntuación de explotación es la tasa de conversión (puntuación CVR) de la imagen, agregada sobre todos los consumidores de cada imagen. La puntuación de exploración se basa en el número de impresiones que el consumidor ha tenido sobre la imagen. A mayor número de impresiones, menor puntuación. El modelo Image EnE introduce incertidumbre en la puntuación CVR con un multiplicadorCENE para equilibrar entre explotación y exploración.

A continuación, seleccionamos la imagen con la mayor puntuación del modelo compuesto para mostrársela al consumidor. Tanto el término de explotación como el de exploración contribuyen a la puntuación compuesta. Para explorar una ilustración de cada contribución:

  • For a given consumer, we explore until we find an image that converts. For example, the consumer saw image A on day one as it has the highest score on the day. The consumer had seen image A for several days but didn't convert. Due to the impression discount, image B, with the second-best conversion rate, has a higher composite score than A on day three and has been surfaced to the consumer since then. 
  • Because we are always exploring, we learn when the global performance of images changes and do not lock into one image. Image A had the highest conversion rate on day one. However, the conversion rate dropped over time because consumers' taste changed. Another image can have higher conversion rate and thus higher composite score than image A. The exploitation and exploration mechanism ensures fair competition among images and freshness of the images.

Como resultado, el modelo de exploración-explotación encuentra la imagen más atractiva para un comerciante a partir de un conjunto de seis imágenes (cinco artículos más vendidos + imagen de cabecera) para cada sesión de usuario. En lugar de explotar una sola imagen, el modelo muestra periódicamente una nueva imagen a los consumidores para que la exploren y obtengan su opinión. A medida que un consumidor interactúa o no con el vendedor, el modelo aprende sus preferencias y ajusta la imagen para el vendedor. Por ejemplo,

  • Si un consumidor no convierte con la imagen A de un comerciante, el modelo muestra otra imagen B para recabar opiniones.
  • Si un consumidor se convierte en la imagen A de un comerciante, el modelo fija la imagen sin cambios futuros para este par comerciante-consumidor para garantizar la reconocibilidad.
  • As the model collects feedback from all consumers, the "exploit" component of the model scales the highest conversion image (say image C) to all consumers.

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.

Elegir el equilibrio entre explotación y exploración

El multiplicadorCENE de la fórmula anterior controla el equilibrio entre explotación y exploración. Para tener una buena experiencia de producto, tenemos que elegir el multiplicador adecuadamente. Podemos hacer una prueba A/B para determinar el valor óptimo del multiplicador. Sin embargo, los experimentos A/B llevan tiempo y tenemos que garantizar un tráfico suficiente para cada grupo de tratamiento. Por lo tanto, no podemos tener demasiados grupos de tratamiento y multiplicadores para probar. Tenemos que reducir nuestro espacio de búsqueda para los multiplicadores.

Before the A/B test, we analyzed the past data from the Image Rotation experiment. In the past data, we know the CVR score for each image. Therefore, for each merchant, we can simulate the image replacement process - that is, after how many impressions would the composite score be discounted enough such that the previously second-best image becomes the best. Aggregating over all merchants, we have the probability of image change after X views with different multipliers. We wrote code to run the analysis on past data so we can estimate the probability with as many multipliers as we want.

Cuando el multiplicador de incertidumbre es 0, no hay incertidumbre ni exploración, por lo que la probabilidad de cambio de imagen es 0 independientemente del número de visualizaciones. Cuando el multiplicador de incertidumbre es muy alto, como 0,05, hay más peso en el término de exploración, lo que hace que la imagen cambie con frecuencia; los comerciantes cambiarían las imágenes después de 3 visualizaciones cuando el multiplicador es 0,05. Basándonos en los datos, decidimos probar dos variantes en la primera prueba A/B, una con multiplicador=0 y otra con multiplicador=0,01. Ejecutamos la prueba A/B durante varias semanas y observamos una mejora en las pruebas de nuevos restaurantes, al tiempo que manteníamos la tasa de conversión y la frecuencia de pedidos.

La figura 3 muestra ejemplos en los que el modelo mejoró la calidad de la imagen:

Figura 3: Antes y después de aplicar el algoritmo Image EnE
Figura 3: Antes y después de aplicar el algoritmo Image EnE

Contextualizar la imagen con la consulta de búsqueda

Los párrafos anteriores describen cómo seleccionamos una imagen para cada comercio sin ningún contexto como la intención del consumidor, la hora del día, etc. Creemos que seleccionar una imagen que coincida con el contexto actual también es importante. Para empezar, partimos de la consulta de búsqueda. Cuando un consumidor busca un plato, tiene una fuerte intención de pedirlo. Por término medio, la conversión de estas consultas es inferior a la de las búsquedas de nombres de comerciantes. 

Nuestra hipótesis es que esto puede deberse a la fricción a la hora de encontrar los platos que a los consumidores les apetecen en ese momento: 

  • Cuando los consumidores buscan un plato concreto (por ejemplo, una hamburguesa), aparecen imágenes de otros platos en el buscador, lo que obliga a hacer clic en el establecimiento para comprobar si el comerciante sirve ese plato.
  • Incluso después de aterrizar en la página de la tienda, los consumidores tienen que desplazarse para encontrar el plato.

Por ello, los equipos de Búsqueda y Personalización realizaron pruebas:

  • Mostrando imágenes contextualizadas en el feed de búsqueda que incluyan el artículo más vendido relacionado con lo que el consumidor ha buscado, con el objetivo de despertar su interés y mejorar el clic a primera vista, especialmente si se trata de una tienda desconocida (Figura 4). 
  • Mostrar un carrusel en la parte superior de la página de la tienda con artículos relacionados con lo que el cliente ha buscado con el objetivo de reducir la fricción de desplazarse por todo el menú y mejorar la conversión (Figura 5).

Para potenciar esta función, la comparamos con las etiquetas de artículos proporcionadas por el catálogo de alimentos. Probamos la función de forma conjunta porque: (1) queríamos probar el estado final y pensábamos que ambas funciones juntas tendrían un impacto de mayor volumen (la optimización de la imagen mejoraría el CTR de búsqueda, mientras que el carrusel mejoraría la conversión), y (2) teníamos un tráfico limitado para probar (7 términos de búsqueda); indexaríamos las métricas del embudo para ayudar a informar si ambas partes de la experiencia tenían éxito.

Experiencia del usuario

Figura 4: Experiencia del usuario de control (izquierda) y de tratamiento (derecha) en el feed de búsqueda
Figura 4: Experiencia del usuario de control (izquierda) y de tratamiento (derecha) en el feed de búsqueda
Figura 5: Experiencia del usuario de control (izquierda) y de tratamiento (derecha) en la página de la tienda
Figura 5: Experiencia del usuario de control (izquierda) y de tratamiento (derecha) en la página de la tienda

La prueba A/B mostró un impacto neutro en la conversión de búsquedas, probablemente porque nos limitamos a los siete términos de búsqueda (tipos de platos) en los que el catálogo de alimentos tenía una alta precisión y recuperación. Seguiremos mejorando la precisión y la recuperación del catálogo de alimentos, ampliándolo a más tipos de platos e iterando el producto.

Trabajos futuros

Our journey on Image Personalization doesn't end here. There are many aspects where we can improve our system and algorithms. Below we describe some ideas for the next phases in the future.

  • Función basada en reglas, más contextual/consumidor: de forma similar a lo que hicimos para el contexto de búsqueda, podemos empezar con un enfoque basado en reglas para potenciar las imágenes que se ajustan a otros contextos o filtrar las imágenes que no se ajustan a los contextos.
  • Personalización de imágenes basada en ML: iremos más allá de un refuerzo o filtro basado en reglas y utilizaremos el aprendizaje automático para predecir una puntuación a partir de las características. Utilizaremos datos históricos para entrenar el modelo y predecir una puntuación basada en más características. La puntuación se utilizará como puntuación de explotación en el marco de Image EnE descrito en el artículo, en sustitución del statu quo, que es la tasa de conversión entre todos los consumidores. 
  • Personalización de contenidos: Una vez que demostremos el éxito de la personalización de imágenes, ampliaremos nuestros conocimientos y experiencia de la personalización de imágenes a otros contenidos en las superficies de descubrimiento.

Conclusión

En el artículo, explicamos las superficies de descubrimiento en DoorDash, por qué es importante tener una buena imagen en estas superficies de descubrimiento y el objetivo de la personalización de imágenes. A continuación, describimos cómo iniciamos la personalización de imágenes con la rotación de imágenes para recopilar datos y señales tempranas. A continuación, hablamos de por qué necesitamos un equilibrio entre explotación y exploración para las imágenes y cómo lo conseguimos. Presentamos el algoritmo de aprendizaje por refuerzo UCB y describimos cómo utilizamos UCB en el modelo de Explotación y Exploración de Imágenes (EnE). También explicamos cómo seleccionamos el multiplicador para equilibrar explotación y exploración y cómo realizamos pruebas A/B. También introdujimos el concepto de selección de imágenes en función del contexto y describimos el experimento que hicimos para el contexto de búsqueda. Por último, hablamos del trabajo futuro de la personalización de imágenes.

Agradecimientos

Muchas gracias a Parul Khurana, Josh Zhu, Yu Zhang, Mengjiao Zhang, Jay Zhang, Chen Dong, Di Li y Sandor Nyako por compartir sus puntos de vista sobre el desarrollo y el apoyo a la ejecución de las ideas de esta entrada de blog. Nuestro agradecimiento también a Elena Lin y Jessica Zhang por sus ideas basadas en datos y por ayudarnos a desarrollar la estrategia del experimento y el marco de medición. Un agradecimiento especial a Ezra Berger por su continuo apoyo, revisión y edición de este artículo.

About the Author

  • Chun-Chen Kuo

    Chun-Chen Kuo is a Software Engineer at DoorDash since March 2021 on the Discovery Personalization Team, building recommendation systems to enable a personalized feed for DoorDash consumers.

Trabajos relacionados

Job ID: 2915998
Ubicación
Sao Paulo, Brazil
Departamento
Ingeniería
Ubicación
Sunnyvale, CA
Departamento
Ingeniería
Ubicación
Pune, India
Departamento
Ingeniería
Ubicación
São Paulo, Brasil
Departamento
Ingeniería
Job ID: 2739485
Ubicación
San Francisco, CA; Tempe, AZ
Departamento
Ingeniería