Giter Site home page Giter Site logo

neural-collaborative-filtering's Introduction

Goals

Building a recommendation systems with neural networks to predict whether an user will interact with each movie, with the goal of recommending the movies to users with the highest interaction likelihood.

Datasets

MovieLens 25M Dataset
https://grouplens.org/datasets/movielens/

The dataset employed in this project is ratings.csv, comprising 25,000,095 entries derived from explicit feedback. The recommender system is trained using implicit feedback by binarizing the explicit ratings, resulting in an expanded dataset of approximately 125,000,000 entries, making it five times larger.

Files

  • eda.ipynb: This notebook contains the code for conducting exploratory data analysis on the dataset.
  • data.py: This file includes functions and classes responsible for preparing the data to be used with the neural network, utilizing pytorch lightning.
  • model.py: The code in this file outlines the architecture of the neural collaborative filtering, which is implemented using pytorch lightning for the training process.
  • trainer.py: This is the main file to execute and oversee the training process.
  • best_model.pt: The trained model with the lowest validation loss is saved in this file.
  • evaluation.ipynb: In this notebook, the trained model is evaluated using the metrics Hit Ratio @ 5 and Hit Ratio @ 10.

Architecture of Neural Network

In this project, label encoding is utilized for both the input variables of userId and movieId, as well as the output variable indicating whether an interaction has occurred (labeled as 1) or not (labeled as 0).

image

Performances

Hit Ratio @ 5: 90.41%
Hit Ratio @ 10: 96.49%

neural-collaborative-filtering's People

Contributors

jjjjjooooo avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.