CineMatch — Deep Learning Movie Recommender
A PyTorch collaborative-filtering recommender that learns latent taste from MovieLens interactions.
CineMatch learns latent representations of users and movies from MovieLens-100k interaction data and serves personalized top-N recommendations through a FastAPI backend and a React UI. A visitor picks a few movies they like, and the system returns movies it predicts they will enjoy — with a transparent score and the movie's genres.
Try it live → — the recommender is running right here on this site: pick a few movies you like and get real recommendations from the trained PyTorch model.
Why collaborative filtering
The project explores the modern collaborative-filtering approach: rather than hand-engineered rules, the model learns what "similar taste" means by training on implicit feedback signals — which users interacted with which movies. It implements NeuMF (Neural Matrix Factorization) with both BCE and BPR training modes, leave-one-out evaluation, and a hyperparameter sweep.
Results
Trained on MovieLens-100k with NeuMF over 8 epochs, evaluated with leave-one-out over a catalog of 1,682 movies:
| Metric | Score |
|---|---|
| HR@10 | 0.73 |
| NDCG@10 | 0.47 |
Tech stack
| Layer | Choice |
|---|---|
| ML / training | Python 3.11+ · PyTorch · pandas · numpy · Pydantic |
| Backend | FastAPI · Uvicorn |
| Frontend | React 18 · Vite |
| Containerization | Docker |
The live demo above runs this exact backend; to see the full training pipeline, evaluation harness, and API, view the source.