Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/samdc73/flickpick
Movie Recommendation System using PyTorch and Collaborative Filtering and trained on the MovieLens 25M dataset
https://github.com/samdc73/flickpick
jupyter-notebook movielens python pytroch recommender-system
Last synced: about 8 hours ago
JSON representation
Movie Recommendation System using PyTorch and Collaborative Filtering and trained on the MovieLens 25M dataset
- Host: GitHub
- URL: https://github.com/samdc73/flickpick
- Owner: SamDc73
- Created: 2024-06-17T05:15:46.000Z (5 months ago)
- Default Branch: main
- Last Pushed: 2024-06-19T21:26:00.000Z (5 months ago)
- Last Synced: 2024-06-20T10:47:11.634Z (5 months ago)
- Topics: jupyter-notebook, movielens, python, pytroch, recommender-system
- Language: Jupyter Notebook
- Homepage:
- Size: 21.2 MB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Movie Recommendation System with PyTorch
This repository contains Jupyter notebooks for training and tuning a movie recommendation system using PyTorch and the MovieLens dataset.
## Notebooks
### 1. main.ipynb
This notebook contains the main code for training the movie recommendation model. It includes:
- Implementing a collaborative filtering approach using matrix factorization, specifically the Neural Collaborative Filtering (NCF) algorithm.
- Employing techniques such as embedding layers, fully connected layers with non-linear activations, dropout regularization, and optimization algorithms like Adam to capture complex user-movie interactions and prevent overfitting.
- Evaluating the trained model's performance useing Root Mean Squared Error (RMSE) and Mean Absolute Error (MAE), and generating personalized movie recommendations based on the learned user and movie embeddings.### 2. tuning.ipynb
This notebook focuses on hyperparameter tuning for the movie recommendation model, but due to computational resource limitations, the code in this notebook was written but not executed. It includes:
- Implementing a grid search approach to explore different combinations of hyperparameters.
- Utilizing k-fold cross-validation technique to evaluate the model's performance across different hyperparameter settings.
- Identifying the best-performing hyperparameter configuration based on the cross-validation results.## Models
- The trained movie recommendation model has been serialized and saved in two different formats: PyTorch model checkpoint (.pth) and ONNX (Open Neural Network Exchange) format (.onnx).
- PyTorch model checkpoint (final_model_state_dict.pth): The model's parameters have been converted to half-precision (FP16).
- ONNX format (model.onnx) has been exported using torch.onnx.export().## Dataset
- used the MovieLens 25M Dataset which can be found [here](https://grouplens.org/datasets/movielens/)
## Prerequisites
- Python 3.6+
- Jupyter Notebook
- PyTorch
- Additional Python libraries: pandas, numpy, matplotlib, tqdm, scikit-learn.