Giter Site home page Giter Site logo

recbole-gnn's Introduction

RecBole-GNN


Updates:


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 our recbole1.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:

Sequential Recommendation:

Social Recommendation:

Note that datasets for social recommendation methods can be downloaded from Social-Datasets.

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 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! ❤️

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}
}

recbole-gnn's People

Contributors

hyp1231 avatar sherry-xll avatar downeykking avatar changxintian avatar tokkiu avatar wanliyoung avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.