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?
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.
Compte tenu de l'importance des images des marchands montrées dans les études, nous avons décidé de lancer un projet visant à optimiser l'image des marchands montrée aux consommateurs. Nous voulons construire un modèle qui choisira les images de produits qui séduiront et inspireront le mieux les consommateurs. Nous voulons également construire un modèle d'exploration pour continuer à améliorer notre compréhension des images qui intéressent les clients.
Comment nous avons développé nos modèles de sélection d'images
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.
Comment nous avons progressé au-delà du 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.
Dans un deuxième temps, nous avons testé la rotation des images de découverte à partir d'un pool de quatre images (une image d'en-tête et trois plats les plus vendus), afin de présenter une plus grande sélection des articles les plus vendus du menu du magasin. La figure 2 montre un exemple de pool d'images d'un commerçant. L'équipe a émis l'hypothèse que la présentation d'images plus fraîches aiderait les consommateurs à reconsidérer un commerçant qu'ils avaient précédemment ignoré. Les objectifs étaient les suivants
- déterminer si la rotation des images améliore l'engagement des consommateurs (clics) ;
- déterminer si la rotation des images incite les consommateurs à essayer de nouveaux commerçants ;
- déterminer si la combinaison des deux éléments ci-dessus a permis d'améliorer le taux de conversion ; et
- collecter des données d'entraînement pour les algorithmes d'apprentissage automatique.
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.
Sélection de la meilleure image pour chaque commerçant
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.
Équilibrer l'exploitation et l'exploration
Choisir l'image qui a généré le plus de conversions lors de l'expérience de rotation d'images pourrait être un bon début. Cependant, nous ne pouvons pas nous contenter de choisir les images d'une analyse ponctuelle antérieure. Voici les principaux problèmes qu'une approche simple rencontre et que nous avons résolus :
- 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.
Pour introduire l'exploration, nous avons utilisé un algorithme de bandit à bras multiples pour mettre en œuvre le modèle EnE de l'image. L'approche est similaire à celle que nous avons adoptée pour la recommandation d'accueil avec exploitation et exploration.
Le score composite (final) du modèle est formulé comme suit :
où :
- c est l'identifiant du consommateur
- m est l'identifiant du commerçant
- i est l'url de l'image
où :
Le score d'exploitation est le taux de conversion (score CVR) de l'image, agrégé sur l'ensemble des consommateurs pour chaque image. Le score d'exploration est basé sur le nombre d'impressions que le consommateur a eu sur l'image. Plus le nombre d'impressions est élevé, plus le score est faible. Le modèle Image EnE introduit une incertitude dans le score CVR avec un multiplicateur CENE pour équilibrer l'exploitation et l'exploration.
Nous sélectionnons ensuite l'image ayant le score composite le plus élevé pour l'afficher au consommateur. Le terme d'exploitation et le terme d'exploration contribuent tous deux au score composite. Pour explorer une illustration de chaque contribution :
- 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.
En conséquence, le modèle explore-exploite trouve l'image la plus convaincante pour un commerçant à partir d'un ensemble de six images (cinq articles les plus vendus + l'image d'en-tête) pour chaque session d'utilisateur. Au lieu d'exploiter une seule image, le modèle présente régulièrement une nouvelle image aux consommateurs afin qu'ils l'explorent et qu'ils donnent leur avis. Lorsqu'un consommateur s'engage ou ne s'engage pas avec le marchand, le modèle apprend ses préférences et ajuste l'image pour le marchand. Par exemple,
- Si un consommateur ne se convertit pas à l'image A d'un commerçant, le modèle présente une autre image B afin de recueillir des commentaires.
- Si un consommateur se convertit à l'image A d'un commerçant, le modèle fixe alors l'image sans aucun changement futur pour cette paire commerçant-consommateur afin d'en garantir la reconnaissabilité.
- 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.
Restez informé grâce aux mises à jour hebdomadaires
Abonnez-vous à notre blog d'ingénierie pour recevoir régulièrement des informations sur les projets les plus intéressants sur lesquels notre équipe travaille.
Please enter a valid email address.
Merci de vous être abonné !
Choisir le bon compromis entre l'exploitation et l'exploration
Le multiplicateur CENE dans la formule ci-dessus contrôle le compromis entre l'exploitation et l'exploration. Pour avoir une bonne expérience du produit, nous devons choisir le multiplicateur de manière appropriée. Nous pouvons effectuer un test A/B pour déterminer la valeur optimale du multiplicateur. Cependant, les expériences A/B prennent du temps et nous devons garantir un trafic suffisant pour chaque groupe de traitement. Nous ne pouvons donc pas avoir trop de groupes de traitement et de multiplicateurs à tester. Nous devons réduire notre espace de recherche pour les multiplicateurs.
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.
Lorsque le multiplicateur d'incertitude est égal à 0, il n'y a pas d'incertitude ni d'exploration, de sorte que la probabilité de changement d'image est égale à 0, quel que soit le nombre de vues. Lorsque le multiplicateur d'incertitude est très élevé (0,05 par exemple), le terme d'exploration a plus de poids, ce qui entraîne des changements d'image fréquents ; les marchands changent d'image après trois affichages lorsque le multiplicateur est de 0,05. Sur la base de ces données, nous avons décidé de tester deux variantes dans le premier test A/B, l'une avec un multiplicateur de 0 et l'autre avec un multiplicateur de 0,01. Nous avons effectué le test A/B pendant plusieurs semaines et avons constaté une amélioration des essais de nouveaux restaurants tout en maintenant le taux de conversion et la fréquence des commandes.
La figure 3 montre des exemples où le modèle a amélioré la qualité de l'image :
Contextualisation de l'image avec la requête de recherche
Les paragraphes ci-dessus décrivent la manière dont nous sélectionnons une image pour chaque marchand sans tenir compte du contexte, comme l'intention du consommateur, l'heure de la journée, etc. Nous pensons que la sélection d'une image correspondant au contexte actuel est également importante. Pour commencer, nous sommes partis de la requête de recherche. Lorsqu'un consommateur recherche un plat, il a la ferme intention de le commander. En moyenne, ces requêtes sont moins performantes en termes de conversion que les recherches de noms de commerçants.
Nous avons émis l'hypothèse que cela pouvait être dû à des frictions dans la recherche des plats dont les consommateurs ont envie à ce moment-là :
- Lorsque les consommateurs recherchent un plat spécifique (par exemple un hamburger), des images d'autres plats apparaissent dans le flux de recherche, ce qui les oblige à cliquer sur le magasin pour vérifier si le commerçant propose ce plat.
- Même après avoir atterri sur la page du magasin, les consommateurs doivent faire défiler la page pour trouver le plat.
C'est pourquoi les équipes de recherche et de personnalisation ont été testées :
- L'affichage d'images contextualisées sur le flux de recherche qui comprend l'article le plus vendu en rapport avec ce que le consommateur a recherché, dans le but de susciter son intérêt et d'améliorer le taux de clics dès le premier coup d'œil, en particulier pour un magasin peu familier (figure 4).
- Affichage d'un carrousel en haut de la page du magasin présentant des articles liés à ce que le client a recherché, dans le but de réduire les frictions liées au défilement de l'ensemble du menu et d'améliorer la conversion (figure 5).
Pour alimenter cette fonctionnalité, nous nous sommes appuyés sur les étiquettes d'articles fournies par le catalogue alimentaire. Nous avons testé l'ensemble des fonctionnalités pour les raisons suivantes : (1) nous voulions tester l'état final et nous pensions que les deux fonctionnalités auraient ensemble un impact plus important (l'optimisation de l'image améliorerait le CTR tandis que le carrousel améliorerait la conversion), et (2) nous avions un trafic limité à tester (7 termes de recherche) - nous indexerions les mesures de l'entonnoir pour aider à déterminer si les deux parties de l'expérience ont été couronnées de succès.
Expérience de l'utilisateur
Le test A/B a montré un impact neutre sur la conversion des recherches, probablement parce que nous étions limités aux sept termes de recherche (types de plats) pour lesquels le catalogue alimentaire avait une précision et un rappel élevés. Nous continuerons à améliorer la précision et la mémorisation du catalogue alimentaire, à l'étendre à d'autres types de plats et à faire évoluer le produit.
Travaux futurs
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.
- Fonctionnalité plus contextuelle/consommateur basée sur des règles : à l'instar de ce que nous avons fait pour le contexte de recherche, nous pouvons commencer par une approche basée sur des règles pour stimuler les images qui correspondent à d'autres contextes ou pour filtrer les images qui ne correspondent pas à ces contextes.
- Personnalisation d'images basée sur l'apprentissage automatique : nous irons au-delà d'un renforcement ou d'un filtrage basé sur des règles et utiliserons l'apprentissage automatique pour prédire un score à partir des caractéristiques. Nous utiliserons des données historiques pour entraîner le modèle à prédire un score sur la base d'un plus grand nombre de caractéristiques. Ce score sera utilisé comme score d'exploitation dans le cadre de l'EnE de l'image décrit dans l'article, remplaçant le statu quo qui est le taux de conversion parmi tous les consommateurs.
- Personnalisation du contenu : Une fois que nous aurons prouvé le succès de la personnalisation des images, nous étendrons notre expertise et notre expérience de la personnalisation des images à d'autres contenus sur les surfaces de découverte.
Conclusion
Dans cet article, nous avons expliqué les surfaces de découverte sur DoorDash, pourquoi il est important d'avoir une bonne image sur ces surfaces de découverte et l'objectif de la personnalisation d'image. Nous avons ensuite décrit comment nous démarrons la personnalisation d'image avec la rotation d'image pour collecter des données et des signaux précoces. Ensuite, nous avons expliqué pourquoi nous avons besoin d'un équilibre entre l'exploitation et l'exploration des images et comment nous y parvenons. Nous avons présenté l'algorithme d'apprentissage par renforcement UCB et décrit comment nous utilisons UCB dans le modèle d'exploitation et d'exploration d'images (EnE). Nous avons également expliqué comment nous avons sélectionné le multiplicateur pour trouver un compromis entre l'exploitation et l'exploration et comment nous avons effectué des tests A/B. Nous avons également introduit le concept de sélection d'images en fonction du contexte et décrit l'expérience que nous avons réalisée pour le contexte de recherche. Enfin, nous avons parlé des travaux futurs sur la personnalisation des images.
Remerciements
Un grand merci à Parul Khurana, Josh Zhu, Yu Zhang, Mengjiao Zhang, Jay Zhang, Chen Dong, Di Li, et Sandor Nyako pour avoir partagé leurs idées sur le développement et leur soutien à l'exécution des idées contenues dans ce billet de blog. Notre gratitude va également à Elena Lin et Jessica Zhang pour leurs idées basées sur les données et pour nous avoir aidés à développer la stratégie d'expérimentation et le cadre de mesure. Nous remercions tout particulièrement Ezra Berger pour son soutien continu, sa révision et son édition de cet article.