Skip to content

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

License

Notifications You must be signed in to change notification settings

zputech/beta-recsys

 
 

Repository files navigation

Beta-RecSys

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.

Details of each folder in this repository are

  • beta_rec: data processing, model definition and utility functions
  • configs: configurations of system information, data splitting and automatic hyper-parameter tuning
  • docs: documentation for the Beta-RecSys system
  • examples: practices of training various neural recommendation models
  • tests: testing codes with the Pytest framework

For a more detailed overview of the repository, please see the documents at the wiki page.

Install and Uninstall

Currently we are supporting Python 3 and PyTorch.

Install Beta-RecSys using setup.py from github

  1. Install Anaconda with Python >= 3.6. Miniconda is a quick way to get started.

  2. Install and record the installed files

    $ git clone https://github.com/beta-team/beta-recsys.git
    $ cd $project_path$
    $ python setup.py install --record files.txt
    

Uninstall Beta-RecSys completely

To uninstall the Beta-RecSys

$ cd $project_path$
$ xargs rm -rf < files.txt

Get Started

  1. To train a Neural Graph Collaborative Filtering with default configurations, you can run
python examples/train_ngcf.py

If you want to change training configurations, such as the used dataset and the range of hyper-paramters, you can change the default NGCF configuration file or create a new one.

  1. To try new datasets, you can ceate a new dataset script in beta-rec/datasets by referring to how the movielens dataset is dealt with.
  2. To define a new model, you can ceate a new model script in beta-rec/models by referring to how the NGCF model is defined.

Note - To conveniently check system information during model running, we implement funcnationlities of output logging and system monitoring in beta-rec/utils.

Models

The following is a list of recommender models currently available in the repository.

Contributing

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

Citation

If you use Beta-RecSys in you research, we would appreciate citations to the following paper:

  • Zaiqiao Meng, Richard McCreadie, Craig Macdonald, Iadh Ounis, Shangsong Liang, Siwei Liu, Guangtao Zeng, Junhua Liang, Yucheng Liang, Qiang Zhang, Yaxiong Wu, Xi Wang. BETA-Rec: Build, Evaluate and Tune Automated Recommender Systems. RecSys 2020.

About

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

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Python 100.0%