Taro Logo
0
Profile picture
Yayun Jin, Ph.D.ML Engineer at Reddit | Ex-Microsoft & Workday | Mentoring 200+ Engineers into ML Roles

System Design Example: TikTok Recommendation System

In this example, we apply the 5-part ML system design framework to a product-focused recommendation system, like the “For You” page on TikTok. This walkthrough shows how to translate theory into a practical, high-impact system that balances user experience, business goals, and infrastructure at scale.

  • Problem Navigation: We identify key functional and non-functional requirements—personalized video recommendations under 100ms latency for over a billion users. Product goals include maximizing watch time, retention, and creator growth, while supporting real-time responsiveness.

  • High-Level Design: The system includes a content ingestion pipeline, feature extraction services, candidate generation and ranking models, a real-time serving layer, and a feedback loop. We distinguish between components that require real-time updates (e.g., inference) and those that can run in batch (e.g., daily retraining).

  • Data Strategy & Feature Engineering: We engineer rich user features (behavioral, demographic), video features (metadata, embeddings), and contextual features (session state, time of day). Concrete examples include a creator consistency score and a video novelty score.

  • Modeling Approach: We use a two-stage architecture:

    • Candidate generation: Options include two-tower models, matrix factorization, neural collaborative filtering, and graph-based models.

    • Ranking: GBDTs for interpretability or deep models for richer signal capture. We also plan for cold start solutions and use exploration strategies to mitigate popularity bias.

  • Evaluation, Deployment & Monitoring: We evaluate offline with AUC and DCG, and run A/B tests in production to track watch time and session length. To meet latency goals, we apply compression, caching, and quantization. Monitoring covers drift, degradation, and business KPIs—with real user feedback continuously improving the system.

This structured approach helps us communicate clearly, think systemically, and demonstrate readiness for designing real-world ML systems at scale.

If you want to learn even more from Yayun: