RecBole-GNN
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.
Highlights
- 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.
Requirements
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].
Quick-Start
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]
Implemented Models
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).
- 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).
- SimGCL from Yu et al.: Are Graph Augmentations Necessary? Simple Graph Contrastive Learning for Recommendation (SIGIR 2022).
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).
Result
Leaderboard
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];
Efficiency
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.
The Team
RecBole-GNN is developed and maintained by members from RUCAIBox, the main developers are Yupeng Hou (@hyp1231), Lanling Xu (@Sherry-XLL) and Changxin Tian (@ChangxinTian).
Acknowledgement
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}
}