Presentation slides: https://gamma.app/public/Movie-Recommendation-System-dzdlk3mcnwm5xkc
- create_movie_sqlite_db.py - File to create the SQLite database from the original CSV files (links.csv, movies.csv, ratings.csv, tags.csv).
- movie_rec_app.py - Movie recommendation app. Run this app to utilize the web interface.
Movie recommendation systems offer personalized suggestions, aiding users in discovering content they're likely to enjoy. These systems not only enhance user satisfaction but also contribute to increased engagement and revenue for businesses.
- Reducing Choice Overload: With an abundance of movie options, tailored suggestions alleviate decision fatigue and prompt user engagement.
- Improved User Satisfaction: Tailored recommendations increase the likelihood of user return visits.
- Boosting Engagement and Revenue: Enhanced user engagement and satisfaction translate into increased revenue for businesses.
- Cold Start Problem: New users lack interaction history, posing a challenge in offering personalized recommendations.
- Data Sparsity: Gaps in data pertaining to movies, users, and ratings hinder accurate recommendations.
Our project focuses on crafting a movie recommender system using machine learning techniques. Leveraging the MovieLens dataset, the project involves data collection, cleansing, model development, optimization, and deployment.
- Data Structure: Utilizing user ratings and movie information for analysis.
- Database Schema: Optimizing storage and retrieval efficiency using SQLite.
- Integration with Flask: Connecting the front-end UI with the backend recommendation system.
- Content-Based Filtering: Utilizes movie attributes like genres to suggest similar movies.
- Collaborative Filtering: Recommends based on user preferences and historical interactions.
- TF-IDF Vector and Cosine for Content-Based: Captures uniqueness and similarity between movies based on genres.
- Nearest Neighbor for Collaborative Filtering: Utilizes attributes from similar users or items.
- Hybrid Testing: Evaluates accuracy using cosine similarity and subset interactions.
- HTML, CSS, and Bootstrap: Crafting an engaging UI with HTML structure, CSS styling, and Bootstrap for responsiveness.
- Flask Interactions: Defining endpoints for communication between UI and backend functionality.
- Genre-Based Recommendation: Matches movie titles to genres from a curated list.
- Hybrid Recommendation: Refines suggestions based on user feedback.
- Random Recommendation: Provides entirely random movie suggestions.
- Hybrid Recommendations: Delivering accurate, diverse, and personalized suggestions.
- Generalization: Guarding against overfitting by ensuring the system generalizes well to unseen data.
- Cold Start Problem: Addressing new user/item recommendations with limited data.
- Complexity: Weighing and integrating multiple techniques within the hybrid system.