Design a Recommendation System
HardSystem design · Machine Learning Systems · Netflix · Amazon · Google
Design a recommendation system for a large content or product platform. Given a user and a context (home page, item page), return a personalised ranked list of items in under 150ms, learn from impressions and clicks, handle new users and new items, and let teams run A/B tests. Focus on the retrieval-ranking-re-ranking funnel, feature serving, cold start, exploration, feedback loops and experimentation. Out of scope: model architecture research and the feature store internals.
Requirements
- Generate candidates from several sources in parallel (embeddings, co-occurrence, trending/fresh)
- Rank with a model using online and precomputed features, then re-rank for diversity and business rules
- Handle cold-start users and items and reserve capacity for exploration
- Log impressions to train on, correct position bias, and measure changes with online A/B tests and holdouts