Design a ranking + recommendation system for a personalized feed (e.g., short videos, posts, or products).
Requirements
Core goals
-
Given a user
U
, return a ranked list of items for their feed.
-
Support both:
-
Home feed
(personalized recommendations)
-
Optionally:
Following feed
(content only from followed creators)
Functional
-
Candidate generation (retrieve a large pool of potentially relevant items).
-
Ranking (order items by predicted utility).
-
Handle freshness/recency, diversity, and content policies (blocks, safety filters).
-
Support exploration vs. exploitation.
Non-functional
-
Low latency per request (e.g., p95 < 200 ms) with high QPS.
-
High availability, graceful degradation.
-
Near real-time adaptation (user actions should influence feed quickly).
-
Observability and experiment platform (A/B tests).
Deliverables
Explain:
-
High-level architecture and data flow (online serving + offline training).
-
Storage choices (feature store, embeddings, logs).
-
Model/feature strategy and how you ensure freshness.
-
How you evaluate: offline metrics + online metrics/guardrails.
-
Key failure modes and mitigations (cold start, feedback loops, abuse).