RecBole-MetaRec is an extended module for RecBole, which aims to help researchers to compare and develop their own models in the meta learning recommendation field.
This module is totally developed based on RecBole by adding extended classes and functions, without modifying any codes of RecBole cores. In addition, we built up extended modules with Pytorch.
This module can mainly provide researchers the following advantages:
- Conveniently develop their own meta learning recommendation models.
- Conveniently learn and compare meta learning recommendation models that we have implemented.
- Enjoy advantages and features of RecBole.
Moreover, we provide a document in detail for researchers.
Document: https://recbole-metarec-doc.readthedocs.io/en/latest/
Note: Before starting, it is strongly recommended to realize how RecBole works.
Figure: RecBole-MetaRec Overall Architecture
The contributions are briefly listed as follows:
- We extend
MetaDataset
fromDataset
to split dataset by 'task'. - We extend
MetaDataLoader
fromAbstractDataLoader
to transform dataset into task form. - We extend
MetaRecommender
fromAbstractRecommender
to provide a base recommender for implementing meta learning model. - We extend
MetaTrainer
fromTrainer
to provide a base trainer for implementing meta learning training process. - We extend
MetaCollector
fromCollector
to collect data for evaluation in meta learning circumstance. - We implement
MetaUtils
with some useful toolkits for meta learning. - We implement most of the models in the field of meta learning recommendation for user cold start and conduct envaluations in unified settings.
python>=3.7.0
recbole>=1.1.1
numpy>=1.20.3
torch>=1.11.0
tqdm>=4.62.3
After the package installation process, you can run the quickstart code with:
python quickstart.py
Also, you can also change the model and the dataset by modifying modelName
and datasetName
in quickstart.py
.
We list the models that we have implemented up to now:
- MeLU from Hoyeop Lee et al.: MeLU: Meta-Learned User Preference Estimator for Cold-Start Recommendation (SIGKDD 2019). Note: We implement both MeLU with FOMAML and Full MAML, but we conduct the evaluation with MeLU in FOMAML method.
- MAMO from Manqing Dong et al.: MAMO: Memory-Augmented Meta-Optimization for Cold-start Recommendation (SIGKDD 2020).
- TaNP from Xixun Lin et al.: Task-adaptive Neural Process for User Cold-Start Recommendation (WWW 2021).
- LWA from Manasi Vartak et al.: A Meta-Learning Perspective on Cold-Start Recommendations for Items (NIPS 2017).
- NLBA from Manasi Vartak et al.: A Meta-Learning Perspective on Cold-Start Recommendations for Items (NIPS 2017).
- MetaEmb from Feiyang Pan et al.: Warm Up Cold-start Advertisements: Improving CTR Predictions via Learning to Learn ID Embeddings (SIGIR 2019).
- MWUF from Yongchun Zhu et al.: Learning to Warm Up Cold Item Embeddings for Cold-start Recommendation with Meta Scaling and Shifting Networks (SIGIR 2021).
We tune hyper-parameters of all the models that we have implemented and obtain the best hyper-parameters respectively.
- Results on MovieLens-100K dataset
- Results on MovieLens-1M dataset
- Results on BookCrossing dataset
RecBole-MetaRec is mainly developed by Zeyu Zhang (@nuster1128).
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}
}