Design a short-video recommender for short-term interest
Company: Snapchat
Role: Machine Learning Engineer
Category: ML System Design
Difficulty: medium
Interview Round: Technical Screen
## Scenario
You are designing a **short-video recommendation system** (similar to a swipe/feed product). The system must personalize the feed for each user and **react quickly to the user’s short-term interests** (session intent), not just long-term preferences.
## Requirements
1. **Primary goal:** maximize user satisfaction in the current session by capturing short-term interest shifts (e.g., user starts watching cooking videos after browsing sports).
2. **Scale assumptions (choose reasonable numbers and state them):** tens of millions of users, millions of videos, high QPS during peak.
3. **Latency:** feed generation should feel instant (e.g., p95 < 200–300 ms for ranking at request time).
4. **Freshness:** incorporate new uploads and the user’s latest interactions quickly.
5. **Safety & quality:** filter harmful/low-quality/spam content; avoid repetitive or overly narrow recommendations.
6. **Feedback signals:** watch time, completion rate, likes, shares, comments, follows, “not interested,” skips, and dwell time.
## Deliverables
- Propose an end-to-end architecture for candidate generation + ranking.
- Explain **how you model and serve short-term interest** (session-based signals, near-real-time features, or online learning).
- Define core offline/online metrics and experimentation approach.
- Discuss data pipelines, feature stores, model training, and serving.
- Call out key pitfalls (feedback loops, cold start, bias, exploration vs exploitation).
Quick Answer: This question evaluates a candidate's understanding of real-time personalized recommendation systems, with emphasis on session-based short-term interest modeling, candidate generation and ranking, low-latency serving, feature pipelines, and metrics for freshness, safety, and quality, and it falls under the ML system design domain.