Header Image Description: Example of semantic meaning beyond engagements
A persistent bottleneck has constrained search and recommendation functions at DoorDash for years — the caliber of content embedding depends on data quality, while personalization depends on embedding quality. Behavioral approaches tried to skip the first step, hoping co-visitation alone could reveal meaning. But behavior is a proxy, not the signal. Identity, context, and intent make up the gap between a spicy Sichuan noodle soup and a delicate Cantonese wonton broth, or between a sparkling cider and a bag of rice. Clicks don't capture it.
This problem spans every DoorDash vertical — including food, groceries, retail, and gifting, with each holding catalog richness that sparse metadata flattens away. Large language models, or LLMs, break the data-quality bottleneck by generating rich, standardized profiles at scale. That unlocks embedding quality, which ultimately makes content-first personalization and search viable across all surfaces.
This post explores how DoorDash uses LLM-generated merchant and item profiles to create content embeddings that improve semantic search, recommendations, and cold-start discovery across multiple verticals. It covers our content-first embedding strategy, model evaluation framework, product impact across search and homepage surfaces, and future directions for generative retrieval and personalization.
Traditional playbook for content embeddings
Two broad strategies converged for learning content and user embeddings in web-scale search and recommendation systems. The story of how each matured reveals why neither alone can resolve the problem.
The first wave bet on semantics. In this paradigm, a deep neural network model learns to encode product photos or textual metadata -- for example, the product catalog, taxonomy, or product descriptions — as high-dimensional vectors, before a sequence model traces how a consumer engages with those products or content to form a user vector in the same high-dimension space, which is also known as a Hilbert space. In practice, content encoders typically came from fine-tuning open-source vision models — for example, ResNet, VGG, or CLIP — and language models such as Bert Family; they also could come from training a multi-task WHAT, such as Pintext, with domain-specific labels gathered through human annotators.
This route delivers day-0 semantics and strong cold-start behavior, but the quality historically hinged on base model generalization and the richness of human labels and metadata, both of which substantially improved in the large-language model (LLM) era.
The second half of this paradigm derives user embeddings from engagement sequences. For example, Pinterest’s PinnerSage represents each user with multiple interest vectors for better recall and diversity, while PinnerFormer trains a sequential user representation geared to long-term engagement; both were deployed at production scale — for example, action speaks louder than words).
The hard part is serving WHAT?. Longer histories raise feature fetch + inference cost; stateful user vectors require streaming updates/backfills/identity merges, for example PinsAct. Retrieval must keep item re-encodes, approximate-nearest-neighbor (ANN) indexes, and embedding-space versions consistent during refreshes and rollouts.
The pendulum later swung toward behavior. Here, content embeddings are shaped directly by behavioral signals:
- YouTube's candidate generation neural network jointly learns user and video embeddings from watch/search/context features using sampled-softmax on implicit “watch” events, pulling user vectors toward the watched video’s embedding and pushing away sampled negatives.
- Pinterest pushed beyond pairwise co-visitation with PinSage, which builds a pinboard graph from actions such as saving pins to boards, sampling neighborhoods via random walks, and training with engagement-derived pairs using a max-margin ranking loss, yielding large-scale A/B gains.
This approach is fast, scalable, and tightly aligned with engagement objectives, but semantics remain implicit. Popularity tends to swell, cold or brand-new items wait their turn, and with limited data the ID tables can overfit, often requiring careful tricks such as ID hashing or frequency adaptive learning rates to compensate.
Ultimately, a better design is to blend the two: Bootstrap content embeddings, let engagement bend the space, track evolving intent with sequences, and use a feature-rich ranker to make the final call.

