Code Monkey home page Code Monkey logo

recbole-cdr's Introduction


RecBole-CDR

License

中文版

RecBole-CDR is a library built upon RecBole for reproducing and developing cross-domain recommendation algorithms.

Highlights

  • Automatic and compatible data processing for cross-domain recommendation: Our library designs a unified data structure for cross-domain recommendation, which inherits all the data pre-processing strategies in RecBole. The overlapped data in different domains can be matched automatically.
  • Flexible and customized model training strategies: Our library provides four basic training modes for cross-domain recommendation, which can be combined arbitrarily by users. It is also easy to customize training strategy in original way.
  • Extensive cross-domain recommendation algorithms: Based on unified data structure and flexible training strategies, several cross-domain recommendation algorithms are implemented and compared with others fairly.

Requirements

recbole==1.0.1
torch>=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_cdr.py

This script will run the CMF model with ml-1m as source domain dataset and ml-100k as target domain dataset.

If you want to change the models, just run the script by setting additional command parameters:

python run_recbole_cdr.py --model=[model]

Implemented Models

We list currently supported Cross-Domain Recommendation models:

Result

Dataset

We collected and organized three pairs of datasets with one source domain and one target domain which are commonly used in cross-domain recommendation. Here we provide these datasets for reference:

Hyper-parameters

We carefully tune the hyper-parameters of the implemented models on these datasets and we provide these hyper-parameters here for reference:

  • Cross-domain-recommendation on Amazon datasets;
  • Cross-domain-recommendation on Book-Crossing datasets;
  • Cross-domain-recommendation on Douban datasets;

Contributing

Please let us know if you encounter a bug or have any suggestions by filing an issue.

We welcome all contributions from bug fixes to new features and extensions.

We expect all contributions discussed in the issue tracker and going through PRs.

The Team

RecBole-CDR is developed and maintained by members from RUCAIBox, the main developers are Zihan Lin (@linzihan-backforward), Gaowei Zhang (@Wicknight) and Shanlei Mu (@ShanleiMu).

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

recbole-cdr's People

Contributors

linzihan-backforward avatar wicknight 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.