Summary of the Recommendation Algorithms

Elliot integrates, to date, 50 recommendation models partitioned into two sets. The first set includes 38 popular models implemented in at least two of frameworks reviewed in this work (i.e., adopting a framework-wise popularity notion).

All the recommendation models inherit from a common abstract class:

base_recommender_model.BaseRecommenderModel(…)

The majority of the recommendation models uses a Mixin:

recommender_utils_mixin.RecMixin()

  • Adversarial Learning

adversarial.AMF.AMF.AMF(data, config, …)

Adversarial Matrix Factorization

adversarial.AMR.AMR.AMR(data, config, …)

Adversarial Multimedia Recommender

  • Algebric

algebric.slope_one.slope_one.SlopeOne(data, …)

Slope One Predictors for Online Rating-Based Collaborative Filtering

  • Autoencoders

autoencoders.dae.multi_dae.MultiDAE(data, …)

Collaborative denoising autoencoder

autoencoders.vae.multi_vae.MultiVAE(data, …)

Variational Autoencoders for Collaborative Filtering

  • Content-Based

content_based.VSM.vector_space_model.VSM(…)

Vector Space Model

  • Generative Adversarial Networks (GANs)

gan.IRGAN.irgan.IRGAN(data, config, params, …)

IRGAN: A Minimax Game for Unifying Generative and Discriminative Information Retrieval Models

gan.CFGAN.cfgan.CFGAN(data, config, params, …)

CFGAN: A Generic Collaborative Filtering Framework based on Generative Adversarial Networks

  • Graph-based

graph_based.lightgcn.LightGCN.LightGCN(data, …)

LightGCN: Simplifying and Powering Graph Convolution Network for Recommendation

graph_based.ngcf.NGCF.NGCF(data, config, …)

Neural Graph Collaborative Filtering

  • Knowledge-aware

knowledge_aware.kaHFM.kahfm.KaHFM(data, …)

Knowledge-aware Hybrid Factorization Machines

knowledge_aware.kaHFM_batch.kahfm_batch.KaHFMBatch(…)

Knowledge-aware Hybrid Factorization Machines (Tensorflow Batch Variant)

knowledge_aware.kahfm_embeddings.kahfm_embeddings.KaHFMEmbeddings(…)

Knowledge-aware Hybrid Factorization Machines (Tensorflow Embedding-based Variant)

  • Latent Factor Models

latent_factor_models.BPRMF.BPRMF.BPRMF(data, …)

Bayesian Personalized Ranking with Matrix Factorization

latent_factor_models.BPRMF_batch.BPRMF_batch.BPRMF_batch(…)

Batch Bayesian Personalized Ranking with Matrix Factorization

latent_factor_models.BPRSlim.bprslim.BPRSlim(…)

BPR Sparse Linear Methods

latent_factor_models.CML.CML.CML(data, …)

Collaborative Metric Learning

latent_factor_models.FFM.field_aware_factorization_machine.FFM(…)

Field-aware Factorization Machines

latent_factor_models.FISM.FISM.FISM(data, …)

FISM: Factored Item Similarity Models

latent_factor_models.FM.factorization_machine.FM(…)

Factorization Machines

latent_factor_models.FunkSVD.funk_svd.FunkSVD(…)

For further details, please refer to the paper

latent_factor_models.LogisticMF.logistic_matrix_factorization.LogisticMatrixFactorization(…)

Logistic Matrix Factorization

latent_factor_models.MF.matrix_factorization.MF(…)

Matrix Factorization

latent_factor_models.NonNegMF.non_negative_matrix_factorization.NonNegMF(…)

Non-Negative Matrix Factorization

latent_factor_models.PMF.probabilistic_matrix_factorization.PMF(…)

Probabilistic Matrix Factorization

latent_factor_models.PureSVD.pure_svd.PureSVD(…)

For further details, please refer to the paper

latent_factor_models.Slim.slim.Slim(data, …)

Train a Sparse Linear Methods (SLIM) item similarity model.

latent_factor_models.SVDpp.svdpp.SVDpp(data, …)

SVD++

latent_factor_models.WRMF.wrmf.WRMF(data, …)

Weighted XXX Matrix Factorization

  • Artificial Neural Networks

neural.ConvMF.convolutional_matrix_factorization.ConvMF(…)

Convolutional Matrix Factorization for Document Context-Aware Recommendation

neural.ConvNeuMF.convolutional_neural_matrix_factorization.ConvNeuMF(…)

Outer Product-based Neural Collaborative Filtering

neural.DeepFM.deep_fm.DeepFM(data, config, …)

DeepFM: A Factorization-Machine based Neural Network for CTR Prediction

neural.DMF.deep_matrix_factorization.DMF(…)

Deep Matrix Factorization Models for Recommender Systems.

neural.GeneralizedMF.generalized_matrix_factorization.GMF(…)

Neural Collaborative Filtering

neural.ItemAutoRec.itemautorec.ItemAutoRec(…)

AutoRec: Autoencoders Meet Collaborative Filtering (Item-based)

neural.NAIS.nais.NAIS(data, config, params, …)

NAIS: Neural Attentive Item Similarity Model for Recommendation

neural.NeuMF.neural_matrix_factorization.NeuMF(…)

Neural Collaborative Filtering

neural.NFM.neural_fm.NFM(data, config, …)

Neural Factorization Machines for Sparse Predictive Analytics

neural.NPR.neural_personalized_ranking.NPR(…)

Neural Personalized Ranking for Image Recommendation (Model without visual features)

neural.UserAutoRec.userautorec.UserAutoRec(…)

AutoRec: Autoencoders Meet Collaborative Filtering (User-based)

neural.WideAndDeep.wide_and_deep.WideAndDeep(…)

Wide & Deep Learning for Recommender Systems

  • Neighborhood-based Models

knn.item_knn.item_knn.ItemKNN(data, config, …)

Amazon.com recommendations: item-to-item collaborative filtering

knn.user_knn.user_knn.UserKNN(data, config, …)

GroupLens: An Open Architecture for Collaborative Filtering of Netnews

knn.attribute_item_knn.attribute_item_knn.AttributeItemKNN(…)

Attribute Item-kNN proposed in MyMediaLite Recommender System Library

knn.attribute_user_knn.attribute_user_knn.AttributeUserKNN(…)

Attribute User-kNN proposed in MyMediaLite Recommender System Library

  • Unpersonalized Recommenders

unpersonalized.most_popular.most_popular.MostPop(…)

unpersonalized.random_recommender.Random.Random(…)

  • Visual Models

visual_recommenders.ACF.ACF.ACF(data, …)

Attentive Collaborative Filtering: Multimedia Recommendation with Item- and Component-Level Attention

visual_recommenders.DeepStyle.DeepStyle.DeepStyle(…)

DeepStyle: Learning User Preferences for Visual Recommendation

visual_recommenders.DVBPR.DVBPR.DVBPR(data, …)

Visually-Aware Fashion Recommendation and Design with Generative Image Models

visual_recommenders.VBPR.VBPR.VBPR(data, …)

VBPR: Visual Bayesian Personalized Ranking from Implicit Feedback

visual_recommenders.VNPR.VNPR.VNPR(data, …)

Visual Neural Personalized Ranking for Image Recommendation

adversarial.AMR.AMR.AMR(data, config, …)

Adversarial Multimedia Recommender