Installation | Quick Start | Documentation | Contributing | Getting help | Citation|
Beta-RecSys an open source project for Building, Evaluating and Tuning Automated Recommender Systems. Beta-RecSys aims to provide a practical data toolkit for building end-to-end recommendation systems in a standardized way. It provided means for dataset preparation and splitting using common strategies, a generalized model engine for implementing recommender models using Pytorch with a lot of models available out-of-the-box, as well as a unified training, validation, tuning and testing pipeline. Furthermore, Beta-RecSys is designed to be both modular and extensible, enabling new models to be quickly added to the framework. It is deployable in a wide range of environments via pre-built docker containers and supports distributed parameter tuning using Ray.
If you use conda, you can install it with:
conda install beta-rec
If you use pip, you can install it with:
pip install beta-rec
from beta_rec.datasets.movielens import Movielens_100k
from beta_rec.data import BaseData
dataset = Movielens_100k()
split_dataset = dataset.load_leave_one_out(n_test=1)
data = BaseData(split_dataset)
config = {
"config_file":"./configs/mf_default.json"
}
from beta_rec.recommenders import MatrixFactorization
model = MatrixFactorization(config)
model.train(data)
result = model.test(data.test[0])
where a default config josn file ./configs/mf_default.json will be loaded for traning the model.
config = {
"config_file":"../configs/mf_default.json",
"tune":True,
}
tune_result = model.train(data)
from beta_rec.recommenders import MatrixFactorization
from beta_rec.experiment.experiment import Experiment
# Initialise recommenders with their default configuration file
config = {
"config_file":"configs/mf_default.json"
}
mf_1 = MatrixFactorization(config)
mf_2 = MatrixFactorization(config)
# Run experiments of the recommenders on the selected dataset
Experiment(
datasets=[data],
models=[mf_1, mf_2],
).run()
where the model will tune the hyper-parameters according to the specifed tuning scheme (e.g. the default for MF).
The following is a list of recommender models currently available in the repository, or to be implemented soon.
- GMF: Generalized Matrix Factorization, in Neural Collaborative Filtering, WWW 2017
- MLP: Multi-Layer Perceptron, in Neural Collaborative Filtering, WWW 2017
- NCF: Neural Collaborative Filtering, WWW 2017
- CMN: Collaborative memory network for recommendation systems, SIGIR 2018
- VAECF: Variational autoencoders for collaborative filtering, WWW 2018
- NGCF: Neural graph collaborative filtering, SIGIR 2019
- LightGCN: LightGCN: Simplifying and Powering Graph Convolution Network for Recommendation, SIGIR 2020
- MF: Neural Collaborative Filtering vs. Matrix Factorization Revisited, arXiv’ 2020
- NARM: Neural Attentive Session-based Recommendation, CIKM 2017
- GRU4Rec: Session-based recommendations with recurrent neural networks, ICLR 2016
- SasRec:Self-attentive sequential recommendation. ICDM 2018
- BERT4Rec: BERT4Rec: Sequential recommendation with bidirectional encoder representations from transformer, CIKM 2019
- TiSASRec: Time Interval Aware Self-Attention for Sequential Recommendation. WWW 2020
- Triple2vec: Representing and recommending shopping baskets with complementarity, compatibility and loyalty, CIKM 2018
- VBCAR: Variational Bayesian Context-aware Representation for Grocery Recommendation, arXiv’ 2019
- KGAT: Kgat: Knowledge graph attention network for recommendation. SIGKDD 2019
If you want your model to be implemented by our maintenance team (or by yourself), please submit an issue following our community instruction.
Version v0.2.2(2020-10-25)
- Add Amazon Reviews datasets --> link
- New API for Recommenders. --> notebook example
- Move the data filtering process to the main dataset classes. -->Usage
- New feature for experiment --> Usage
Version v0.2.1(2020-09-24)
- add Dockefile
- update experiment
- update dataset
This project welcomes contributions and suggestions. Please make sure to read the Contributing Guide before creating a pull request.
- Meeting time: Saturday (1:30 – 2:30pm UTC +0/9:30 – 10:30pm UTC +8), (start from 7 November 2020)⋅
- Meeting minutes: notes
- Meeting recordings: [recording links]: Can be found in each meeting note (since Nov.7, 2020).
If you use Beta-RecSys in you research, we would appreciate citations to the following paper:
@inproceedings{meng2020beta,
title={BETA-Rec: Build, Evaluate and Tune Automated Recommender Systems},
author={Meng, Zaiqiao and McCreadie, Richard and Macdonald, Craig and Ounis, Iadh and Liu, Siwei and Wu, Yaxiong and Wang, Xi and Liang, Shangsong and Liang, Yucheng and Zeng, Guangtao and others},
booktitle={Fourteenth ACM Conference on Recommender Systems},
pages={588--590},
year={2020}
}