Saltar para o conteúdo

Blogue


Personalizar a experiência da página da loja de retalho DoorDash

12 de dezembro de 2023

|
Luming Chen

Luming Chen

Yuan Meng

Yuan Meng

Anthony Zhou

Anthony Zhou

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. 

Nesta publicação, mostramos como criámos uma experiência de compra personalizada para as nossas novas lojas verticais de negócio, que incluem mercearia, conveniência, animais de estimação e álcool, entre muitas outras. Após uma visão geral de alto nível de nossa estrutura de recomendação, nos concentramos nos detalhes de modelagem, nos desafios que encontramos ao longo do caminho e em como lidamos com esses desafios. 

Os desafios da construção de um modelo de recomendação

A criação de modelos de recomendação para as nossas lojas de retalho é uma tarefa difícil que exige um conhecimento profundo do inventário, das preferências dos clientes e do contexto de compra. Ao contrário do nosso negócio de restauração, em que um comerciante típico vende apenas algumas dezenas ou, no máximo, centenas de pratos ou bebidas, as nossas novas lojas verticais têm frequentemente centenas de milhares de SKUs em milhares de categorias. A dimensão do inventário e a variedade de categorias exigem que os nossos sistemas de recomendação analisem eficazmente um tsunami de escolhas para recomendar opções relevantes aos consumidores. Além disso, os clientes de mercearias e retalhistas tendem a ter hábitos de compra e exigências mais variadas do que os consumidores de restaurantes; enquanto alguns clientes preferem voltar a encomendar os mesmos artigos todas as semanas, outros podem querer explorar novos produtos ou comprar artigos sazonais, como fatos de Halloween. Além disso, os sistemas de recomendação devem adaptar-se rapidamente às preferências dinâmicas dos clientes, que podem mudar significativamente consoante o contexto de compra, como vendas promocionais, eventos especiais ou mesmo a hora do dia.

Quadro geral

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.  

Figura 1: Exemplo de colecções temáticas na página inicial de uma loja de retalho da DoorDash

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.

Figura 2: Estrutura geral para gerar recomendações personalizadas para páginas iniciais de lojas de retalho.

Este quadro é constituído pelas seis componentes que se seguem: 

I. Geração de colecções:

As nossas colecções dividem-se em três categorias principais, consoante a forma como são geradas. 

  • Colecções geradas pelo operador: Seleccionadas manualmente pelos operadores e contêm normalmente artigos populares de um comerciante, bem como artigos sazonais ou artigos agrupados por um tema específico.
  • Colecções personalizadas baseadas em regras: Itens seleccionados para cada consumidor com base no seu histórico de compras, por exemplo, novos itens da marca ou categoria de item mais comprada por um consumidor.
  • Colecções personalizadas baseadas em ML: Categorias de itens que os modelos de ML prevêem ser altamente relevantes para o consumidor.

II. Recuperação da coleção:

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. Classificação horizontal de itens:

Depois de as colecções serem recuperadas, utilizamos um classificador de itens para colocar os itens horizontalmente dentro de cada coleção; os itens mais relevantes aparecem à esquerda, enquanto os itens menos relevantes são empurrados para a direita.

IV. Pós-processamento de itens:

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. Classificação das colecções:

Depois de os itens serem classificados e ajustados dentro de cada coleção, realizamos uma segunda ronda de classificação fina dentro das colecções. Isto garante que as colecções com pontuações médias mais elevadas para os seus itens de topo da classificação K aparecem mais elevadas do que aquelas com itens de topo K menos apelativos.

VI. Pós-processamento da coleção:

De forma semelhante ao pós-processamento de itens, também aplicamos lógica comercial para finalizar colecções. Um exemplo é a deduplicação de itens entre colecções para que os consumidores não encontrem itens muito semelhantes de uma coleção para outra. Também implementamos diversidade entre colecções para aliviar o agrupamento de colecções que contêm itens semelhantes.

Mantenha-se informado com as actualizações semanais

Subscreva o nosso blogue de Engenharia para receber actualizações regulares sobre todos os projectos mais interessantes em que a nossa equipa está a trabalhar

Mergulho profundo no modelo ML

Recuperação de colecções

O modelo de recuperação de colecções, como mostra a Figura 3, é um dos principais componentes da personalização de páginas de lojas. Determina quais as colecções que são mostradas aos consumidores em cada página. O objetivo do modelo é prever a probabilidade de um consumidor interagir com uma determinada coleção, por exemplo, clicando ou adicionando artigos ao carrinho.

Figura 3: O modelo de recuperação de colecções determina quais as colecções que são mostradas aos consumidores em cada página.

