Artificial Neural Networks

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

Summary

ConvMF.convolutional_matrix_factorization.ConvMF(…)

Convolutional Matrix Factorization for Document Context-Aware Recommendation

ConvNeuMF.convolutional_neural_matrix_factorization.ConvNeuMF(…)

Outer Product-based Neural Collaborative Filtering

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

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

DMF.deep_matrix_factorization.DMF(data, …)

Deep Matrix Factorization Models for Recommender Systems.

GeneralizedMF.generalized_matrix_factorization.GMF(…)

Neural Collaborative Filtering

ItemAutoRec.itemautorec.ItemAutoRec(data, …)

AutoRec: Autoencoders Meet Collaborative Filtering (Item-based)

NAIS.nais.NAIS(data, config, params, *args, …)

NAIS: Neural Attentive Item Similarity Model for Recommendation

NeuMF.neural_matrix_factorization.NeuMF(…)

Neural Collaborative Filtering

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

Neural Factorization Machines for Sparse Predictive Analytics

NPR.neural_personalized_ranking.NPR(data, …)

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

UserAutoRec.userautorec.UserAutoRec(data, …)

AutoRec: Autoencoders Meet Collaborative Filtering (User-based)

WideAndDeep.wide_and_deep.WideAndDeep(data, …)

Wide & Deep Learning for Recommender Systems

ConvMF

class elliot.recommender.neural.ConvMF.convolutional_matrix_factorization.ConvMF(data, config, params, *args, **kwargs)[source]

Bases: elliot.recommender.recommender_utils_mixin.RecMixin, elliot.recommender.base_recommender_model.BaseRecommenderModel

Convolutional Matrix Factorization for Document Context-Aware Recommendation

For further details, please refer to the paper

Parameters
  • embedding_size – Embedding dimension

  • lr – Learning rate

  • l_w – Regularization coefficient

  • l_b – Regularization coefficient of bias

  • cnn_channels – List of channels

  • cnn_kernels – List of kernels

  • cnn_strides – List of strides

  • dropout_prob – Dropout probability applied on the convolutional layers

To include the recommendation model, add it to the config file adopting the following pattern:

models:
  ConvMF:
    meta:
      save_recs: True
    epochs: 10
    embedding_size: 100
    lr: 0.001
    l_w: 0.005
    l_b: 0.0005
    cnn_channels: (1, 32, 32)
    cnn_kernels: (2,2)
    cnn_strides: (2,2)
    dropout_prob: 0

ConvNeuMF

class elliot.recommender.neural.ConvNeuMF.convolutional_neural_matrix_factorization.ConvNeuMF(data, config, params, *args, **kwargs)[source]

Bases: elliot.recommender.recommender_utils_mixin.RecMixin, elliot.recommender.base_recommender_model.BaseRecommenderModel

Outer Product-based Neural Collaborative Filtering

For further details, please refer to the paper

Parameters
  • embedding_size – Embedding dimension

  • lr – Learning rate

  • l_w – Regularization coefficient

  • l_b – Regularization coefficient of bias

  • cnn_channels – List of channels

  • cnn_kernels – List of kernels

  • cnn_strides – List of strides

  • dropout_prob – Dropout probability applied on the convolutional layers

To include the recommendation model, add it to the config file adopting the following pattern:

models:
  ConvNeuMF:
    meta:
      save_recs: True
    epochs: 10
    embedding_size: 100
    lr: 0.001
    l_w: 0.005
    l_b: 0.0005
    cnn_channels: (1, 32, 32)
    cnn_kernels: (2,2)
    cnn_strides: (2,2)
    dropout_prob: 0

DeepFM

class elliot.recommender.neural.DeepFM.deep_fm.DeepFM(data, config, params, *args, **kwargs)[source]

Bases: elliot.recommender.recommender_utils_mixin.RecMixin, elliot.recommender.base_recommender_model.BaseRecommenderModel

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

For further details, please refer to the paper

Parameters
  • factors – Number of factors dimension

  • lr – Learning rate

  • l_w – Regularization coefficient

  • hidden_neurons – List of units for each layer

  • hidden_activations – List of activation functions

