THUwangcy / ReChorus

“Chorus” of recommendation models: a light and flexible PyTorch framework for Top-K recommendation.
MIT License
559 stars 93 forks source link
framework pytorch ranking recommendation

logo

PyPI - Python Version License GitHub repo size arXiv

ReChorus2.0 is a modular and task-flexible PyTorch library for recommendation, especially for research purpose. It aims to provide researchers a flexible framework to implement various recommendation tasks, compare different algorithms, and adapt to diverse and highly-customized data inputs. We hope ReChorus2.0 can serve as a more convinient and user-friendly tool for researchers, so as to form a "Chorus" of recommendation tasks and algorithms.

The previous version of ReChorus can be found at ReChorus1.0

What's New in ReChorus2.0:

This framework is especially suitable for researchers to choose or implement desired experimental settings, and compare algorithms under the same setting. The characteristics of our framework can be summarized as follows:

Structure

Generally, ReChorus decomposes the whole process into three modules:

logo

Requirements & Getting Started

See in the doc for Requirements & Getting Started.

Tasks & Settings

The tasks & settings are listed below

Tasks Runner Metrics Loss Functions Reader BaseModel Models Model Modes
Top-k Recommendation BaseRunner HitRate NDCG BPR BaseReader BaseModel.GeneralModel general ''
SeqReader BaseModel.SequentialModel sequential ''
ContextReader BaseContextModel.ContextModel context 'TopK'
CTR Prediction CTRRunner AUC Logloss BPR, BCE ContextReader BaseContextModel.ContextCTRModel context 'CTR'
Impression-based Ranking ImpressionRunner HitRate NDCG MAP List-level BPR, Listnet loss, Softmax cross entropy loss, Attention rank ImpressionReader BaseImpressionModel.ImpressionModel general 'Impression'
ImpressionSeqReader BaseImpressionModel.ImpressionSeqModel sequential 'Impression'
ImpressionReader BaseRerankerModel.RerankModel reranker 'General'
ImpressionSeqReader BaseRerankerModel.RerankSeqModel reranker 'Sequential'

Arguments

See in the doc for Main Arguments.

Models

See in the doc for Supported Models.

Experimental results and corresponding configurations are shown in Demo Script Results.

Citation

If you find ReChorus is helpful to your research, please cite either of the following papers. Thanks!

@article{li2024rechorus2,
  title={ReChorus2. 0: A Modular and Task-Flexible Recommendation Library},
  author={Li, Jiayu and Li, Hanyu and He, Zhiyu and Ma, Weizhi and Sun, Peijie and Zhang, Min and Ma, Shaoping},
  journal={arXiv preprint arXiv:2405.18058},
  year={2024}
}

@inproceedings{wang2020make,
  title={Make it a chorus: knowledge-and time-aware item modeling for sequential recommendation},
  author={Wang, Chenyang and Zhang, Min and Ma, Weizhi and Liu, Yiqun and Ma, Shaoping},
  booktitle={Proceedings of the 43rd International ACM SIGIR Conference on Research and Development in Information Retrieval},
  pages={109--118},
  year={2020}
}
@article{王晨阳2021rechorus,
  title={ReChorus: 一个综合, 高效, 易扩展的轻量级推荐算法框架},
  author={王晨阳 and 任一 and 马为之 and 张敏 and 刘奕群 and 马少平},
  journal={软件学报},
  volume={33},
  number={4},
  pages={0--0},
  year={2021}
}

This is also our public implementation for the following papers (codes and datasets to reproduce the results can be found at corresponding branch):

git clone -b SIGIR20 https://github.com/THUwangcy/ReChorus.git
git clone -b TOIS21 https://github.com/THUwangcy/ReChorus.git
git clone -b TOIS22 https://github.com/THUwangcy/ReChorus.git
git clone -b CIKM22 https://github.com/THUwangcy/ReChorus.git

Contact

ReChorus 1.0: Chenyang Wang (THUwangcy@gmail.com)

ReChorus 2.0: Jiayu Li (lijiayu997@gmail.com), Hanyu Li (l-hy12@outlook.com)