Scikit-Recommender
Scikit-Recommender is an open source library for researchers of recommender systems.
Highlighted Features
- Various recommendation models
- Parse arguments from command line and ini-style files
- Diverse data preprocessing
- Fast negative sampling
- Fast model evaluation
- Convenient record logging
- Flexible batch data iterator
Installation
You have three ways to use Scikit-Recommender:
- Install from PyPI
- Install from Source
- Run without Installation
Install from PyPI
Binary installers are available at the Python package index and you can install the package from pip.
pip install scikit-recommender
Install from Source
Installing from source requires Cython and the current code works well with the version 0.29.20.
To build scikit-recommender from source you need Cython:
pip install cython==0.29.20
Then, the scikit-recommender can be installed by executing:
git clone https://github.com/ZhongchuanSun/scikit-recommender.git
cd scikit-recommender
python setup.py install
Run without Installation
Alternatively, You can also run the sources without installation.
Please compile the cython codes before running:
git clone https://github.com/ZhongchuanSun/scikit-recommender.git
cd scikit-recommender
python setup.py build_ext --inplace
Usage
After installing or compiling this package, now you can run the run_skrec.py:
python run_skrec.py
You can also find examples in tutorial.ipynb.
Models
MMRec | Implementation | Paper | Publication |
---|
MGCN | PyTorch | Penghang Yu, et al., Multi-View Graph Convolutional Network for Multimedia Recommendation | ACM MM 2023 |
BM3 | PyTorch | Xin Zhou, et al., Bootstrap Latent Representations for Multi-modal Recommendation | WWW 2023 |
FREEDOM | PyTorch | Xin Zhou, et al., A Tale of Two Graphs: Freezing and Denoising Graph Structures for Multimodal Recommendation | ACM MM 2023 |
SLMRec | PyTorch | Zhulin Tao, et al., Self-supervised Learning for Multimedia Recommendation | TMM 2022 |
LATTICE | PyTorch | Jinghao Zhang, et al., Mining Latent Structures for Multimedia Recommendation | ACM MM 2021 |
Recommender | Implementation | Paper | Publication |
---|
SelfCF | PyTorch | Xin Zhou, et al., SelfCF: A Simple Framework for Self-supervised Collaborative Filtering | TORS 2023 |
LayerGCN | PyTorch | Xin Zhou, et al., Layer-refined Graph Convolutional Networks for Recommendation | ICDE 2023 |
DENS | PyTorch | Riwei Lai, et al., Disentangled Negative Sampling for Collaborative Filtering | WSDM 2023 |
LightGCL | PyTorch | Xuheng Cai, et al., LightGCL: Simple Yet Effective Graph Contrastive Learning for Recommendation | ICLR 2023 |
SGAT | TensorFlow (1.14) | Zhongchuan Sun, et al., Sequential Graph Collaborative Filtering | Information Sciences 2022 |
LightGCN | PyTorch | Xiangnan He et al., LightGCN: Simplifying and Powering Graph Convolution Network for Recommendation. | SIGIR 2020 |
SRGNN | TensorFlow (1.14) | Shu Wu et al., Session-Based Recommendation with Graph Neural Networks. | AAAI 2019 |
HGN | PyTorch | Chen Ma et al., Hierarchical Gating Networks for Sequential Recommendation. | KDD 2019 |
BERT4Rec | TensorFlow (1.14) | Fei Sun et al., BERT4Rec: Sequential Recommendation with Bidirectional Encoder Representations from Transformer. | CIKM 2019 |
SASRec | TensorFlow (1.14) | Wangcheng Kang et al., Self-Attentive Sequential Recommendation. | ICDM 2018 |
GRU4RecPlus | TensorFlow (1.14) | Balázs Hidasi et al., Recurrent Neural Networks with Top-k Gains for Session-based Recommendations. | CIKM 2018 |
Caser | PyTorch | Jiaxi Tang et al., Personalized Top-N Sequential Recommendation via Convolutional Sequence Embedding. | WSDM 2018 |
MultiVAE | PyTorch | Dawen Liang, et al., Variational Autoencoders for Collaborative Filtering. | WWW 2018 |
TransRec | PyTorch | Ruining He et al., Translation-based Recommendation. | RecSys 2017 |
CML | TensorFlow (1.14) | Cheng-Kang Hsieh et al., Collaborative Metric Learning. | WWW 2017 |
CDAE | PyTorch | Yao Wu et al., Collaborative Denoising Auto-Encoders for Top-n Recommender Systems. | WSDM 2016 |
GRU4Rec | TensorFlow (1.14) | Balázs Hidasi et al., Session-based Recommendations with Recurrent Neural Networks. | ICLR 2016 |
AOBPR | C/Cython | Steffen Rendle et al., Improving Pairwise Learning for Item Recommendation from Implicit Feedback. | WSDM 2014 |
FPMC | PyTorch | Steffen Rendle et al., Factorizing Personalized Markov Chains for Next-Basket Recommendation. | WWW 2010 |
BPRMF | PyTorch | Steffen Rendle et al., BPR: Bayesian Personalized Ranking from Implicit Feedback. | UAI 2009 |
Pop | Python | Make recommendations based on item popularity. | |