Which open-source model would you recommend for generating video recommendations in an OTT platform?

If you were building a video streaming app like Netflix or YouTube, which free AI model would you use to recommend videos to users?

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:

  1. Start with popularity by region/time and simple collaborative-filtering baselines.
  2. Build a TFRS two-tower model from impressions, clicks, watch time, completion, skips, and dislikes.
  3. Add content embeddings for new users and new videos.
  4. Compare against BERT4Rec/SASRec if viewing order matters.
  5. Evaluate with a time-based split using Recall@K/NDCG, then validate with an online A/B test.
  6. 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.