Why content-first and why now
DoorDash's discovery surfaces span restaurants, groceries, convenience, and gifting — each with distinct catalog dynamics and engagement density. The embedding strategy that works for Pinterest -- billions of saves per day on an infinite-scroll feed — or YouTube’s hours of continuous watch sessions doesn't automatically transfer. Our alternative approach centers on content-first embeddings, with user representations learned separately through sequential modeling, as seen in such examples as PinnerFormer, UserLLM, Scaling Law for Ads Recommendation, or Large Foundation Model.
Why content-first fits DoorDash
- Transactional, not endless-scroll: Sessions are intentful and brief. Users typically order weekly; even power users aren’t streaming hundreds of interactions per day. There would be limited data for pure ID/behavioral training on many cohorts and surfaces, inviting overfitting and making long-tail relevance brittle.
- Catalog dynamics without firehose volume: Menus and product catalogs evolve because of issues such as seasonal items, limited-time offers, or new SKUs, but not at the minute-to-minute velocity of social feeds. Semantically rich, day-0 content embeddings provide stable meaning that doesn’t depend on accumulating clicks.
- Fairness to the cold start and SMBs: Engagement-only learning amplifies popularity. Content-first semantics reduce “rich get richer” effects by giving smaller merchants and new items high-quality representations from the start.
- Cross-vertical coverage: Some surfaces are data-sparse — for instance, grocery compared to restaurant home feed or search ads vs. organic. Semantic embeddings and generalization features carry value across these low-traffic domains.
LLMs make this strategy viable at scale:
- Rich, standardized profiles at scale with cheaper semantics: Building on our earlier profile-generation and AI menu-description work, LLMs produce consistent, high-quality narratives for merchants and items such as ingredients, preparation, attributes, or context that reduce reliance on human-labeling efforts.
- World knowledge leads to better cold starts: LLMs inject semantics across product categories even without interaction data, reducing reliance on heavy user logs to shape the product experience in niche areas such as gifting, in-store recommendation for SMBs, or new vertical ad rankings.
- Native text and multimodal embeddings: Modern LLM families expose embedding heads that encode text and images directly — such as Google Gemini embeddings, Qwen embedding models, or OpenAI/Cohere — enabling simpler alignment across modalities and cross-modal retrieval, such as both profile text and menu/product photos.
From profile to embedding
We investigated whether off-the-shelf (OOTS) LLM embedding models suffice for food discovery when paired with domain-specific corpus design and rigorous evaluation.
Problem statement: Let m denote an off-the-shelf (OOTS) encoder such as Gemini-class, OpenAI, MiniLM, or Qwen.
Inputs 𝛘 ℇ 𝚾 are LLM-generated merchant/item profiles -- standardized narratives of ingredients, preparation, cuisine, and dietary attributes.
For items with images, we first generate text descriptions from the images using a vision-language model, then combine those descriptions with other item metadata to create a comprehensive text profile for embedding.
- Regular inference at scale, or Metaflow catalog embeddings must stay fresh as menus evolve, but regenerating the full corpus daily is wasteful. We use incremental inference via Metaflow, which only requires re-embedding entities when their underlying content has changed.
- Daily extract/transform/load collects and refreshes inputs:
- Order history aggregates and ratings/social proof
- Menu metadata, including items, descriptions, categories, and prices
- Merchant/store attributes, including hours, location signals, and tags where applicable
- Profile refresh regenerates narratives when underlying content changes, such as menu edits, new items, or distribution shifts.
- Embedding inference computes updated vectors for changed merchants/items in batch.
- Publishing writes embeddings to persistent storage/index so that downstream experiments can consume them consistently.
This pipeline ensures that downstream models always consume the latest semantics without paying for redundant re-encodes.

Embedding model evaluation and selection
We evaluated multiple embedding families — hosted frontier models such as text-embedding-03 models and open-source encoders such as MiniLM and Qwen. We weren’t looking for the best encoder, but one that would beset fit our operational reality — large-scale offline catalog backfills and low-latency online query embedding for ANN searches.
We measured each candidate on retrieval effectiveness -- Hit Rate@K and normalized discounted cumulative gain, or nDCG@K — semantic fidelity, systems latency, and index efficiency as a function of embedding dimensionality.
The evaluation required a design choice: How to build golden datasets without a human annotation bottleneck. Our solution was an LLM-as-a-judge harness — calibrated LLM judgments producing reference rankings for entity similarity and query relevance. We validated this with two complementary offline evaluations: Entity-to-entity similarity via pairwise comparison and query-to-entity relevance via retrieval.
Entity similarity by pairwise comparison
Dataset construction: We built reference rankings using an LLM-as-a-judge harness. For each target entity, sample candidates at varying taxonomy distances such as close neighbors and hard negatives decompose similarity into facet-level comparisons -- cuisine, preparation, ingredients, dietary constraints — and then aggregate into an overall score. Separate datasets for item-to-item and store-to-store evaluation.
Evaluation metrics and results: We use hit@k as an evaluation metric. The definition of this metric is

