Design a short-video recommender system
LinkedInData Scientist · Technical ScreenLast updated
This question assesses the ability to architect a multi-stage machine learning pipeline for a short-video feed, covering candidate generation, ranking, and performance evaluation.
Problem Statement
You are tasked with designing a short-video recommendation system for a platform similar to LinkedIn's video feed. The goal is to maximize user engagement (dwell time) while maintaining content quality.
Requirements
- Pipeline Architecture: Describe the multi-stage process to go from a pool of millions of videos to the top 10 items shown to a user. Explain why a multi-stage approach is preferred over a single end-to-end model.
- Feature Engineering: Identify key features to capture user preferences and video characteristics. How would you handle cold-start problems for new videos or new users?
- Model Objectives: Define the target label for the ranking model. How would you balance short-term engagement (e.g., clicks/views) with long-term metrics (e.g., retention)?
- Evaluation: Explain the difference between offline metrics (e.g., AUC, NDCG) and online metrics (A/B testing). What secondary metrics would you monitor to ensure a healthy ecosystem?
Assumptions
- The platform has 50 million daily active users and 1 million new video uploads daily.
- The system must provide recommendations in under 200ms.
Expected Output
Provide a high-level design document covering the data flow, model components, and the strategy to maintain low latency.
Hints
Hint 1
Consider splitting the system into a high-recall candidate generation layer followed by a high-precision ranking layer.
Hint 2
For cold-start, think about using content-based embeddings or exploration strategies like Multi-Armed Bandits.
Hint 3
Think about how to transform implicit feedback, such as watch time or 'completion rate', into a target variable for the ranking model.
Follow-up questions
- How would you handle negative feedback, such as a user clicking 'not interested' or skipping the video immediately?
- If you notice the feed is becoming 'stale' (showing the same content), what changes would you make to the candidate generation stage?
- How would you implement a 'diversity' constraint to ensure the feed doesn't just show one type of content?
Solution walkthrough is for members
Get the full walkthrough with reference code and complexity analysis, plus Kitty Coach at 300 messages a day. Hints, the code runner and community answers stay free.