This repository contains a movie recommendation system using collaborative filtering. The model leverages user and movie embeddings to suggest movies based on user preferences and incorporates additional movie metadata for enhanced recommendations. The dataset used is from MovieLens, consisting of 25 million movie ratings and tag applications.
The goal of this project is to build a robust movie recommendation system that can provide personalized movie suggestions based on a user's past ratings. By using collaborative filtering, we aim to improve recommendations by leveraging the collective preferences of all users.
The data used in this project is from the MovieLens dataset, which includes:
- 25 million movie ratings
- One million tag applications
- 62,000 movies
- 162,000 users
We primarily use the movies.csv and ratings.csv files for building the recommendation model.
To run this project, you'll need to have Python and the following libraries installed:
- NumPy
- Pandas
- TensorFlow
- scikit-learn
- Matplotlib
- IPython
You can install the required libraries using %pip install magic function.
- Clone the repository:
git clone https://github.com/SaintJeane/Movie_Recommendation_System.git
cd Movie_Recommendation_System-
Download the MovieLens dataset and place the
movies.csvandratings.csvfiles in the project directory. -
Run the Jupyter notebook or Python script to train the model and generate recommendations:
jupyter notebook Collaborative_Filtering_Model.ipynbThe recommendation system uses a neural network-based collaborative filtering approach. The key components of the model include:
- User and movie embeddings to capture latent factors.
- Dot product of embeddings for user-movie interaction.
- Additional layers for bias and non-linearity.
The model is trained using mean squared error loss and optimized with the Adam optimizer.
The model provides personalized movie recommendations by leveraging user ratings. The collaborative filtering approach helps improve the recommendation quality by considering the collective preferences of all users.
Contributions are welcome! Please open an issue or submit a pull request if you have any improvements or suggestions.
This project is licensed under the MIT License - see the LICENSE file for details.