Movie Recommendation System
This project implements a user-based collaborative filtering recommendation system using the MovieLens dataset. The system finds users with similar taste preferences and recommends movies that similar users have enjoyed. The dataset contains 100,003 ratings from 944 users across 1,682 movies. An interaction matrix is constructed where rows represent users, columns represent movies, and values are ratings. Cosine similarity measures the relationship between users in this high-dimensional space. The system includes a Streamlit web application that allows users to select their name from a dropdown and receive personalized movie recommendations, complete with interactive rating visualizations using Plotly.
Key Metrics
Highlights
- User-user collaborative filtering with cosine similarity
- 100K+ ratings from 944 users
- Top-K similar users for recommendation generation
- Interactive Streamlit web application
This is a notebook-based ML project. View the full implementation on GitHub.
Features
- User-user collaborative filtering with cosine similarity
- 100K+ ratings from 944 users
- Top-K similar users for recommendation generation
- Interactive Streamlit web application
- Plotly visualizations for rating distributions
- Excludes already-seen movies from recommendations
Architecture
┌─────────────┐ ┌─────────────┐ ┌─────────────┐
│ MovieLens │────▶│ Interaction │────▶│ Similarity │
│ Dataset │ │ Matrix │ │ Matrix │
└─────────────┘ └─────────────┘ └─────────────┘
│
▼
┌─────────────┐ ┌─────────────┐ ┌─────────────┐
│ Streamlit │◀────│ Top-K │◀────│ Find │
│ UI │ │ Movies │ │ Similar Users│
└─────────────┘ └─────────────┘ └─────────────┘Tech Stack
Key Learnings
Sparsity (93.7%) is a major challenge in collaborative filtering — most users rate very few movies
Cosine similarity handles sparse vectors better than Euclidean distance for user-user similarity
Filtering already-seen movies is essential for useful recommendations
Streamlit enables rapid prototyping of ML applications with minimal frontend code
Want to see more AI projects?
Check out the rest of my AI Lab or get in touch to discuss AI/ML collaboration.