System Design
  • Introduction
  • System Design Process
  • System Design Systematic Approach
  • System Design Topics
  • System Design Interview Tips
  • Object Oriented Design
  • System Design Problems
    • Designing an API Rate Limiter
    • Design News Feed
    • Design Recommendation System
    • Design Photo Sharing App
    • Design Location Based App
    • Design Messenger App
    • Design Twitter
    • Design Uber Lyft
    • Design Surge Pricing
  • Architect's Toolbox
    • Cache Design
    • Database and Cache
    • Pull vs Poll
    • Geo Location
    • Storage Estimation
    • ID Generator
    • Latency Numbers
    • Encoding Decoding Encryption Decryption
  • Systems Design Glossary
    • Consistent Hashing
    • Sharding or Partitioning
    • Database Indexes
    • Proxies
    • Caching
    • Queues
    • SQL vs. NoSQL
    • CAP Theorem
    • Distributed Messaging System
    • Long-Polling vs WebSockets vs Server-Sent Events
    • Producer and Consumer
    • Latency, Bandwidth and Throughput
    • Microservices Architecture
    • RESTful API
    • Concurrent Programming
  • Distributed System Resources
    • Distributed System Notes
  • Reference
Powered by GitBook
On this page
  • Heuristic Solution
  • Collaborative filtering
  • Feature engineering
  • Infrastructure
  • Reference

Was this helpful?

  1. System Design Problems

Design Recommendation System

PreviousDesign News FeedNextDesign Photo Sharing App

Last updated 5 years ago

Was this helpful?

Heuristic Solution

In fact, there are lots of hacks we can do to build a simple recommendation system. For instance, based on videos a user has watched, we can simply suggest videos from same authors. We can also suggest videos with similar titles or labels. If we use the popularity (number of comments, shares) as another signal, the recommendation system can work pretty well as a baseline.

Collaborative filtering

One can hardly avoid , which is the most popular technique used in recommendation systems.

user-based collaborative filtering

item-based collaborative filtering

Feature engineering

Q: what features can be used to build the recommendation system?

Example: Youtube Recommendation System

  • Like/share/subscribe – As mentioned above, they are strong signs about a user’s preferences.

  • Watch time

  • Video title/labels/categories

  • Freshness

Infrastructure

Offline

In fact, for most machine learning systems, it’s common to use offline pipeline to process big data as you won’t expect it to finish with few seconds.

Online

Fetches more than needed and do filtering, ranking on the fly

Reference

Gainlo Blog:

Wikipedia:

mentioning collaborative filtering (CF)
Design a Recommendation System
Collaborative Filtering