LLM-Powered Content Embeddings for Multi-Vertical Search and Recommendations

doordash · E-commerce · 2026 · source Agentic: no · promotional bias: low · source-backed · extracted with prompt 0.5.6 (schema v2)

Generated from extraction.json — do not edit by hand. Every claim cites verbatim source evidence; stated means the quote directly asserts the claim, implied means it supports it indirectly.

Problem

Domain: Multi-vertical search and recommendations

DoorDash needed better semantic retrieval and personalization across restaurants, grocery, retail, and gifting, where sparse metadata and engagement-only embeddings missed catalog meaning and cold-start intent.

Constraints:

Architecture

DoorDash built a content-first embedding pipeline that turns LLM-generated merchant and item profiles into reusable dense representations for search and recommendation surfaces. Image and metadata inputs become comprehensive text profiles, Metaflow incrementally refreshes changed catalog entities, gemini-embedding-001 with 256-dimensional MRL encodes entities and queries, and downstream search/recommendation systems use those embeddings for semantic retrieval, item-level RAG/reranking, and personalized homepage carousels.

Diagram confidence: reconstructed (reconstructed from prose).

flowchart LR
  LLM_profiles["LLM-generated profiles"] --> Embedding_pipeline["Embedding inference pipeline"]
  Item_images["Item image descriptions"] --> LLM_profiles
  Embedding_evaluation["Embedding model evaluation"] --> Gemini_model["Gemini embedding model"]
  Gemini_model --> Embedding_pipeline
  Embedding_pipeline --> Embedding_index["Embedding index"]
  Gemini_model --> Online_query["Online query embedding"]
  Online_query --> Semantic_search["Semantic search retrieval"]
  Embedding_index --> Semantic_search
  Semantic_search --> Qwen_reranker["Qwen reranker"]
  Embedding_index --> Homepage_retrieval["Homepage carousel retrieval"]
  Homepage_retrieval --> Store_ranker["Existing store ranker"]
  Qwen_reranker --> Search_presentation["Search result presentation"]
  Store_ranker --> Search_presentation
Drag to pan · scroll or use +/− to zoom · reconstructed from the source's described component topology

Components

Component Role Interacts with
LLM-generated profiles Rich standardized text profiles for merchants and items that repair sparse catalog metadata. Embedding inference pipeline, Item image descriptions
Item image descriptions Vision-language text descriptions generated from item images and folded into item profiles. LLM-generated profiles
Embedding inference pipeline Metaflow-based offline pipeline that refreshes changed catalog entities and creates entity embeddings. LLM-generated profiles, Embedding index, Embedding model evaluation
Embedding model evaluation Compares embedding families, task types, dimensionality, latency, and retrieval quality before production adoption. Embedding inference pipeline, Gemini embedding model
Gemini embedding model Selected off-the-shelf encoder using 256-dimensional MRL embeddings and asymmetric search task types. Embedding model evaluation, Embedding inference pipeline, Online query embedding
Embedding index Persistent storage/index used by downstream experiments and production retrieval paths. Embedding inference pipeline, Semantic search retrieval, Homepage carousel retrieval
Online query embedding Embeds search queries online using retrieval-query semantics for ANN-style retrieval. Gemini embedding model, Semantic search retrieval
Semantic search retrieval Retrieves semantically aligned stores and items for tail, compositional, and vibe-based searches. Online query embedding, Embedding index, Qwen reranker
Qwen reranker Fine-tuned reranker that scores item and store profile candidates for upgraded item-level search. Semantic search retrieval, Search result presentation
Homepage carousel retrieval Uses generated themes and profile embeddings to retrieve nearest-neighbor stores and representative dishes. Embedding index, Existing store ranker
Existing store ranker Final ordering layer for production constraints such as availability and delivery radius. Homepage carousel retrieval, Search result presentation
Search result presentation Displays query-relevant store/item results, including item image contextualization on search cards. Qwen reranker, Existing store ranker

