Théodore Billotte
← All projects

2025 · Machine Learning project, Tsinghua UniversityReleased

Movie Recommendation System

Movie recommendation: from Matrix Factorization to hybrid Neural CF, benchmarked against a zero-shot LLM.

ML Developer (with Louis Rollet & Vincent Montero-Fontaine)

Movie Recommendation System

A complete movie recommendation system built on the MovieLens 20M dataset in PyTorch, for the Machine Learning course at Tsinghua University. It works through three increasingly capable models and benchmarks them against a zero-shot LLM.

Models

Model Approach Test RMSE
Matrix Factorization Classic latent-factor baseline ~1.16
Neural Collaborative Filtering Learned user/item embeddings + MLP ~0.82
Hybrid NCF NCF + genre embeddings for cold start ~0.82
Zero-shot LLM (Gemini) Prompt-only, no training ~0.99

The Neural CF model is the strongest, and the hybrid variant adds genre embeddings so the system can still recommend for new users and new items (the cold-start problem). Interestingly, a zero-shot LLM lands between the classical and neural approaches without any training at all.

Interactive dashboard

The system is deployed as a Streamlit app:

  • Profile-based recommendations from a user’s rating history.
  • Similar-movie search via cosine similarity over learned embeddings.
  • Taste-profile builder for new users, using a “proxy user” algorithm to bootstrap recommendations from a few picks.

My role

ML developer (with Louis Rollet & Vincent Montero-Fontaine). Model implementation and training in PyTorch, the cold-start hybrid, and the Streamlit dashboard.

The full report is embedded below.

Tech

Python · PyTorch · scikit-learn · Streamlit

Team

Connections

Projects

Education