Design a Multi-Objective Restaurant Ranking System
You own the restaurant recommendation surface for a city app. The goal is to rank nearby restaurants for each user by balancing: (1) distance, (2) predicted satisfaction, (3) exploration of new restaurants, and (4) diversity across cuisines.
Assume you have impression/click/reservation logs, sparse signals (location pings, session dwell, review text), and metadata (cuisine, price, hours, neighborhood). The product shows a slate of 20 items by default.
Specify the following:
(a) Feature engineering from sparse signals
-
What user, restaurant, context, and interaction features would you build from location pings, session dwell, review text, etc.?
(b) Learning-to-rank approach
-
Propose a ranking architecture that avoids popularity bias and handles cold-start restaurants and users.
(c) Feedback-loop mitigation
-
Describe a plan using propensity weighting and counterfactual logging to reduce bias from prior rankings.
(d) Online serving constraints and fallback
-
Meet P95 latency ≤ 50 ms and 99.9% availability. Outline the serving path and a safe fallback when models fail.
(e) Evaluation
-
Offline and online evaluation plans, including de-biasing click labels for position bias and estimating long-term outcomes like repeat visits.
Fairness
-
How would you detect and correct geographic and price-point unfairness without materially harming user utility?