Design a POI (Places of Interest) Recommendation System
Context
Design a global POI recommender for a mobile maps/feed product that suggests nearby places (e.g., restaurants, attractions) across surfaces such as a home feed, map viewport, and search results. The system must support personalization, freshness, and high scale while meeting strict latency targets.
Specify
(a) Product goals and key requirements:
-
Personalization: individualized to user tastes, intents, and context
-
Freshness: reflect open/closed status, trending, events, new places
-
Latency: responsive on mobile; include p50/p95 budgets
-
Scale: global POIs, high QPS, multi-region deployment
(b) Data and features:
-
Data sources: map metadata, reviews, check-ins, GPS pings, events
-
Labeling strategy: define positives/negatives, counterfactual logging, debias for position/exposure
-
Feature sets: user, POI, context, interaction, geographic features
(c) Architecture:
-
Two-stage retrieval: candidate generation (embeddings/ANN) and ranking (GBDT or deep)
-
Re-ranker for diversity and novelty
(d) Training and serving:
-
Batch + streaming updates, feature store, backfills
-
Online serving: feature retrieval, caching, latency budgets, fallbacks
(e) Exploration/exploitation:
-
Strategy (e.g., bandits, epsilon-greedy) for cold start and long-term learning
(f) Evaluation plan:
-
Offline metrics (AUC, NDCG, coverage)
-
Online A/B metrics (CTR, save/visit rate, dwell)
(g) Trust & safety:
-
Privacy, abuse/spam prevention, geo-specific fairness considerations