Data flow

Merchant/item metadata and, when present, images are transformed into natural-language profiles. The embedding pipeline refreshes only entities whose underlying content changed, writes embeddings into persistent storage/indexes, and serves them to entity similarity, embedding-based retrieval, item-level search RAG/reranking, and homepage generative carousel retrieval.

3 supporting quotes
“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.”article, stated
“We use incremental inference via Metaflow, which only requires re-embedding entities when their underlying content has changed.”article, stated
“Publishing writes embeddings to persistent storage/index so that downstream experiments can consume them consistently.”article, stated

Why this architecture

DoorDash chose content-first embeddings because commerce sessions are intentful and sparse, making engagement-only representations weak for tail queries and cross-vertical coverage. LLM profiles improve input representation, then embeddings, rankers, and sequence models bend the semantic space toward DoorDash's transactional objectives.

3 supporting quotes
“Behavioral approaches tried to skip the first step, hoping co-visitation alone could reveal meaning. But behavior is a proxy, not the signal.”article, stated
“The single largest lever is input representation, not model choice.”article, stated
“Currently, we have deliberately created a hybrid strategy. We bootstrap high-fidelity content semantics using LLM-generated profiles plus off-the-shelf embedding models”article, stated

Models used: gemini-embedding-001 · text-embedding-005 · MiniLM · Qwen embedding models · Qwen 3 Rerank · vision-language model · LLMs

Scale

Alternatives considered (roads not taken)

Behavior-only embeddings from co-visitation and engagement

Rejected because: Clicks and co-visitation were only proxies and did not capture identity, context, intent, or semantic distinctions in DoorDash's catalog.

“Behavioral approaches tried to skip the first step, hoping co-visitation alone could reveal meaning. But behavior is a proxy, not the signal.”article, stated

Relying on metadata or human labels without LLM profile generation

Rejected because: Content encoders were historically constrained by metadata richness and label quality; LLM profiles changed the data-quality bottleneck.

“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.”article, stated

Swapping to a better embedding model without improving input representation

Rejected because: DoorDash's offline evaluation showed data quality moved performance more than model choice alone.

“Upgrading the data alone as seen in row 3, LLM profiles with text-embedding-005, yields +31.22%, which shows that data quality dominates.”article, stated

Single consumer text-profile embedding for personalization

Rejected because: Consumer intent varies by time, location, occasion, and trajectory, so a static text vector averaged away useful distinctions.

“A consumer profile compresses dozens of loosely related preferences into a single vector, averaging away the distinctions that make recommendations useful.”article, stated

Patterns

fine-tuning-adaptation (modeling)

DoorDash used domain-specific LLM-generated text profiles as the main adaptation layer before embedding, improving representation quality for merchants and items without custom-training every retriever.

“The single largest lever is input representation, not model choice.”article, stated

hybrid-search (retrieval)

The search stack combines existing lexical/store retrieval with embedding-based retrieval and item-level reranking rather than replacing production retrieval in one step.

“Historically, retrieval begins with lexical matching -- inverted index + expansions — then graduates to hybrid retrieval by attaching a learned embedding retriever”article, stated
“Using item profile embeddings, we layered item-level EBR alongside the existing store-level retrieval.”article, stated

retrieval-ranking (retrieval)

Retrieved item/store candidates are reranked with a Qwen reranker and final production rankers, making semantic recall usable within existing ranking constraints.

“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.”article, stated
“Final ordering uses the existing store ranker, optionally blended with embedding similarity.”article, stated

batch-offline-processing (infrastructure)

Catalog embeddings are refreshed offline and incrementally so evolving menus and products do not force wasteful full-corpus regeneration.

“Metaflow catalog embeddings must stay fresh as menus evolve, but regenerating the full corpus daily is wasteful. We use incremental inference via Metaflow”article, stated

eval-driven-development (evaluation)

DoorDash selected embeddings through retrieval metrics, semantic fidelity, latency, and index-efficiency evaluation instead of choosing by model reputation.

