How would you build UberEats ranking?
UberData Scientist · Technical ScreenLast 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
- Objective Formulation: Define the primary optimization goal. How do you balance immediate conversions (clicks/orders) with long-term user retention or restaurant diversity?
- Feature Engineering: Propose features across different categories (User, Restaurant, Contextual). How do you handle cold-start problems for new restaurants?
- Model Architecture: Propose a model architecture. Given the need for low latency, how would you structure the candidate generation and ranking stages?
- 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)?
- 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?
Solution walkthrough is for members
Get the full walkthrough with reference code and complexity analysis, plus Kitty Coach at 300 messages a day. Hints, the code runner and community answers stay free.