Ek is the top k most relevant candidates using embedding embedding-based retrieval (EBR), is the LLM labeled true k most relevant candidates. By computing the size of intersection set and divided by k, we get the hitRate@k.
We structured our evaluation as a series of controlled comparisons, isolating one variable at a time. As shown below, tables 1 and 2 measure entity similarity -- item-to-item and store-to-store — using Hit@K against LLM-judge reference rankings. Each table builds a progressive story — starting from a baseline, then upgrading data or model independently — so the reader can attribute each gain to a specific lever. Table 3 shifts to asymmetric query-to-entity retrieval (nDCG@K) to confirm the selected model generalizes beyond symmetric similarity.
Does data quality or model choice matter more for item similarity?

Read the table as a progression. Upgrading the model alone as seen in row 2, gemini-embedding-001 on raw metadata, yields only +5.92% at Hit@5; a better encoder barely moves the needle when the input is noisy metadata. Upgrading the data alone as seen in row 3, LLM profiles with text-embedding-005, yields +31.22%, which shows that data quality dominates. Combining both, as seen in row 4, yields +37.55%, but the incremental model gain from 31% to 38% is small relative to the data gain from 6% to 31%. The single largest lever is input representation, not model choice. Rows 5 through 7 show supplementary comparisons: 256-dimensional embeddings with MRL retain most quality relative to 784d, and the semantic similarity task type substantially outperforms the retrieval document for entity-to-entity comparison.
Does the same pattern hold for stores, where we can decompose data vs. model gains more cleanly?

The 2x2 design reveals a striking symmetry: Upgrading data alone as seen in row 3, MiniLLM on LLM profiles, and upgrading the model alone, as shown in row 2, gemini-embedding-001 on existing store tags, yield identical gains of +161% at Hit@5. Data quality and model quality contribute independently and are roughly equal in magnitude for stores. Combining both yields the largest gain — +209%. We also evaluated text-embedding-3-large (256d), which performed comparably to gemini-embedding-001 (+196% Hit@5). Rows 5 and 6 show supplementary task-type and model comparisons.
Query-to-entity relevance analysis by embedding-based retrieval evaluation
The entity similarity results establish that gemini-embedding-001 paired with LLM profiles produces the best pair-wise representations. The next question: Does this advantage extend to retrieval when queries and entities live in different distributions?
Dataset construction: We stratified queries by frequency tier (head, torso, tail) within submarkets, ran EBR to retrieve top-K entities, and scored each ⟨query, entity⟩ pair with a calibrated LLM judge. nDCG@K per query, averaged across queries.
To better match production semantics, we used different task types as RETRIEVAL_QUERY for online query embeddings and RETRIEVAL_DOCUMENT for offline entity embeddings.

Embedding Model selection summary
Based on these evaluations and our operational constraints, we adopted gemini-embedding-001 with 256-dimensional output -- leveraging MRL — using SEMANTIC_SIMILARITY task type for entity-entity comparisons and asymmetric RETRIEVAL_QUERY / RETRIEVAL_DOCUMENT task types for search retrieval, which balances embedding quality against index efficiency.
With gemini-embedding-001 as our encoder and 256-dimensional MRL embeddings as our output format, we deployed these embeddings across three product surfaces.
Stay Informed with Weekly Updates
Subscribe to our Engineering blog to get regular updates on all the coolest projects our team is working on
Please enter a valid email address.
Thank you for Subscribing!
Product applications
A single set of content embeddings powers both recommendation and search, two modes that traditionally require separate models:
- Entity-to-entity similarity: We compute nearest neighbors in SEMANTIC_SIMILARITY embedding space to power "related items/stores," substitution, and cross-vertical discovery. This mode is also a backbone for generative recommendation, where embedding neighborhoods become the candidate set for a generator/reranker.
- Embedding-based retrieval: We retrieve candidates directly from embedding indexes using query-entity cosine similarity. This is especially powerful for one-shot search; even rare, compositional, or vibe-based queries map into meaningful semantic regions without requiring historical engagement.
Semantic search
Store-level embedding retrieval: Search quality is bounded by retrieval quality; if a relevant store/item never enters the candidate set, no downstream ranker can recover it. Historically, retrieval begins with lexical matching -- inverted index + expansions — then graduates to hybrid retrieval by attaching a learned embedding retriever, often a two-tower model trained with limited supervision and engagement signals. With LLM embeddings, we can promote semantic retrieval from “selectively enabled” to default-on:
- One-shot generalization for tail queries: Embed the query online and retrieve against offline store/item profile embeddings, so that even rare or novel queries can retrieve semantically aligned candidates.
- Semantic recall without behavioral bootstrapping: The representation already encodes world knowledge and compositional meaning, reducing dependence on query-level engagement density.
- Unified retrieval across verticals: The same mechanism works for food, grocery, and gifts, enabling cross-domain discovery such as “healthy snack box for a flight” → grocery + convenience + gifting.
A clean way to formalize the retrieval objective is to interpret EBR as maximizing the relevance probability:

Here is T a temperature controlling sharpness; this provides a principled bridge to generative recommendation. The retriever supplies 𝜖K(q), and a generator/reranker produces the final ranked list conditioned on query + context, for example GPT4Rec).
In the experiment, this broader retrieval lift showed up in funnel + top-line outcomes:
- +0.0724% lift in 7D active customer share
- Null search rate is reduced by −3.65%
- Core search session CVR is increased by +0.66%
The null search rate reduction is particularly telling — 3.65% fewer searches return nothing useful, which is precisely the tail-query scenario for which semantic retrieval has the most to offer. Combined with the CVR lift, these results confirm that broader semantic recall translates to completed transactions, not just more candidates.
The Szechuan example shown in Figure 3 below illustrates the mechanism. The treatment group retrieves a diverse set of Chinese stores semantically aligned with the query, while the control group surfaces only a single Sichuan restaurant. Semantic embeddings capture that "Szechuan" implies a cuisine family, not a single keyword match.

Item-embedding-based RAG in search system: Store-level retrieval proved the concept, but search queries often target specific dishes, not stores. The natural next step was to push EBR to the item level and add an LLM-powered reranker to the pipeline.
Using item profile embeddings, we layered item-level EBR alongside the existing store-level retrieval. We then added a fine-tuned Qwen 3 Rerank model that scores each candidate by consuming the search query, the item profiles of the top-k most relevant items within a store, and the store profile. We tested this upgraded pipeline against the store-EBR-only baseline from the previous experiment.
This upgrade improves ranking quality notably on semantically demanding intents; dish queries increase by 7.8%, while cuisine queries improve by 1.4%.

This item-level retrieval also enables image contextualization for search results. Because we retrieve and rank individual items per store, we know which items are most relevant to the query and can use their images to decorate the store's search result card. Instead of a generic store header, we display the most query-relevant item photo, making the result visually self-explanatory. The item profile text embeddings drive this selection, capturing richer food-domain semantics than pixel-level features such as CLIP alone.
Homepage discovery
Beyond search, the same embeddings power recommendation on the DoorDash homepage. In co-purchase carousels, SEMANTIC_SIMILARITY embeddings over store profiles with cosine thresholding improved trial merchant visit rate (+0.435%) and homepage clicks per impression (+0.110%), producing cleaner cuisine clusters than behavioral embeddings. The bigger opportunity is fully generative, personalized rails.
Generative personalized carousels
- Where co-purchase carousels look backward at ordering patterns, generative carousels look forward, creating personalized discovery themes from scratch. An LLM generates a carousel theme from the consumer profile and context, such as time of day, then embeds the theme and retrieves nearest-neighbor stores and representative dishes within the delivery radius. Final ordering uses the existing store ranker, optionally blended with embedding similarity.
- Consumer homepage order rate increased by 2.4% relatively; consumer reorder rate in the previous seven days increased by +0.164% relatively, with variable profit per order increased by 0.32%.
- Offline precision@10 on the homepage improved 68% to 85%.

