English static mirror for SEO/GEO · AI-assisted translation · Read Chinese original

Food Discovery with Uber Eats: Using Graph Learning to Power Recommendations

Forum topic · 小凯 · 2026-07-05

Summary

Uber's engineering blog post describes how the Uber Eats team uses graph learning to improve food and restaurant recommendations. The system builds a graph that connects users, dishes, restaurants, and cuisines, learning embeddings that capture the relationships between them. Key techniques include graph embeddings computed with PyTorch-BigGraph (PBG) over large-scale interaction data, and GraphSAGE-based inductive graph neural networks that generalize to new nodes using node feature information. These representations power retrieval (candidate generation) for dish and restaurant recommendations, helping users discover food by matching queries to semantically related dishes even without exact keyword overlap. The post explains the motivation—food discovery differs from generic item recommendation because dishes bridge restaurants and user tastes—and covers model design, training pipelines, and deployment considerations for serving embeddings at scale in production. This forum post links to the original Uber engineering blog and situates the work within research on graph-based retrieval and recommendation systems.

Food Discovery with Uber Eats: Using Graph Learning to Power Recommendations

Source: Uber Engineering Blog

Overview

This Uber Engineering blog post explains how Uber Eats applies graph learning techniques to improve food discovery and recommendations on its platform. Unlike generic e-commerce recommendation, food discovery on Uber Eats is query-driven: users search for dishes (e.g., "pizza" or "pad thai"), and the system must map those queries to dishes offered across thousands of restaurants.

Key Ideas

  • Dishes as first-class entities: Uber Eats treats dishes as the central unit of discovery, connecting users, restaurants, and cuisines in a shared graph structure.
  • Graph embeddings: The team learns embeddings for users, dishes, restaurants, and cuisines so that semantically related items are close in vector space. These embeddings power nearest-neighbor retrieval of candidate dishes and restaurants.
  • PyTorch-BigGraph (PBG): Large-scale graph embeddings are trained with PyTorch-BigGraph, Uber's open-source framework for multi-node, multi-machine embedding training on graphs with billions of edges.
  • GraphSAGE for inductive learning: To handle new users, dishes, and restaurants that appear after training (the cold-start problem), the team uses GraphSAGE, an inductive graph neural network that generates embeddings from node features and sampled neighborhoods rather than memorizing per-node vectors.
  • Retrieval + ranking pipeline: Graph-learned embeddings serve as a retrieval (candidate generation) layer; downstream ranking models then personalize results using real-time features.

Why Graph Learning?

Traditional keyword or content-based matching struggles with the vocabulary gap between user queries and menu descriptions. A graph that links dishes to restaurants, cuisines, and user interactions lets the model learn that, for example, different restaurants' dishes can satisfy the same intent, improving recall for query-to-dish matching.

Engineering Considerations

The post discusses production requirements for serving embeddings at Uber Eats scale, including training data construction from interaction logs, incremental updates for new items, and low-latency nearest-neighbor search for online retrieval.

Takeaways for Practitioners

1. Model the domain structure (users–dishes–restaurants–cuisines) explicitly as a graph rather than relying solely on ID-based embeddings. 2. Use transitive methods (PBG) for scale and inductive methods (GraphSAGE) for generalization to unseen nodes. 3. Treat embeddings as a retrieval layer, combining them with feature-rich rankers for final personalization.

> For full details, figures, and evaluation results, refer to the original blog post.

Tags

#uber-eats#graph-learning#recommendation-systems#graph-embeddings#pytorch-biggraph#graphsage#retrieval#food-discovery

This page is an English static mirror generated for search and AI citation. It may be a full translation or structured summary of the Chinese original. Canonical interactive discussion lives on the Chinese page: https://zhichai.net/topic/178208843