If you were building a video streaming app like Netflix or YouTube, which free AI model would you use to recommend videos to users?
Which open-source model would you recommend for generating video recommendations in an OTT platform?
I would not start with a general-purpose LLM for this. Video recommendation is mainly a retrieval-and-ranking problem, and the best model depends on what interaction data you have.
A practical open-source starting point is TensorFlow Recommenders (TFRS) with a two-tower retrieval model:
- the query tower represents the user and context;
- the candidate tower represents each video;
- approximate nearest-neighbor search retrieves candidates;
- a second-stage ranker orders the shortlist.
The official movie-retrieval tutorial is close to this use case and includes training, evaluation, and export: https://www.tensorflow.org/recommenders/examples/basic_retrieval
If you have ordered watch histories, compare sequential models such as BERT4Rec or SASRec through RecBole. BERT4Rec is specifically designed to model sequences of user interactions: BERT4Rec โ RecBole 1.2.1 documentation
For a cold-start baseline, you can embed titles, descriptions, genres, and tags with a text encoder such as sentence-transformers/all-MiniLM-L6-v2 and recommend semantically similar videos. Its model card lists semantic search as an intended use: sentence-transformers/all-MiniLM-L6-v2 ยท Hugging Face . However, that is an item-content encoder, not a complete personalized recommender.
My suggested progression would be:
- Start with popularity by region/time and simple collaborative-filtering baselines.
- Build a TFRS two-tower model from impressions, clicks, watch time, completion, skips, and dislikes.
- Add content embeddings for new users and new videos.
- Compare against BERT4Rec/SASRec if viewing order matters.
- Evaluate with a time-based split using Recall@K/NDCG, then validate with an online A/B test.
- Apply eligibility, age-rating, language, availability, and diversity rules after retrieval.
So, if I had to choose one free starting stack: TFRS two-tower retrieval plus a ranker, with content embeddings for cold start. I would choose BERT4Rec only after confirming that sequential watch history improves the offline metrics.