/RecBole-GNN

Efficient and extensible GNNs enhanced recommender library based on RecBole.

Primary LanguagePythonMIT LicenseMIT

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.0.0
pyg>=2.0.4
pytorch>=1.7.0
python>=3.7.0

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:

Sequential Recommendation:

Social Recommendation:

Result

Leaderboard

We carefully tune the hyper-parameters of the implemented models of each research field and release the corresponding leaderboards for reference:

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.

Please cite the following paper as the reference if you use our code or processed datasets.

@inproceedings{zhao2021recbole,
  title={Recbole: Towards a unified, comprehensive and efficient framework for recommendation algorithms},
  author={Wayne Xin Zhao and Shanlei Mu and Yupeng Hou and Zihan Lin and Kaiyuan Li and Yushuo Chen and Yujie Lu and Hui Wang and Changxin Tian and Xingyu Pan 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},
  booktitle={{CIKM}},
  year={2021}
}