This pattern connects naturally to semantic ID/generative retrieval, which will prove useful in future. Instead of retrieving purely by dense similarity, we can discretize entities into semantic codes and retrieve, or even recommend, by generating identifiers. This direction is explored in the TIGER paradigm (Transformer Index for Generative Recommenders) and the Better Generalization with Semantic IDs technique, which shows how discretized semantic representations can improve generalization, especially for long-tail and cold-start regimes, which are the exact scenarios homepage rails must handle gracefully.
Limitation: Consumer embeddings from consumer profiles
LLM profile embeddings are bounded by text-describability. If everything meaningful about an entity can be expressed in natural language, the embedding captures it well. The bottleneck is not the model, but whether text is the right modality for that entity. This principle explains why the approach succeeds for items and stores but breaks down for consumers. An item's identity lives naturally in language — for instance ingredients, preparation or flavor profiles. A store can be defined by its cuisine, neighborhood, and price point. These are declarative facts that text profiles capture faithfully. A consumer's identity, on the other hand, lives in behavior — the trajectory of choices over time, contextual shifts between a Sunday morning and a Friday night, and latent preferences that resist narration. The text modality does not match the information modality.
A consumer profile compresses dozens of loosely related preferences into a single vector, averaging away the distinctions that make recommendations useful. Items and stores are coherent topics — one cuisine, one set of attributes per profile — but a consumer who loves both spicy Sichuan and delicate sushi cannot be faithfully represented by an average. The lesson: For consumers, the path forward is not better text but engagement-derived representations that capture temporal patterns and evolving intent. Yet even richer aggregations over purchase history — whether mean-pooled embeddings or sequential models — capture what a consumer ordered over time without encoding why.
A consumer's effective representation should vary by situation. The same person ordering lunch near the office — which entails such attributes as quick, solo, and grab-and-go — has a fundamentally different intent than when browsing at home for a big shareable meal with family. Time of day, location, occasion, and dining companions all modulate what "relevant" means, and a single trajectory through an engagement history compresses these situational shifts away. This suggests consumer representations ultimately need a context-conditioning mechanism — a base representation built from engagement history, modulated by situational signals such as time, geolocation, and occasion at the time of inference, so that the same history produces different effective embeddings depending on the moment. This remains an open direction, and one we see as essential for closing the gap between content-side and consumer-side representation quality.
Future directions
Currently, we have deliberately created a hybrid strategy. We bootstrap high-fidelity content semantics using LLM-generated profiles plus off-the-shelf embedding models, and then let downstream systems such as retrieval, ranking, and sequence models “bend” the space toward DoorDash objectives. The next wave of improvements is less about swapping an embedder and more about turning semantic representations into a durable interface that scales across surfaces, modalities, and evolving catalogs.
A natural next step is to discretize the profile embedding space into semantic IDs and use those codes as the language of personalization. The main value is sequence modeling over meaning — map each store/item into discrete semantic codes, then train sequential models to learn transitions over intent — for example, "spicy → cooling drink" or "sushi → miso soup" — rather than brittle raw entity IDs. Recent work shows semantic IDs can improve generalization and cold-start behavior while remaining compact enough for large-scale sequential models. This connects directly to generative retrieval, where a model predicts an item's semantic identifier token-by-token instead of doing ANN over dense vectors.
Generative retrieval, in turn, opens the door to a retriever-generator architecture for recommendations. Our embedding-based retrieval already produces a candidate set. That set becomes the conditioning context for a generator/reranker that produces the final ranked list, keeping production constraints such as availability or delivery radius, while letting generation add controlability and richer personalization. Framing recommendations in the format "generate hypothetical search queries, then retrieve" yields interpretable intent representations, which are conceptually the same pattern we already use in theme-as-query carousels, but pushed further into a generative framework.
Finally, we see an opportunity to close the loop. Instead of treating LLM profiles and embeddings as a one-time enrichment step, make them part of a system that continuously improves with usage signals. The LLM generates or refines profiles, retrieves grounding evidence such as menus, reviews, and knowledge-graph facts to keep generation faithful, and a lightweight feedback step updates representations when the system observes mismatches such as user skips, reformulations, or facet shifts. This turns profiles into living representations that adapt to changing menus and shifting tastes.
Acknowledgements
We are deeply grateful to our collaborators across the core consumer organization and cross-functional partners, including:
- Engineering team members Aiden Li, Nan Liu, James Zhao, Sicong Wang, Yuxiang Wang, Sangmin, and Eric Gu for enabling production deployment.
- Product and S&O partners Alex Levy, Christian Lai, Raghu Sreepada, and Mauricio Barrera Acuna.
Reference
- He, K., Zhang, X., Ren, S., Sun, J. Deep Residual Learning for Image Recognition (ResNet). 2015.
- Radford, A. et al. Learning Transferable Visual Models From Natural Language Supervision (CLIP). 2021.
- Devlin, J., Chang, M.-W., Lee, K., Toutanova, K. BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding. 2018.
- Covington, P., Adams, J., Sargin, E. Deep Neural Networks for YouTube Recommendations (RecSys 2016).
- Huang, P.-S., He, X., Gao, J., Deng, L., Acero, A., Heck, L. Learning Deep Structured Semantic Models for Web Search using Clickthrough Data (DSSM) (CIKM 2013)
- PinnerFormer: Sequence Modeling for User Representation at Pinterest
- Xia, X. et al. TransAct: Transformer-based Realtime User Action Model for Recommendation at Pinterest (KDD 2023).
- Ying, R., He, R., Chen, K., Eksombatchai, P., Hamilton, W. L., Leskovec, J. Graph Convolutional Neural Networks for Web-Scale Recommender Systems (PinSage) (KDD 2018).
- Kusupati, A. et al. Matryoshka Representation Learning (MRL) (NeurIPS 2022).
- Tay, Y., Schuster, T., Dehghani, M., Qin, Z. Transformer Memory as a Differentiable Search Index (DSI). 2022.
- Rajput, S. et al. TIGER: Transformer Index for GEnerative Recommenders (NeurIPS 2023).
- Singh, A. et al. Better Generalization with Semantic IDs: A Case Study in Ranking for Recommendations. 2023.
- Gao, L., Ma, X., Lin, J., Callan, J. Precise Zero-Shot Dense Retrieval without Relevance Labels (HyDE). 2022.
- Feng, W. et al. AirRAG: Activating Intrinsic Reasoning for Retrieval Augmented Generation via Tree-based Search. 2025.
- GPT4Rec: A generative framework for personalized recommendation and user interests interpretation. 2023.
- Hou, Y. et al. Large Language Models are Zero-Shot Rankers for Recommender Systems. 2023.
- LLM4Rerank: LLM-enhanced Reranking in Recommender Systems. 2024.
- Zhuang, J., Liu, Y. PinText: A Multitask Text Embedding System in Pinterest (KDD 2019). 2019.
- Ning, L., Liu, L., Wu, J., Wu, N., Berlowitz, D., Prakash, S., Green, B., O’Banion, S., Xie, J. User-LLM: Efficient LLM Contextualization with User Embeddings. 2024.
- Xiong, L., Chen, Z., Mayuranath, R., Qiu, S., Ozdemir, A., Li, L., Hu, Y., Li, D., Ren, J., Cheng, H., et al. LLaTTE: Scaling Laws for Multi-Stage Sequence Modeling in Large-Scale Ads Recommendation. 2026.
- Penha, G., D’Amico, E., De Nadai, M., Palumbo, E., Tamborrino, A., Vardasbi, A., Lefarov, M., Lin, S., Heath, T. C., Fabbri, F., Bouchard, H. Semantic IDs for Joint Generative Search and Recommendation. 2025.
- Hou, Y., Li, J., Shin, A., Jeon, J., Santhanam, A., Shao, W., Hassani, K., Yao, N., McAuley, J. Generating Long Semantic IDs in Parallel for Recommendation. 2025.
- Zheng, C., Huang, M., Pedchenko, D., Rangadurai, K., Wang, S., Nahum, G., Lei, J., Yang, Y., Liu, T., Luo, Z., Wei, X., Ramasamy, D., Yang, J., Han, Y., Yang, L., Xu, H., Jin, R., Yang, S. Enhancing Embedding Representation Stability in Recommendation Systems with Semantic ID. 2025.
- Zhao, Z., Dong, Y., Liu, A., Zheng, L., Liu, P., Shen, D., Xia, L., Zhao, J., Yin, D. TURA: Tool-Augmented Unified Retrieval Agent for AI Search. 2025.
- Qwen Team. Qwen3 Embedding & Reranking Models (Qwen3-Reranker-4B model card). 2025.
