Projects CineMatch

Neural network

CineMatch

A neural movie recommender that learns from what people watch and rate, and suggests what they’ll enjoy next, with a match score for every pick.

An independent side project I designed and built in my own time to get hands-on with the technology. It isn’t client or GALE work.

CineMatch's neural network: Avatar, Harry Potter and Interstellar flow through embedding and dense layers to five recommendations led by Dune and Inception with match scores, while training metrics improve.
A quick look at the build

Why I built it

Streaming catalogues have thousands of titles, and most people give up after a few minutes of scrolling. “Most popular” lists recommend the same films to everyone, whatever they actually like. I wanted to learn how modern recommenders work by building one end to end.

What I built

Learns taste from behaviour

Ratings, watches and skips all teach it what each person enjoys.

Two-tower model

Users and films become embeddings in one shared space, so similar tastes sit close together.

Deep ranking

A neural network re-ranks the closest candidates to pick the best few.

Handles new films and users

Genre, cast and plot descriptions fill in when there’s no viewing history yet.

Explains its picks

“Because you watched Interstellar” shows why each film was suggested.

Measured properly

Validation RMSE and Recall@10 on held-out ratings track whether it’s really improving.

How it works

  1. CollectRatings and viewing history come from the MovieLens dataset of 25 million ratings.
  2. EmbedUsers and films are turned into vectors that capture taste.
  3. RetrieveThe nearest films to each user are found in milliseconds.
  4. RankThe deep network scores the candidates and returns the top picks.

Built with

  • Python
  • PyTorch
  • MovieLens 25M
  • FAISS
  • pandas
  • FastAPI
Esc
↑ ↓ to moveEnter to openEsc to close