GithubHelp home page GithubHelp logo

neurec's Introduction

NeuRec

GitHub version

Founder: BinWu
Main Contributors: ZhongchuanSun XiangnanHe

NeuRec is a flexible and comprehensive library including a variety of state-of-the-art neural recommender models. It aims to solve general and sequential (ie., next-item ) recommendation task. Current version includes 20+ neural recommendation models, and more will be be expected in the near future. NeuRec is free software (open source software), it can be used and distributed under the terms of the GNU General Public License (GPL).

Architecture of NeuRec

Architecture

Features

  • Cross Platform: Written in python and easily executed in multiple platforms, including Windows, Linux and Mac OS.
  • Rich State-of-The-Arts: More than 20 neural recommender models have been implemented, eg., DeepMF, NeuMF, ConvNCF, IRGAN,APR, CFGAN, MultiVAE and more representative models will be continuously added in the NeuRec.
  • Flexible Configuration: Configs a recommendation model only using a configuration file, including any loss & optimizer.
  • Easy Expansion: Well-designed interfaces, automatic differentiation.
  • Fast Execution: Naturally supports GPU, multi-thread evaluator.

Prerequisites

Our framework can be compiled on Python 3.6+ environments with the following modules installed:
  • tensorflow1.12.0+
  • numpy1.15.4+
  • scipy1.1.0+
These requirements may be satisified with an updated Anaconda environment as well - https://www.anaconda.com/

How to run it

  1. The format of the data in the dataset file should be UIRT, ie., [userid,itemid,rating,Unix timestamp]
  2. Configure the global file neurec.properties and the specific file XX.properties in the directory named conf (XX means the name of the specific model).
  3. Train and evaluate the specific model (strongly suggest running this project on GPU, which is faster than on CPU):
python main.py

Implement your own model

Implementing your own model in NeuRec needs to inherit AbstractRecommender class. And you need to implement the abstract methods in the abstract class.
1. __init__()
2. build_graph()   
3. train_model()   
4. predict() 

Models Implemented

General Recommender Paper
GMF,MLP,NeuMF Xiangnan He et al., Neural Collaborative Filtering , WWW 2017.
BPRMF Steffen Rendle et al., BPR: Bayesian Personalized Ranking from Implicit Feedback. UAI 2009.
SBPR Tong Zhao et al., Leveraging Social Connections to Improve Personalized Ranking for Collaborative Filtering. CIKM 2014.
FISM Santosh Kabbur et al., FISM: Factored Item Similarity Models for Top-N Recommender Systems. KDD 2013.
NAIS Xiangnan He et al., NAIS: Neural Attentive Item Similarity Model for Recommendation . TKDE2018.
DeepICF Feng Xue et al., Deep Item-based Collaborative Filtering for Top-N Recommendation. TOIS 2019.
ConvNCF Xiangnan He et al., Outer Product-based Neural Collaborative Filtering . IJCAI 2018.
DMF Hong-Jian Xue et al., Deep Matrix Factorization Models for Recommender Systems. IJCAI 2017.
CDAE,DAE Yao Wu et al., Collaborative denoising auto-encoders for top-n recommender systems. WSDM 2016.
MultiDAE,MultiVAE Dawen Liang, et al., Variational autoencoders for collaborative filtering. WWW 2018.
JCA Ziwei Zhu, et al., Improving Top-K Recommendation via Joint Collaborative Autoencoders. WWW 2019.
IRGAN Jun Wang, et al., IRGAN: A Minimax Game for Unifying Generative and Discriminative Information Retrieval Models. SIGIR 2017.
CFGAN Dong-Kyu Chae, et al., CFGAN: A Generic Collaborative Filtering Framework based on Generative Adversarial Networks. CIKM 2018.
APR Xiangnan He, et al., Adversarial Personalized Ranking for Recommendation. SIGIR 2018.

Sequential Recommender Paper
FPMC,FPMCplus Steffen Rendle et al., Factorizing Personalized Markov Chains for Next-Basket Recommendation, WWW 2010.
HRM Pengfei Wang et al., Learning Hierarchical Representation Model for NextBasket Recommendation, SIGIR 2015.
NPE ThaiBinh Nguyen et al., NPE: Neural Personalized Embedding for Collaborative Filtering, ijcai 2018.
TransRec Ruining He et al., Translation-based Recommendation, SIGIR 2015.

Acknowledgements

The development of NeuRec was supported by the National Natural Science Foundation of China under Grant No. 61772475. This project is also supported by the National Research Foundation, Prime Minister’s Office, Singapore under its IRC@Singapore Funding Initiative.

next

neurec's People

Contributors

wubinzzu avatar

Watchers

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