Modern recommendation engines have two parts: (1) Candidate Generation, (2) Ranking. Candidate generation typically involves a hyperfast DL model to break the entire video corpus down into ~1000 videos. Ranking will rank the top n and output k videos to the engine output.
Sometimes, the first stage of candidate generation (ex. TikTok ads infra) will rely on basic demographics like age and location that are instantly indexable. For our use case, and for non-ads recommendations, we likely needs something a little more specific, but not as powerful as a full fledged DL model.
If our database has 200 some videos, we should aim Candidate Generation to break the recommendations down into ~10 ish options. Ranker will produce an ordering to those 10 videos. This may be specifically based on some mix of our vector data.
Some considerations
Current user affinity vector (recent watch history)
1 month user affinity vector
Friend list affinity vector
Total user complexity vector
Integration
Partially requires #134, not blocked
Requirements
FAST (we make data calls per scroll per user, expect SLA of 10-100 ms)
Outputs some TOP 4 videos to the API as a response for the frontend.
Ranking (10+ Hours)
General Youtube DNN for Youtube
Background
Modern recommendation engines have two parts: (1) Candidate Generation, (2) Ranking. Candidate generation typically involves a hyperfast DL model to break the entire video corpus down into ~1000 videos. Ranking will rank the top n and output k videos to the engine output.
Sometimes, the first stage of candidate generation (ex. TikTok ads infra) will rely on basic demographics like age and location that are instantly indexable. For our use case, and for non-ads recommendations, we likely needs something a little more specific, but not as powerful as a full fledged DL model.
If our database has 200 some videos, we should aim Candidate Generation to break the recommendations down into ~10 ish options. Ranker will produce an ordering to those 10 videos. This may be specifically based on some mix of our vector data.
Some considerations
Integration
Requirements