The DoorDash retail shopping experience mission seeks to combine the best parts of in-person shopping with the power of personalization. While shopping in a physical store has its advantages, a brick-and-mortar store cannot be personalized - the onus is on the consumer to navigate aisles to find what they need. Conversely, a digital shopping experience can be highly personalized. By understanding each consumer's purchasing history, dietary restrictions, favorite brands, and other personalized details, we not only can recommend items that reflect a consumer's unique shopping needs and preferences, but we can also streamline cart-building. Personalization goes beyond simply curating options for items already on a shopper's list; it also brings a sense of serendipity by unveiling potential new favorites that consumers may not have considered before. Using the power of personalization to craft a delightful retail shopping journey fosters consumer retention by instilling trust that DoorDash truly understands a shopper's needs and preferences.
Dans cet article, nous montrons comment nous avons construit une expérience d'achat personnalisée pour nos nouveaux magasins verticaux, qui comprennent les épiceries, les magasins de proximité, les magasins d'animaux et les magasins d'alcool, parmi beaucoup d'autres. Après une présentation générale de notre cadre de recommandation, nous nous attardons sur les détails de la modélisation, les défis que nous avons rencontrés en cours de route et la manière dont nous les avons relevés.
Les défis de la construction d'un modèle de recommandation
L'élaboration de modèles de recommandation pour nos magasins de détail est une tâche difficile qui nécessite une connaissance approfondie des stocks, des préférences des clients et du contexte d'achat. Contrairement à notre secteur de la restauration, où un commerçant typique ne vend que quelques dizaines ou tout au plus quelques centaines de plats ou de boissons, nos nouveaux magasins verticaux proposent souvent des centaines de milliers d'unités de stock dans des milliers de catégories. La taille des stocks et la variété des catégories exigent de nos systèmes de recommandation qu'ils passent efficacement au crible un tsunami de choix pour recommander des options pertinentes aux consommateurs. En outre, les consommateurs des magasins d'alimentation et de détail ont tendance à avoir des habitudes d'achat et des demandes plus variées que les consommateurs des restaurants ; alors que certains clients préfèrent commander les mêmes articles chaque semaine, d'autres peuvent vouloir découvrir de nouveaux produits ou acheter des articles saisonniers tels que des costumes d'Halloween. En outre, les systèmes de recommandation doivent s'adapter rapidement aux préférences dynamiques des clients, qui peuvent changer de manière significative en fonction du contexte d'achat, comme les ventes promotionnelles, les événements spéciaux ou même le moment de la journée.
Cadre général
As shown in Figure 1, upon landing on the homepage of a DoorDash retail store, consumers see a variety of themed collections - for example, "Organic Goods" and "Popular Deals" - displayed from top to bottom, each showcasing a selection of items arranged from left to right. If an item is of immediate interest, a consumer can click on the "+" button to add it to their cart. Those seeking more information can click on the item image to view further product details before deciding whether to add the item to the cart. If the initial collections don't appeal to a shopper, they can scroll down vertically to view additional collections. Similarly, if the collection theme is compelling but the visible items are not of interest, consumers can swipe horizontally to see more items to the right.
Before the introduction of ML models, our operations team had to manually curate collections and determine both their vertical positions and the horizontal positions of items within each collection. As DoorDash's vertical businesses grow, drawing more consumers to these pages, manual retrieval and ranking is no longer tenable, particularly because consumers' personal needs cannot be taken into consideration. Instead, we built a new framework, as shown in Figure 2, to personalize recommendations for shoppers.
Ce cadre se compose des six éléments ci-dessous :
I. Génération de la collection :
Nos collections se répartissent en trois catégories principales, en fonction de la manière dont elles sont générées.
- Collections générées par l'opérateur: Créées manuellement par les opérateurs, elles contiennent généralement des articles populaires d'un marchand, ainsi que des articles saisonniers ou des articles regroupés autour d'un thème spécifique.
- Collections personnalisées basées sur des règles: Articles sélectionnés pour chaque consommateur en fonction de son historique d'achat, par exemple, nouveaux articles de la marque ou de la catégorie d'articles la plus achetée par un consommateur.
- Collections personnalisées basées sur le ML: Catégories d'articles dont les modèles de ML prédisent qu'elles sont très pertinentes pour le consommateur.
II. Recherche de collections:
When serving up a merchant's page, it can be computationally expensive to fetch all available items in a store and then rank them across all collections. To avoid this hefty cost, we instead use a collection retrieval model to perform a first pass through our large group of collections to determine which ones to show consumers on the first page, second page, and so on. This streamlines fetching and ranking items to a single page at a time.
III. Classement horizontal des éléments:
Une fois les collections extraites, nous utilisons un classificateur d'éléments pour placer les éléments horizontalement dans chaque collection ; les éléments les plus pertinents apparaissent à gauche, tandis que les éléments moins pertinents sont repoussés à droite.
IV. Post-traitement des éléments:
We apply business logic to adjust the models' rankings. For example, items without photos are down-ranked because consumers are less likely to engage with them. Also down-ranked are items with a high probability of being out of stock, as predicted by a separate model, since such items are less likely to be fulfilled. Intra-collection diversity is also applied to avoid showing similar items in a row - for example, three types of apples in a produce collection.
V. Classement de la collection:
Une fois les éléments classés et ajustés au sein de chaque collection, nous procédons à une deuxième série de classements fins au sein des collections. Cela permet de s'assurer que les collections ayant des scores moyens plus élevés pour les éléments les mieux classés (K) apparaissent plus haut que celles dont les éléments les mieux classés (K) sont moins attrayants.
VI. Traitement ultérieur de la collection:
Dans la même veine que le post-traitement des éléments, nous appliquons également une logique commerciale à la finalisation des collections. Par exemple, nous dédupliquons les éléments entre les collections afin que les consommateurs ne rencontrent pas d'éléments très similaires d'une collection à l'autre. Nous mettons également en œuvre la diversité inter-collections afin d'éviter le regroupement de collections contenant des éléments similaires.
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é !
Approfondissement du modèle ML
Récupération des collections
Le modèle de recherche de collections, illustré à la figure 3, est l'un des éléments clés de la personnalisation des pages du magasin. Il détermine les collections qui sont présentées aux consommateurs sur chaque page. L'objectif du modèle est de prédire la probabilité qu'un consommateur s'intéresse à une collection donnée, par exemple en cliquant ou en ajoutant des articles au panier.
Le modèle de recherche de collections prend en compte les caractéristiques suivantes :
- Popularité des collections, qui peut être déterminée de différentes manières, notamment par un taux de clics élevé, un grand nombre de clics ou un total partiel élevé de commandes d'articles de la collection, entre autres facteurs.
- Caractéristiques du consommateur, comme le fait de savoir si le consommateur a un abonnement DashPass, s'il est un nouvel utilisateur ou un utilisateur chevronné, ou combien de commandes il a déjà passées.
- L'engagement passé du consommateur avec cette collection, qui peut être mesuré par des indicateurs tels que le CTR, les taux d'ajout au panier, les taux de conversion et les sous-totaux, qui peuvent indiquer un engagement futur entre le consommateur et des collections similaires.
- Past consumer engagement with items from this collection; consumers may interact with the same items from different stores or in different collections. Consumer item engagement from all surfaces - for example, clicks from search results or clicks from category pages - are used as input features for the collection retrieval model.
- Caractéristiques contextuelles, notamment l'heure de la journée, le jour de la semaine, le type de magasin et la géolocalisation, entre autres facteurs.
Classement des articles
Un modèle de classement des articles détermine l'ordre horizontal des articles au sein d'une collection. Nous avons commencé par un modèle qui prédit le CTR parce que les clics contiennent de riches informations sur les préférences des consommateurs et qu'ils sont fortement corrélés avec nos étoiles du Nord, notamment l'ajout au panier et la conversion. Cependant, nous avons rapidement constaté que l'optimisation des clics présentait certains inconvénients. Les modèles qui optimisent le CTR ont tendance à rehausser le classement d'articles de niche dont le CTR historique est élevé, mais qui n'intéressent qu'un petit groupe d'acheteurs, tandis que d'autres articles pour lesquels les clics sont fréquents sont rarement ajoutés au panier, ce que l'on appelle le taux de clics par rapport à l'ATC. Ces problèmes ont été considérablement atténués par l'application d'une pondération plus élevée aux échantillons positifs où un clic est suivi de l'ajout de l'article au panier et, en fin de compte, d'une conversion.
Caractéristiques du modèle de classement des éléments peut être divisé en trois catégories principales :
- Consumers' past engagement on this item
- Attributs des articles, y compris le prix, les remises, la marque, les catégories de produits et la popularité
- les caractéristiques des consommateurs, telles que la préférence de catégorie, les restrictions alimentaires et la sensibilité au prix
Outre les types de caractéristiques numériques et catégorielles traditionnelles, nous avons également utilisé les encastrements sémantiques des consommateurs et des articles développés par l'équipe ML de DoorDash, qui offrent une représentation plus riche de nos consommateurs et de nos articles au-delà des caractéristiques denses incluses ci-dessus.
Lutter contre les préjugés liés à la position
As with other ranking models, DoorDash's personalized rankers are affected by position bias. In fact, this problem becomes more significant because of the limited real estate in our consumer app. On most mobile devices, consumers can only see the first three items in each collection without having to scroll to the right. As shown in Figure 4, position bias causes a decline in CTR - number of clicks/number of impressions - after those first three items. As consumers are required to scroll manually to explore more items, overall item impression drops suddenly in the fourth position, leading to a significant CTR increase from the third to the fourth item in each collection (item card positions are 0-indexed).
Nous avons intégré la position des articles comme caractéristique clé de notre modèle afin de tenir compte de l'impact de la position des articles sur le CTR. Comme les positions varient en fonction de la surface du produit, nous avons inclus la surface du produit en tant que caractéristique supplémentaire. Au cours de la phase d'apprentissage, le modèle apprend comment les positions des articles et les surfaces des produits influencent collectivement le classement. Lors de l'inférence, nous fixons la valeur de la position de l'article à 0, ce qui représente la première position, et la surface du produit à la surface réelle sur laquelle le modèle est appelé à faire des prédictions.
Diversifier nos recommandations
Ordering items and collections based solely on model scores often leads to clusters of similar items horizontally and similar collections vertically because they exhibit similar model scores. This lack of diversity does not provide an optimal experience for shoppers, nor does it take full advantage of a store's page to delight customers with fresh discoveries. To diversify our recommendations, we applied maximal marginal relevance to both items and collections after the ranking stage. Take item diversification as an example: Given the item set I, which includes all previously selected items (initially a blank item set), we aim to find the next item j that maximizes the objective function O(j, I), which balances item score and similarity:
O(j,I) = Sj -⍺· sim(j, I)
where Sj is the predicted item core from the ranking model and the similarity metric sim(j, I) is defined based on item attributes such as categories and brands. The value ‚ç∫ is determined via online experiments. This approach is similarly applied to collection diversification.
In backend processing, this technique is applied as a post-ranking step following the horizontal and vertical ranking of collections. More specifically, horizontal diversification - within a collection - is carried out after items are ranked, with the similarity calculation applied at the product category level. Collections are initially diversified at the store level, after which pagination is used to determine which collections are currently served in view and then diversification occurs at the page level. Collection similarity is calculated by aggregating item taxonomy similarity per collection.
Objectifs futurs de personnalisation
While we have detailed how ML solutions are helping DoorDash to recommend relevant and diverse items to consumers from a vast inventory spanning thousands of categories, our ML team also is incorporating restaurant order histories to inform grocery recommendations to individual consumers. For example, a frequent vegan restaurant patron might appreciate curated vegan selections in our grocery stores. We plan to use consumer behavior sequences as features to better capture users' short-term and long-term interests. On the model architecture front, we are moving toward MTML (multi-task multi-label) architectures to adapt to multiple product surfaces and optimize for complex modeling objectives. Ultimately, we're looking to implement real-time features capturing consumer behaviors within a session, for example items currently in the cart and search queries in the past few minutes, to make personalization more timely and context-aware.
Remerciements
Nous remercions tout particulièrement Meng Chen, Shi Wang, Talia Stadtmauer, Vivek Paharia, Andre Jacobovitz, Yucong Ji, Jennifer Yunus, Sudeep Das et Kurt Smith, qui ont tous collaboré à la réalisation de ce travail passionnant !