Updates:
- [Oct 29, 2023] Add SSL4Rec. (#76, by @downeykking)
- [Oct 23, 2023] Add sparse tensor support, accelerating LightGCN & NGCF by ~5x, with 1/6 GPU memories. (#75, by @downeykking)
- [Oct 20, 2023] Add DirectAU. (#74, by @downeykking)
- [Oct 16, 2023] Add XSimGCL. (#72, by @downeykking)
- [Apr 12, 2023] Add LightGCL. (#63, by @wending0417)
- [Oct 29, 2022] Adaptation to RecBole 1.1.1. (#53)
- [Jun 15, 2022] Add MultiBehaviorDataset. (#43, by @Tokkiu)
RecBole-GNN is a library built upon PyTorch and RecBole for reproducing and developing recommendation algorithms based on graph neural networks (GNNs). Our library includes algorithms covering three major categories:
- General Recommendation with user-item interaction graphs;
- Sequential Recommendation with session/sequence graphs;
- Social Recommendation with social networks.
- Easy-to-use and unified API: Our library shares unified API and input (atomic files) as RecBole.
- Efficient and reusable graph processing: We provide highly efficient and reusable basic datasets, dataloaders and layers for graph processing and learning.
- Extensive graph library: Graph neural networks from widely-used library like PyG are incorporated. Recently proposed graph algorithms can be easily equipped and compared with existing methods.
recbole==1.1.1
pyg>=2.0.4
pytorch>=1.7.0
python>=3.7.0
If you are using
recbole==1.0.1
, please refer to ourrecbole1.0.1
branch [link].
With the source code, you can use the provided script for initial usage of our library:
python run_recbole_gnn.py
If you want to change the models or datasets, just run the script by setting additional command parameters:
python run_recbole_gnn.py -m [model] -d [dataset]
We list currently supported models according to category:
General Recommendation:
- NGCF from Wang et al.: Neural Graph Collaborative Filtering (SIGIR 2019).
- LightGCN from He et al.: LightGCN: Simplifying and Powering Graph Convolution Network for Recommendation (SIGIR 2020).
- SSL4Rec from Yao et al.: Self-supervised Learning for Large-scale Item Recommendations (CIKM 2021).
- SGL from Wu et al.: Self-supervised Graph Learning for Recommendation (SIGIR 2021).
- HMLET from Kong et al.: Linear, or Non-Linear, That is the Question! (WSDM 2022).
- NCL from Lin et al.: Improving Graph Collaborative Filtering with Neighborhood-enriched Contrastive Learning (TheWebConf 2022).
- DirectAU from Wang et al.: Towards Representation Alignment and Uniformity in Collaborative Filtering (KDD 2022).
- SimGCL from Yu et al.: Are Graph Augmentations Necessary? Simple Graph Contrastive Learning for Recommendation (SIGIR 2022).
- XSimGCL from Yu et al.: XSimGCL: Towards Extremely Simple Graph Contrastive Learning for Recommendation (TKDE 2023).
- LightGCL from Cai et al.: LightGCL: Simple Yet Effective Graph Contrastive Learning for Recommendation (ICLR 2023).
Sequential Recommendation:
- SR-GNN from Wu et al.: Session-based Recommendation with Graph Neural Networks (AAAI 2019).
- GC-SAN from Xu et al.: Graph Contextualized Self-Attention Network for Session-based Recommendation (IJCAI 2019).
- NISER+ from Gupta et al.: NISER: Normalized Item and Session Representations to Handle Popularity Bias (GRLA, CIKM 2019 workshop).
- LESSR from Chen et al.: Handling Information Loss of Graph Neural Networks for Session-based Recommendation (KDD 2020).
- TAGNN from Yu et al.: TAGNN: Target Attentive Graph Neural Networks for Session-based Recommendation (SIGIR 2020 short).
- GCE-GNN from Wang et al.: Global Context Enhanced Graph Neural Networks for Session-based Recommendation (SIGIR 2020).
- SGNN-HN from Pan et al.: Star Graph Neural Networks for Session-based Recommendation (CIKM 2020).
Social Recommendation:
Note that datasets for social recommendation methods can be downloaded from Social-Datasets.
- DiffNet from Wu et al.: A Neural Influence Diffusion Model for Social Recommendation (SIGIR 2019).
- MHCN from Yu et al.: Self-Supervised Multi-Channel Hypergraph Convolutional Network for Social Recommendation (WWW 2021).
- SEPT from Yu et al.: Socially-Aware Self-Supervised Tri-Training for Recommendation (KDD 2021).
We carefully tune the hyper-parameters of the implemented models of each research field and release the corresponding leaderboards for reference:
- General recommendation on
MovieLens-1M
dataset [link]; - Sequential recommendation on
Diginetica
dataset [link]; - Social recommendation on
LastFM
dataset [link];
With the sequential/session graphs preprocessing technique, as well as efficient GNN layers, we speed up the training process of our sequential recommenders a lot.
RecBole-GNN is initially developed and maintained by members from RUCAIBox, the main developers are Yupeng Hou (@hyp1231), Lanling Xu (@Sherry-XLL) and Changxin Tian (@ChangxinTian). We also thank Xinzhou (@downeykking), Wanli (@wending0417), and Jingqi (@Tokkiu) for their great contribution! ❤️
The implementation is based on the open-source recommendation library RecBole. RecBole-GNN is part of RecBole 2.0 now!
Please cite the following paper as the reference if you use our code or processed datasets.
@inproceedings{zhao2022recbole2,
author={Wayne Xin Zhao and Yupeng Hou and Xingyu Pan and Chen Yang and Zeyu Zhang and Zihan Lin and Jingsen Zhang and Shuqing Bian and Jiakai Tang and Wenqi Sun and Yushuo Chen and Lanling Xu and Gaowei Zhang and Zhen Tian and Changxin Tian and Shanlei Mu and Xinyan Fan and Xu Chen and Ji-Rong Wen},
title={RecBole 2.0: Towards a More Up-to-Date Recommendation Library},
booktitle = {{CIKM}},
year={2022}
}
@inproceedings{zhao2021recbole,
author = {Wayne Xin Zhao and Shanlei Mu and Yupeng Hou and Zihan Lin and Yushuo Chen and Xingyu Pan and Kaiyuan Li and Yujie Lu and Hui Wang and Changxin Tian and Yingqian Min and Zhichao Feng and Xinyan Fan and Xu Chen and Pengfei Wang and Wendi Ji and Yaliang Li and Xiaoling Wang and Ji{-}Rong Wen},
title = {RecBole: Towards a Unified, Comprehensive and Efficient Framework for Recommendation Algorithms},
booktitle = {{CIKM}},
pages = {4653--4664},
publisher = {{ACM}},
year = {2021}
}