Package: beta-rec
|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 usingRay.InstallationcondaIf you use conda, you can install it with:condainstallbeta-recpipIf you use pip, you can install it with:pipinstallbeta-recDockerWe also provide docker image for you to run this project on any platform. You can use the image with:Pull image from Docker Hubdocker pull betarecsys/beta-recsys:latestStart a docker container with this image (Make sure the port 8888 is available on you local machine, or you can change the port in the command)docker run -ti --name beta-recsys -p 8888:8888 -d beta-recsysOpen Jupyter on a brower with this URL:http://localhost:8888Enterrootas the password for the notebook.Quick StartDownloading and Splitting Datasetsfrombeta_rec.datasets.movielensimportMovielens_100kfrombeta_rec.dataimportBaseDatadataset=Movielens_100k()split_dataset=dataset.load_leave_one_out(n_test=1)data=BaseData(split_dataset)Training model with MatrixFactorizationconfig={"config_file":"./configs/mf_default.json"}frombeta_rec.recommendersimportMatrixFactorizationmodel=MatrixFactorization(config)model.train(data)result=model.test(data.test[0])where a default config josn file./configs/mf_default.jsonwill be loaded for traning the model.Tuning Model Hyper-parametersconfig={"config_file":"../configs/mf_default.json","tune":True,}tune_result=model.train(data)Experiment with multiple modelsfrombeta_rec.recommendersimportMatrixFactorizationfrombeta_rec.experiment.experimentimportExperiment# Initialise recommenders with their default configuration fileconfig={"config_file":"configs/mf_default.json"}mf_1=MatrixFactorization(config)mf_2=MatrixFactorization(config)# Run experiments of the recommenders on the selected datasetExperiment(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).ModelsThe following is a list of recommender models currently available in the repository, or to be implemented soon.General ModelsModelPaperColabMFNeural Collaborative Filtering vs. Matrix Factorization Revisited, arXiv’ 2020GMFGeneralized Matrix Factorization, inNeural Collaborative Filtering, WWW 2017MLPMulti-Layer Perceptron, inNeural Collaborative Filtering, WWW 2017NCFNeural Collaborative Filtering,  WWW 2017CMNCollaborative memory network for recommendation systems,  SIGIR 2018NGCFNeural graph collaborative filtering, SIGIR 2019LightGCNLightGCN: Simplifying and Powering Graph Convolution Network for Recommendation, SIGIR 2020LCFGraph Convolutional Network for Recommendation with Low-pass Collaborative FiltersVAECFVariational autoencoders for collaborative filtering, WWW 2018Sequential ModelsModelPaperColabNARMNeural Attentive Session-based Recommendation, CIKM 2017CaserPersonalized Top-N Sequential Recommendation via Convolutional Sequence Embedding, WSDM 2018GRU4RecSession-based recommendations with recurrent neural networks, ICLR 2016SasRecSelf-attentive sequential recommendation. ICDM 2018MARankMulti-Order Attentive Ranking Model for Sequential Recommendation, AAAI 2019NextItnetA Simple Convolutional Generative Network for Next Item Recommendation, WSDM 2019BERT4RecBERT4Rec:Sequential recommendationwithbidirectional encoder representationsfromtransformer, CIKM 2019TiSASRecTime Interval Aware Self-Attention for Sequential Recommendation. WSDM'20Recommendation Models with Auxiliary informationBaskets/SessionsModelPaperColabTriple2vecRepresenting and recommending shopping baskets with complementarity, compatibility and loyalty, CIKM 2018VBCARVariational Bayesian Context-aware Representation for Grocery Recommendation,  arXiv’ 2019T-VBRKnowledge GraphKGAT:Kgat: Knowledge graph attention network for recommendation. SIGKDD 2019If you want your model to be implemented by our maintenance team (or by yourself), please submit an issue following our communityinstruction.Recent Changing Logs ---> Seeversion release.ContributingThis project welcomes contributions and suggestions. Please make sure to read theContributing Guidebefore creating a pull request.Community meetingMeeting time: Saturday (1:30 – 2:30pmUTC +0) / (9:30 – 10:30pmUTC +8)Meeting minutes:notesMeeting recordings: [recording links]: Can be found in eachmeeting note.Discussion channelsSlack:Mailing list: TBCCitationIf 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}
}