O modelo de recuperação de colecções considera as seguintes características:

  • Popularidade das colecções, que pode ser determinada de várias formas, como por exemplo através de uma elevada taxa de cliques (CTR), um grande número de cliques ou um elevado subtotal de encomendas de artigos da coleção, entre outros factores.
  • Características do consumidor, como, por exemplo, se o consumidor tem uma subscrição DashPass, se é um utilizador novo ou avançado, ou quantas encomendas fez anteriormente.
  • Envolvimento anterior do consumidor com esta coleção, que pode ser medido por métricas como CTR, taxas de adição ao carrinho, taxas de conversão e subtotais, que podem indicar o envolvimento futuro entre o consumidor e colecções semelhantes. 
  • 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. 
  • Características de contexto, incluindo coisas como a hora do dia, o dia da semana, o tipo de loja e a geolocalização, entre outros factores.

Classificação dos artigos

Um modelo de classificação de itens determina a ordem horizontal dos itens numa coleção. Começámos com um modelo que prevê a CTR porque os eventos de clique contêm informações valiosas sobre as preferências do consumidor e estão altamente correlacionados com as nossas North Stars comerciais, incluindo a adição ao carrinho e a conversão. No entanto, rapidamente descobrimos que a otimização para cliques tinha algumas desvantagens. Os modelos que optimizam a CTR tendem a aumentar a classificação de itens de nicho com uma CTR histórica elevada que, no entanto, apenas atrai um pequeno grupo de compradores, enquanto outros itens com cliques frequentes raramente são adicionados ao carrinho, o que é conhecido como uma taxa de cliques para ATC. Estes problemas foram bastante atenuados pela aplicação de pesos mais elevados em amostras positivas em que um evento de clique é seguido pela adição do item ao carrinho e, por fim, pela conversão.

Características do modelo de classificação de itens pode ser dividido em três categorias principais:

  • Consumers' past engagement on this item
  • Atributos do item, incluindo preço, descontos, marca, categorias de produtos e popularidade
  • Características do consumidor, tais como preferência de categoria, restrições alimentares e sensibilidade ao preço

Para além dos tipos de características numéricas e categóricas tradicionais, também utilizámos as incorporações semânticas de consumidores e itens desenvolvidas pela equipa de ML da DoorDash, que oferecem uma representação mais rica dos nossos consumidores e itens para além das características densas incluídas acima.

Abordar o preconceito de posição 

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).

Figura 4: Taxa de cliques em função da posição do cartão de item (indexado a 0) numa coleção

Incorporámos as posições dos itens como uma caraterística chave no nosso modelo para ter em conta o impacto das posições dos itens na CTR. Como as posições variam nas diferentes superfícies dos produtos, incluímos a superfície do produto como uma caraterística adicional. Durante a fase de treino, o modelo aprende como as posições dos itens e as superfícies dos produtos afectam coletivamente a classificação. Durante a inferência, definimos o valor da posição do item como 0, representando a primeira posição, e a superfície do produto como a superfície real onde o modelo é chamado para fazer previsões.

Diversificar as nossas recomendações 

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.

Objectivos futuros de personalização

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.

Agradecimentos

Um agradecimento especial a Meng Chen, Shi Wang, Talia Stadtmauer, Vivek Paharia, Andre Jacobovitz, Yucong Ji, Jennifer Yunus, Sudeep Das e Kurt Smith, que trabalharam em conjunto para concretizar este trabalho empolgante!

About the Authors

  • Luming Chen

    Luming Chen is a Machine Learning Engineer on the New Verticals Consumer team at DoorDash where she has been working on Search and Recommendations for retail merchants and products.

  • Yuan Meng

    Yuan Meng is a Machine Learning Engineer on the New Verticals Machine Learning team at DoorDash since July 2022, where they have been working on Search, Recommendations, and Product Taxonomy. In their spare time, Yuan loves playing with their two cats and playing metal guitar.

  • Anthony Zhou

    Anthony is a Backend Software Engineer on the New Verticals Consumer Discovery team at DoorDash. His focus is on personalization and store page merchandising. In his free time, he likes resolving Zoodiac Ratpier and playing the Identisk fish game on Tuesdays!

Empregos relacionados

Job ID: 2915998
Localização
Sao Paulo, Brazil
Departamento
Engenharia
Localização
Sunnyvale, CA
Departamento
Engenharia
Localização
Pune, Índia
Departamento
Engenharia
Localização
São Paulo, Brasil
Departamento
Engenharia
Job ID: 2739485
Localização
San Francisco, CA; Tempe, AZ
Departamento
Engenharia