To include the recommendation model, add it to the config file adopting the following pattern:

models:
  DeepFM:
    meta:
      save_recs: True
    epochs: 10
    factors: 100
    lr: 0.001
    l_w: 0.0001
    hidden_neurons: (64,32)
    hidden_activations: ('relu','relu')

DMF

class elliot.recommender.neural.DMF.deep_matrix_factorization.DMF(data, config, params, *args, **kwargs)[source]

Bases: elliot.recommender.recommender_utils_mixin.RecMixin, elliot.recommender.base_recommender_model.BaseRecommenderModel

Deep Matrix Factorization Models for Recommender Systems.

For further details, please refer to the paper

Parameters
  • lr – Learning rate

  • reg – Regularization coefficient

  • user_mlp – List of units for each layer

  • item_mlp – List of activation functions

  • similarity – Number of factors dimension

To include the recommendation model, add it to the config file adopting the following pattern:

models:
  DMF:
    meta:
      save_recs: True
    epochs: 10
    lr: 0.0001
    reg: 0.001
    user_mlp: (64,32)
    item_mlp: (64,32)
    similarity: cosine

GMF

class elliot.recommender.neural.GeneralizedMF.generalized_matrix_factorization.GMF(data, config, params, *args, **kwargs)[source]

Bases: elliot.recommender.recommender_utils_mixin.RecMixin, elliot.recommender.base_recommender_model.BaseRecommenderModel

Neural Collaborative Filtering

For further details, please refer to the paper

Parameters
  • mf_factors – Number of latent factors

  • lr – Learning rate

  • is_edge_weight_train – Whether the training uses edge weighting

To include the recommendation model, add it to the config file adopting the following pattern:

models:
  GMF:
    meta:
      save_recs: True
    epochs: 10
    mf_factors: 10
    lr: 0.001
    is_edge_weight_train: True

ItemAutoRec

class elliot.recommender.neural.ItemAutoRec.itemautorec.ItemAutoRec(data, config, params, *args, **kwargs)[source]

Bases: elliot.recommender.recommender_utils_mixin.RecMixin, elliot.recommender.base_recommender_model.BaseRecommenderModel

AutoRec: Autoencoders Meet Collaborative Filtering (Item-based)

For further details, please refer to the paper

Parameters
  • hidden_neuron – List of units for each layer

  • lr – Learning rate

  • l_w – Regularization coefficient

To include the recommendation model, add it to the config file adopting the following pattern:

models:
  ItemAutoRec:
    meta:
      save_recs: True
    epochs: 10
    hidden_neuron: 500
    lr: 0.0001
    l_w: 0.001

NAIS

class elliot.recommender.neural.NAIS.nais.NAIS(data, config, params, *args, **kwargs)[source]

Bases: elliot.recommender.recommender_utils_mixin.RecMixin, elliot.recommender.base_recommender_model.BaseRecommenderModel

NAIS: Neural Attentive Item Similarity Model for Recommendation

For further details, please refer to the paper

Parameters
  • factors – Number of latent factors

  • algorithm – Type of user-item factor operation (‘product’, ‘concat’)

  • weight_size – List of units for each layer

  • lr – Learning rate

  • l_w – Regularization coefficient

  • l_b – Bias regularization coefficient

  • alpha – Attention factor

  • beta – Smoothing exponent

  • neg_ratio – Ratio of negative sampled items, e.g., 0 = no items, 1 = all un-rated items

To include the recommendation model, add it to the config file adopting the following pattern:

models:
  NAIS:
    meta:
      save_recs: True
    factors: 100
    algorithm: concat
    weight_size: 32
    lr: 0.001
    l_w: 0.001
    l_b: 0.001
    alpha: 0.5
    beta: 0.5
    neg_ratio: 0.5

NeuMF

class elliot.recommender.neural.NeuMF.neural_matrix_factorization.NeuMF(data, config, params, *args, **kwargs)[source]

Bases: elliot.recommender.recommender_utils_mixin.RecMixin, elliot.recommender.base_recommender_model.BaseRecommenderModel

Neural Collaborative Filtering

