All Projects → makgyver → Rectorch

makgyver / Rectorch

Licence: mit
rectorch is a pytorch-based framework for state-of-the-art top-N recommendation

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Rectorch

Recoder
Large scale training of factorization models for Collaborative Filtering with PyTorch
Stars: ✭ 46 (-61.98%)
Mutual labels:  recommender-system, autoencoder, collaborative-filtering, matrix-factorization
Focal Frequency Loss
Focal Frequency Loss for Generative Models
Stars: ✭ 141 (+16.53%)
Mutual labels:  generative-adversarial-network, autoencoder, variational-autoencoder
Elliot
Comprehensive and Rigorous Framework for Reproducible Recommender Systems Evaluation
Stars: ✭ 49 (-59.5%)
Mutual labels:  recommender-system, collaborative-filtering, matrix-factorization
svae cf
[ WSDM '19 ] Sequential Variational Autoencoders for Collaborative Filtering
Stars: ✭ 38 (-68.6%)
Mutual labels:  collaborative-filtering, recommender-system, variational-autoencoder
Repo 2017
Python codes in Machine Learning, NLP, Deep Learning and Reinforcement Learning with Keras and Theano
Stars: ✭ 1,123 (+828.1%)
Mutual labels:  generative-adversarial-network, autoencoder, variational-autoencoder
Implicit
Fast Python Collaborative Filtering for Implicit Feedback Datasets
Stars: ✭ 2,569 (+2023.14%)
Mutual labels:  recommender-system, collaborative-filtering, matrix-factorization
Rsparse
Fast and accurate machine learning on sparse matrices - matrix factorizations, regression, classification, top-N recommendations.
Stars: ✭ 145 (+19.83%)
Mutual labels:  recommender-system, collaborative-filtering, matrix-factorization
Daisyrec
A developing recommender system in pytorch. Algorithm: KNN, LFM, SLIM, NeuMF, FM, DeepFM, VAE and so on, which aims to fair comparison for recommender system benchmarks
Stars: ✭ 280 (+131.4%)
Mutual labels:  recommender-system, collaborative-filtering, matrix-factorization
Awesome-Machine-Learning-Papers
📖Notes and remarks on Machine Learning related papers
Stars: ✭ 35 (-71.07%)
Mutual labels:  collaborative-filtering, matrix-factorization, recommender-system
recommender system with Python
recommender system tutorial with Python
Stars: ✭ 106 (-12.4%)
Mutual labels:  collaborative-filtering, matrix-factorization, recommender-system
Collaborative Deep Learning For Recommender Systems
The hybrid model combining stacked denoising autoencoder with matrix factorization is applied, to predict the customer purchase behavior in the future month according to the purchase history and user information in the Santander dataset.
Stars: ✭ 60 (-50.41%)
Mutual labels:  recommender-system, autoencoder, collaborative-filtering
Neurec
Next RecSys Library
Stars: ✭ 731 (+504.13%)
Mutual labels:  autoencoder, collaborative-filtering, variational-autoencoder
Polara
Recommender system and evaluation framework for top-n recommendations tasks that respects polarity of feedbacks. Fast, flexible and easy to use. Written in python, boosted by scientific python stack.
Stars: ✭ 205 (+69.42%)
Mutual labels:  recommender-system, collaborative-filtering, matrix-factorization
Recommendation.jl
Building recommender systems in Julia
Stars: ✭ 42 (-65.29%)
Mutual labels:  collaborative-filtering, matrix-factorization, recommender-system
Cornac
A Comparative Framework for Multimodal Recommender Systems
Stars: ✭ 308 (+154.55%)
Mutual labels:  recommender-system, collaborative-filtering, matrix-factorization
Recsys2019 deeplearning evaluation
This is the repository of our article published in RecSys 2019 "Are We Really Making Much Progress? A Worrying Analysis of Recent Neural Recommendation Approaches" and of several follow-up studies.
Stars: ✭ 780 (+544.63%)
Mutual labels:  recommender-system, collaborative-filtering, matrix-factorization
Consimilo
A Clojure library for querying large data-sets on similarity
Stars: ✭ 54 (-55.37%)
Mutual labels:  recommender-system, collaborative-filtering
Gorse
An open source recommender system service written in Go
Stars: ✭ 1,148 (+848.76%)
Mutual labels:  recommender-system, collaborative-filtering
Codeslam
Implementation of CodeSLAM — Learning a Compact, Optimisable Representation for Dense Visual SLAM paper (https://arxiv.org/pdf/1804.00874.pdf)
Stars: ✭ 64 (-47.11%)
Mutual labels:  autoencoder, variational-autoencoder
Rankfm
Factorization Machines for Recommendation and Ranking Problems with Implicit Feedback Data
Stars: ✭ 71 (-41.32%)
Mutual labels:  recommender-system, collaborative-filtering

logo

Build Status PyPi DOI Coverage Status docs version issues license

rectorch is a pytorch-based framework for top-N recommendation. It includes several state-of-the-art top-N recommendation approaches implemented in pytorch.

Included methods

The latest PyPi release contains the following methods.

Name Description Ref.
MultiDAE Denoising Autoencoder for Collaborative filtering with Multinomial prior [1]
MultiVAE Variational Autoencoder for Collaborative filtering with Multinomial prior [1]
CMultiVAE Conditioned Variational Autoencoder [2]
CFGAN Collaborative Filtering with Generative Adversarial Networks [3]
EASE Embarrassingly shallow autoencoder for sparse data [4]
ADMM_Slim ADMM SLIM: Sparse Recommendations for Many Users [5]
SVAE Sequential Variational Autoencoders for Collaborative Filtering [6]

Getting started

Installation

rectorch is available on PyPi and it can be installed using pip

pip3 install rectorch

Requirements

If you install rectorch by cloning this repository make sure to install all the requirements.

pip3 install -r requirements.txt

Architecture

rectorch is composed of 7 main modules summarized in the following.

Name Scope
configuration Contains useful classes to manage the configuration files.
data Manages the reading, writing and loading of the data sets
evaluation Contains utility functions to evaluate recommendation engines.
metrics Contains the definition of the evaluation metrics.
models Includes the training algorithm for the implemented recommender systems.
nets Contains definitions of the neural newtork architectures used by the implemented approaches.
samplers Contains definitions of sampler classes useful when training neural network-based models.

Tutorials

(To be released soon)

We will soon release a series of python notebooks with examples on how to train and evaluate recommendation methods using rectorch.

Documentation

The full documentation of the rectorch APIs is available at https://makgyver.github.io/rectorch/.

Known issues

The documentation has rendering issues on 4K display. To "fix" the problem zoom in ([Ctrl][+], [Cmd][+]) the page. Thanks for your patience, it will be fixed soon.

Testing

The easiest way to test rectorch is using pytest.

git clone https://github.com/makgyver/rectorch.git
cd rectorch/tests
pytest

You can also check the coverage using coverage. From the tests folder:

coverage run -m pytest  
coverage report -m

Dev branch

rectorch is developed using a test-driven approach. The master branch (i.e., the pypi release) is the up-to-date version of the framework where each module has been fully tested. However, new untested or under development features are available in the dev branch. The dev version of rectorch can be used by cloning the branch.

git clone -b dev https://github.com/makgyver/rectorch.git
cd rectorch
pip3 install -r requirements.txt

Work in progress

The following features/changes will be soon released:

  • Splitting of the models module in more sub-modules on the basis of the models' characteristics;
  • Introduction of a "global" setting/configuration for the framework;
  • Adding optimizer's parameters in the configuration;
  • Including horizontal splitting and leave-one-out in DataProcessing.

Suggestions

This framework is constantly growing and the implemented methods are chosen on the basis of the need of our research activity. We plan to include as many state-of-the-art methods as soon as we can, but if you have any specific request feel free to contact us by opening an issue.

Citing this repo

If you are using rectorch in your work, please consider citing this repository.

@misc{rectorch,
    author = {Mirko Polato},
    title = {{rectorch: pytorch-based framework for top-N recommendation}},
    year = {2020},
    month = {may},
    doi = {10.5281/zenodo.3841898},
    version = {0.0.9-beta0},
    publisher = {Zenodo},
    url = {https://doi.org/10.5281/zenodo.153841898991}
}

References

[1] Dawen Liang, Rahul G. Krishnan, Matthew D. Hoffman, and Tony Jebara. 2018. Variational Autoencoders for Collaborative Filtering. In Proceedings of the 2018 World Wide Web Conference (WWW ’18). International World Wide Web Conferences Steering Committee, Republic and Canton of Geneva, CHE, 689–698. DOI: https://doi.org/10.1145/3178876.3186150

[2] Tommaso Carraro, Mirko Polato and Fabio Aiolli. Conditioned Variational Autoencoder for top-N item recommendation, 2020. arXiv pre-print: https://arxiv.org/abs/2004.11141

[3] Dong-Kyu Chae, Jin-Soo Kang, Sang-Wook Kim, and Jung-Tae Lee. 2018. CFGAN: A Generic Collaborative Filtering Framework based on Generative Adversarial Networks. In Proceedings of the 27th ACM International Conference on Information and Knowledge Management (CIKM ’18). Association for Computing Machinery, New York, NY, USA, 137–146. DOI: https://doi.org/10.1145/3269206.3271743

[4] Harald Steck. 2019. Embarrassingly Shallow Autoencoders for Sparse Data. In The World Wide Web Conference (WWW ’19). Association for Computing Machinery, New York, NY, USA, 3251–3257. DOI: https://doi.org/10.1145/3308558.3313710

[5] Harald Steck, Maria Dimakopoulou, Nickolai Riabov, and Tony Jebara. 2020. ADMM SLIM: Sparse Recommendations for Many Users. In Proceedings of the 13th International Conference on Web Search and Data Mining (WSDM ’20). Association for Computing Machinery, New York, NY, USA, 555–563. DOI: https://doi.org/10.1145/3336191.3371774

[6] Noveen Sachdeva, Giuseppe Manco, Ettore Ritacco, and Vikram Pudi. 2019. Sequential Variational Autoencoders for Collaborative Filtering. In Proceedings of the Twelfth ACM International Conference on Web Search and Data Mining (WSDM ’19). Association for Computing Machinery, New York, NY, USA, 600–608. DOI: https://doi.org/10.1145/3289600.3291007

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].