Katkat

Design a cold-start video recommender

VoleonMachine Learning Engineer · Technical Screen

Last updated

This problem tests the ability to architect a recommendation system that provides personalized content for new users or items with zero historical interaction data.

Design a Cold-Start Video Recommender System

Your task is to design a video recommendation service for a platform launching a new category of short-form videos. A significant portion of your traffic consists of new users with no viewing history, and you receive thousands of new video uploads daily with no engagement metrics (views, likes, shares).

Requirements

  • Functional: Generate a list of video recommendations that are relevant for a user session, even without historical data.
  • Non-functional: The system must return recommendations within a latency budget of 200ms. The architecture should support rapid ingestion of new videos and adapt to user feedback within minutes.
  • Scale: Assume 10 million daily active users and 50,000 new video uploads per day.

Your design should address:

  1. Candidate Generation: How do you retrieve potential videos when collaborative filtering (CF) signals are unavailable?
  2. Feature Engineering: What features (content-based, metadata, graph-based) can be used to describe both users and items?
  3. Ranking Model: Propose a model architecture that balances exploration (showing new videos) and exploitation (showing high-quality content).
  4. Feedback Loop: How will you incorporate real-time signals from the first few clicks of a new user to refine recommendations within the same session?

Include a high-level system diagram description and discuss the trade-offs between latency, accuracy, and engineering complexity.

Hints

Hint 1

Consider leveraging multi-modal content embeddings (e.g., visual, audio, and textual features) to represent items before they receive any views.

Hint 2

Think about using a multi-armed bandit strategy or epsilon-greedy approach to systematically gather engagement data for new videos while maintaining user experience.

Hint 3

Explore how transfer learning or metadata-based user grouping can provide a 'warm-up' vector for users who have just signed up.

Follow-up questions

  • How would you measure the success of your cold-start strategy without cannibalizing the performance of established content?
  • If your model relies heavily on video transcripts, how do you handle low-quality or spammy content in newly uploaded videos?
  • How would you transition a video from the 'cold-start' pipeline to the standard 'production' collaborative filtering pipeline?