Skip to main content

Beta-RecSys: Build, Evaluate and Tune Automated Recommender Systems

Project description

Installation | Quick Start | Documentation | Contributing | Getting help | Citation|

Accord Project Logo

PyPI version Code Coverage CI Documentation Status GitHub Slack Status

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.

Installation

conda

If you use conda, you can install it with:

conda install beta-rec

pip

If you use pip, you can install it with:

pip install beta-rec

Quick Start

Downloading and Splitting Datasets

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)

Training model with MatrixFactorization

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.

Tuning Model Hyper-parameters

config = {
    "config_file":"../configs/mf_default.json",
    "tune":True,
}
tune_result = model.train(data)

Experiment with multiple models

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).

Models

The following is a list of recommender models currently available in the repository, or to be implemented soon.

General Models

Sequential Models

Recommendation Models with Auxiliary information

Baskets/Sessions

Knowledge Graph

If you want your model to be implemented by our maintenance team (or by yourself), please submit an issue following our community instruction.

Recent Changing Logs

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

Contributing

This project welcomes contributions and suggestions. Please make sure to read the Contributing Guide before creating a pull request.

Community meeting

  • Meeting time: Saturday (1:30 – 2:30pm UTC +0/9:30 – 10:30pm UTC +8), (start from 7 November 2020) Add Event
  • Meeting minutes: notes
  • Meeting recordings: [recording links]: Can be found in each meeting note (since Nov.7, 2020).

Discussion channels

  • Slack: Slack Status
  • Mailing list: TBC

Citation

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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

beta_rec-0.2.2.tar.gz (99.3 kB view hashes)

Uploaded Source

Built Distribution

beta_rec-0.2.2-py3-none-any.whl (143.7 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page