Welcome to the NCF Recommender System with PyTorch! In this project, An end-to-end Recommender System using an adjusted version of Neural Collaborative Filtering (NCF) with PyTorch. the model is trained on the MovieLens-1M dataset 🎥, served using FastAPI, hosted on Streamlit 🚀.
- Website: https://ncf-recsys.streamlit.app/
-
Our adjusted architecture of NCF enables the input of the user/item features besides the user/item IDs.
-
Quick Reminder: A recommender system is not just a ranking model, but a pipeline consisting of: Items Retrieval, Filtering, Ranking, and Ordering. (Detailed explanation in the notebook)
-
streamlit.py
: Streamlit app to interact with the model. -
app/
:- main.py: The FastAPI app to serve the model.
model/
:utils/
:model.py
: The NCF model.utils.py
: Utility functions for data processing.requests.py
: Request class to make API requests.
data/
: Processed data for inference.weights/
: Pretrained models weights for inference.
- Neural collaborative filtering Paper
- Medium: Recommender Systems, Not Just a Recommender Models
- MovieLens-1M
Contributions are welcome! If you find a typo, want to add more content, or improve something, feel free to open an issue or submit a pull request.
Happy learning! 🚀