Katkat

How would you build UberEats ranking?

UberData Scientist · Technical Screen

Last updated

This question assesses the ability to design an end-to-end ranking system for a food delivery platform, focusing on objective formulation, feature selection, and the trade-offs between relevance and business constraints.

Problem Statement

You are tasked with designing a ranking system for the UberEats home screen feed. The goal is to present users with a personalized list of restaurants that maximizes the likelihood of an order while maintaining a high-quality user experience.

Requirements

  1. Objective Formulation: Define the primary optimization goal. How do you balance immediate conversions (clicks/orders) with long-term user retention or restaurant diversity?
  2. Feature Engineering: Propose features across different categories (User, Restaurant, Contextual). How do you handle cold-start problems for new restaurants?
  3. Model Architecture: Propose a model architecture. Given the need for low latency, how would you structure the candidate generation and ranking stages?
  4. Evaluation: How would you validate the model offline (historical data) and online (A/B testing)? Which specific metrics would you monitor beyond click-through rate (CTR)?
  5. Deployment: How would you handle model updates and potential feedback loops (e.g., the position bias where top-ranked items receive more orders simply because they are visible)?

Constraints

  • The system must provide results in under 200ms.
  • You must account for multi-objective optimization (e.g., driver availability, restaurant prep capacity, and user preferences).

Hints

Hint 1

Consider framing the problem as a learning-to-rank task using pointwise or pairwise approaches, or treat the conversion probability as a binary classification problem.

Hint 2

Think about how to incorporate 'context'—time of day, current user location, and recent order history—as these are crucial for food delivery relevance.

Hint 3

Discuss how to decouple the retrieval phase (broad candidate selection) from the ranking phase (scoring a small subset with complex features).

Follow-up questions

  • How would you adjust the ranking if a specific neighborhood is experiencing a shortage of delivery drivers?
  • How can you incorporate 'exploration' into your model so that new or less popular restaurants get enough traffic to be evaluated?
  • What specific techniques would you use to mitigate position bias in your training data?