Implementations of various top-N recommender systems in PyTorch for practice.
Movielens 100k & 1M are used as datasets.
| Model | Paper |
|---|---|
| BPRMF | Steffen Rendle et al., BPR: Bayesian Personalized Ranking from Implicit Feedback. UAI 2009. Link |
| ItemKNN | Jun Wang et al., Unifying user-based and item-based collaborative filtering approaches by similarity fusion. SIGIR 2006. Link |
| PureSVD | Paolo Cremonesi et al., Performance of Recommender Algorithms on Top-N Recommendation Tasks. RecSys 2010. Link |
| SLIM | Xia Ning et al., SLIM: Sparse Linear Methods for Top-N Recommender Systems. ICDM 2011. Link |
| P3a | Colin Cooper et al., Random Walks in Recommender Systems: Exact Computation and Simulations. WWW 2014. Link |
| RP3b | Bibek Paudel et al., Updatable, accurate, diverse, and scalablerecommendations for interactive applications. TiiS 2017. Link |
| DAE, CDAE | Yao Wu et al., Collaborative denoising auto-encoders for top-n recommender systems. WSDM 2016.Link |
| MultVAE | Dawen Liang et al., Variational Autoencoders for Collaborative Filtering. WWW 2018. Link |
| EASE | Harald Steck, Embarrassingly Shallow Autoencoders for Sparse Data. WWW 2019. Link |
| NGCF | Xiang Wang, et al., Neural Graph Collaborative Filtering. SIGIR 2019. Link |
| LightGCN | Xiangnan He, et al., LightGCN: Simplifying and Powering Graph Convolution Network for Recommendation. SIGIR 2020. Link |
To evaluate with C++ backend, you have to compile C++ and cython with the following script:
python setup.py build_ext --inplace
If compiled NOT successfully, "evaluation with python backend.." will be printed in the beginning.
- Edit experiment configurations in
config.py - Edit model hyperparameters you choose in
conf/[MODEL_NAME] - run
main.py
You can add your own model into the framework if:
- Your model inherits
BaseModelclass inmodels/BaseModel.py - Implement necessary methods and add additional methods if you want.
- Make
YourModel.conffile inconf - Add your model in
models.__init__
Some model implementations and util functions refers to these nice repositories.
- NeuRec: An open source neural recommender library. Repository
- RecSys 2019 - DeepLearning RS Evaluation. Paper Repository