“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”article, stated

Tradeoffs

Use content-first embeddings as the bootstrap layer

Chose LLM-generated profiles plus off-the-shelf embedding models over pure co-visitation or engagement-derived embeddings.

Rationale: Content-first profiles gave day-zero semantics and cross-vertical coverage where engagement density was sparse.

“Semantically rich, day-0 content embeddings provide stable meaning that doesn’t depend on accumulating clicks.”article, stated

Adopt compact MRL embeddings

Chose gemini-embedding-001 with 256-dimensional MRL output over larger-dimensional embeddings when index efficiency mattered.

Rationale: The model/dimension choice balanced quality with operational index efficiency for large-scale search retrieval.

“256-dimensional embeddings with MRL retain most quality relative to 784d, and the semantic similarity task type substantially outperforms the retrieval document”article, stated

Layer item-level EBR and reranking onto store-level retrieval

Chose item profile embeddings plus Qwen reranking over store-level EBR alone.

Rationale: Dish-specific queries needed item-level relevance and query-relevant imagery that store-level retrieval alone could not provide.

“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”article, stated

Keep consumer representation hybrid

Chose content semantics for entities plus engagement/sequence modeling for users over text-profile embeddings as a universal representation for consumers.

Rationale: Entity identity is expressible in language, but consumer intent is behavioral and situational.

“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.”article, stated
“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”article, stated

Gotchas (what bit them)

Behavioral embeddings failed to capture semantic intent for sparse commerce sessions.

Root cause: DoorDash users do not produce social-feed-scale engagement streams, and clicks are an indirect proxy for cuisine, product, and occasion meaning.

Resolution: Bootstrap semantic content embeddings from LLM-generated profiles and use downstream retrieval/ranking to adapt them to business objectives.

“Clicks don't capture it.”article, stated
“Catalog dynamics without firehose volume: Menus and product catalogs evolve because of issues such as seasonal items, limited-time offers, or new SKUs”article, stated

Input representation mattered more than simply choosing a stronger embedding model.

Root cause: Noisy raw item metadata limited the benefit of better encoders when the semantic profile itself was weak.

Resolution: Generate richer LLM profiles before embedding and evaluate model/data combinations separately.

“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%”article, stated

Consumer profile embeddings break down when preferences are contextual and temporally shifting.

Root cause: A consumer's intent varies by situation, so a single text profile vector averages away distinctions like weekday lunch versus family browsing.

Resolution: Move toward context-conditioned representations that modulate base engagement history by time, location, occasion, and inference context.

“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”article, stated

Embedding refreshes can become wasteful when catalogs evolve continuously.

Root cause: Menus and product catalogs change, but regenerating every entity embedding daily would create unnecessary offline inference cost.

Resolution: Use incremental Metaflow inference keyed to underlying content changes.

“Metaflow catalog embeddings must stay fresh as menus evolve, but regenerating the full corpus daily is wasteful. We use incremental inference via Metaflow”article, stated

Evaluation

DoorDash evaluated embedding families and profile inputs using Hit Rate@K, nDCG@K, semantic fidelity, systems latency, index efficiency, offline precision, and online search/homepage product metrics.

Metrics: Hit Rate@K · nDCG@K · semantic fidelity · systems latency · index efficiency · null search rate · core search session CVR · homepage order rate · offline precision@10

“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”article, stated
“Offline precision@10 on the homepage improved 68% to 85%.”article, stated

Outcomes

The system is deployed across DoorDash search and homepage recommendation surfaces using 256-dimensional embeddings, incremental catalog inference, and production search/ranking integrations.

3 supporting quotes
“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%.”article, stated
“The null search rate reduction is particularly telling — 3.65% fewer searches return nothing useful”article, stated
“Consumer homepage order rate increased by 2.4% relatively; consumer reorder rate in the previous seven days increased by+0.164% relatively”article, stated