For further details, please refer to the paper

Parameters
  • mf_factors – Number of MF latent factors

  • mlp_factors – Number of MLP latent factors

  • mlp_hidden_size – List of units for each layer

  • lr – Learning rate

  • dropout – Dropout rate

  • is_mf_train – Whether to train the MF embeddings

  • is_mlp_train – Whether to train the MLP layers

To include the recommendation model, add it to the config file adopting the following pattern:

models:
  NeuMF:
    meta:
      save_recs: True
    epochs: 10
    mf_factors: 10
    mlp_factors: 10
    mlp_hidden_size: (64,32)
    lr: 0.001
    dropout: 0.0
    is_mf_train: True
    is_mlp_train: True

NFM

class elliot.recommender.neural.NFM.neural_fm.NFM(data, config, params, *args, **kwargs)[source]

Bases: elliot.recommender.recommender_utils_mixin.RecMixin, elliot.recommender.base_recommender_model.BaseRecommenderModel

Neural Factorization Machines for Sparse Predictive Analytics

For further details, please refer to the paper

Parameters
  • factors – Number of factors dimension

  • lr – Learning rate

  • l_w – Regularization coefficient

  • hidden_neurons – List of units for each layer

  • hidden_activations – List of activation functions

To include the recommendation model, add it to the config file adopting the following pattern:

models:
  NFM:
    meta:
      save_recs: True
    epochs: 10
    factors: 100
    lr: 0.001
    l_w: 0.0001
    hidden_neurons: (64,32)
    hidden_activations: ('relu','relu')

NPR

class elliot.recommender.neural.NPR.neural_personalized_ranking.NPR(data, config, params, *args, **kwargs)[source]

Bases: elliot.recommender.recommender_utils_mixin.RecMixin, elliot.recommender.base_recommender_model.BaseRecommenderModel

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

For further details, please refer to the paper

Parameters
  • mf_factors – Number of MF latent factors

  • mlp_hidden_size – List of units for each layer

  • lr – Learning rate

  • l_w – Regularization coefficient

  • dropout – Dropout rate

To include the recommendation model, add it to the config file adopting the following pattern:

models:
  NPR:
    meta:
      save_recs: True
    epochs: 10
    mf_factors: 100
    mlp_hidden_size:  (64,32)
    lr: 0.001
    l_w: 0.001
    dropout: 0.45

UserAutoRec

class elliot.recommender.neural.UserAutoRec.userautorec.UserAutoRec(data, config, params, *args, **kwargs)[source]

Bases: elliot.recommender.recommender_utils_mixin.RecMixin, elliot.recommender.base_recommender_model.BaseRecommenderModel

AutoRec: Autoencoders Meet Collaborative Filtering (User-based)

For further details, please refer to the paper

Parameters
  • hidden_neuron – List of units for each layer

  • lr – Learning rate

  • l_w – Regularization coefficient

To include the recommendation model, add it to the config file adopting the following pattern:

models:
  UserAutoRec:
    meta:
      save_recs: True
    epochs: 10
    hidden_neuron: 500
    lr: 0.0001
    l_w: 0.001

WideAndDeep

class elliot.recommender.neural.WideAndDeep.wide_and_deep.WideAndDeep(data, config, params, *args, **kwargs)[source]

Bases: elliot.recommender.recommender_utils_mixin.RecMixin, elliot.recommender.base_recommender_model.BaseRecommenderModel

Wide & Deep Learning for Recommender Systems

(For now, available with knowledge-aware features)

For further details, please refer to the paper

Parameters
  • factors – Number of latent factors

  • mlp_hidden_size – List of units for each layer

  • lr – Learning rate

  • l_w – Regularization coefficient

  • l_b – Bias Regularization Coefficient

  • dropout_prob – Dropout rate

To include the recommendation model, add it to the config file adopting the following pattern:

models:
  NPR:
    meta:
      save_recs: True
    epochs: 10
    factors: 50
    mlp_hidden_size: (32, 32, 1)
    lr: 0.001
    l_w: 0.005
    l_b: 0.0005
    dropout_prob: 0.0