Skip to content

oyounis19/NCF-Recommender-System

Repository files navigation

NCF Recommender System with PyTorch

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 🚀.

🌟 Try it out!

📓 Notebook on Kaggle

🌐 Overview

Adjusted NCF

  • 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)

📚 Project Structure

  • 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.

📖 References

💡 Contributing

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! 🚀