RecBole-Debias is a toolkit built upon RecBole for reproducing and developing debiased recommendation algorithms.
-
Unified
Unified framework, which includes several algorithms for different kinds of biases. Meanwhile, three datasets in which the distribution of training set and test set is different are provided for evaluation.
-
Adaptive
Adaptive to many base recommendation models. For simplicity, the current implementation is only based on MF model.
-
Closely
Closely related to Recbole. The toolkit fully adopts the functions of Recbole, except that certain algorithms need to design unique components like trainer.
python>=3.7.0
pytorch>=1.7.0
recbole>=1.0.1
With the source code, you can use the provided script for initial usage of our library:
python run_recbole_debias.py
If you want to change the models or datasets, just run the script by setting additional command parameters:
python run_recbole_debias.py -m [model] -d [dataset] -c [config_files]
We list currently supported models according to category:
Base Model:
- MF from Koren et al.: Matrix factorization techniques for recommender systems (Computer 2009).
Selection Bias:
- MF-IPS from Schnabel et al.: Recommendations as Treatments: Debiasing Learning and Evaluation (ICML 2016).
Popularity Bias:
- PDA from Zhang et al.: Causal intervention for leveraging popularity bias in recommendation (SIGIR 2021).
- MACR from Wei et al.: Model-Agnostic Counterfactual Reasoning for Eliminating Popularity Bias in Recommender System (KDD 2021).
- DICE from Zheng et al.: Disentangling User Interest and Conformity for Recommendation with Causal Embedding (WWW 2021).
- CausE from Bonner et al.: Causal Embeddings for Recommendation (RecSys 2018).
Exposure Bias:
- Rel-MF from Yuta et al.: Unbiased Recommender Learning from Missing-Not-At-Random Implicit Feedback (WSDM 2020).
The datasets used can be downloaded from Datasets Link.
- Details on
Yahoo!R3
dataset; - Details on
KuaiRec
dataset; - Details on
MovieLens-100k
dataset;
RecBole-Debias is developed and maintained by members from RUCAIBox, the main developers is Jingsen Zhang (@Jingsen Zhang).
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}
}
@inproceedings{recbole[2.0],
title={RecBole 2.0: Towards a More Up-to-Date Recommendation Library},
author={Zhao, Wayne Xin and Hou, Yupeng and Pan, Xingyu and Yang, Chen and Zhang, Zeyu and Lin, Zihan and Zhang, Jingsen and Bian, Shuqing and Tang, Jiakai and Sun, Wenqi and others},
booktitle={Proceedings of the 31st ACM International Conference on Information \& Knowledge Management},
pages={4722--4726},
year={2022}
}