Latent Factor Models

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

BPRMF.BPRMF.BPRMF(data, config, params, …)

Bayesian Personalized Ranking with Matrix Factorization

BPRMF_batch.BPRMF_batch.BPRMF_batch(data, …)

Batch Bayesian Personalized Ranking with Matrix Factorization

BPRSlim.bprslim.BPRSlim(data, config, …)

BPR Sparse Linear Methods

CML.CML.CML(data, config, params, *args, …)

Collaborative Metric Learning

FFM.field_aware_factorization_machine.FFM(…)

Field-aware Factorization Machines

FISM.FISM.FISM(data, config, params, *args, …)

FISM: Factored Item Similarity Models

FM.factorization_machine.FM(data, config, …)

Factorization Machines

FunkSVD.funk_svd.FunkSVD(data, config, …)

For further details, please refer to the paper

LogisticMF.logistic_matrix_factorization.LogisticMatrixFactorization(…)

Logistic Matrix Factorization

MF.matrix_factorization.MF(data, config, …)

Matrix Factorization

NonNegMF.non_negative_matrix_factorization.NonNegMF(…)

Non-Negative Matrix Factorization

PMF.probabilistic_matrix_factorization.PMF(…)

Probabilistic Matrix Factorization

PureSVD.pure_svd.PureSVD(data, config, …)

For further details, please refer to the paper

Slim.slim.Slim(data, config, params, *args, …)

Sparse Linear Methods

SVDpp.svdpp.SVDpp(data, config, params, …)

SVD++

WRMF.wrmf.WRMF(data, config, params, *args, …)

Weighted XXX Matrix Factorization

BPRMF

class elliot.recommender.latent_factor_models.BPRMF.BPRMF.BPRMF(data, config, params, *args, **kwargs)[source]

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

Bayesian Personalized Ranking with Matrix Factorization

For further details, please refer to the paper

Parameters
  • factors – Number of latent factors

  • lr – Learning rate

  • bias_regularization – Regularization coefficient for the bias

  • user_regularization – Regularization coefficient for user latent factors

  • positive_item_regularization – Regularization coefficient for positive item latent factors

  • negative_item_regularization – Regularization coefficient for negative item latent factors

  • update_negative_item_factors

  • update_users

  • update_items

  • update_bias

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

models:
  BPRMF:
    meta:
      save_recs: True
    epochs: 10
    factors: 10
    lr: 0.001
    bias_regularization: 0
    user_regularization: 0.0025
    positive_item_regularization: 0.0025
    negative_item_regularization: 0.0025
    update_negative_item_factors: True
    update_users: True
    update_items: True
    update_bias: True

BPRMF_batch

class elliot.recommender.latent_factor_models.BPRMF_batch.BPRMF_batch.BPRMF_batch(data, config, params, *args, **kwargs)[source]

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

Batch Bayesian Personalized Ranking with Matrix Factorization

For further details, please refer to the paper

Parameters
  • factors – Number of latent factors

  • lr – Learning rate

  • l_w – Regularization coefficient for latent factors

  • l_b – Regularization coefficient for bias

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

models:
  BPRMF_batch:
    meta:
      save_recs: True
    epochs: 10
    factors: 10
    lr: 0.001
    l_w: 0.1
    l_b: 0.001

BPRSlim

class elliot.recommender.latent_factor_models.BPRSlim.bprslim.BPRSlim(data, config, params, *args, **kwargs)[source]

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

BPR Sparse Linear Methods

For further details, please refer to the paper

Parameters
  • factors – Number of latent factors

  • lr – Learning rate

  • lj_reg – Regularization coefficient for positive items

  • li_reg – Regularization coefficient for negative items

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

models:
  AMF:
    meta:
      save_recs: True
    epochs: 10
    factors: 10
    lr: 0.001
    lj_reg: 0.001
    li_reg: 0.1

CML

class elliot.recommender.latent_factor_models.CML.CML.CML(data, config, params, *args, **kwargs)[source]

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

Collaborative Metric Learning

For further details, please refer to the paper

Parameters
  • factors – Number of latent factors

  • lr – Learning rate

  • l_w – Regularization coefficient for latent factors

  • l_b – Regularization coefficient for bias

  • margin – Safety margin size

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

models:
  CML:
    meta:
      save_recs: True
    epochs: 10
    factors: 10
    lr: 0.001
    l_w: 0.001
    l_b: 0.001
    margin: 0.5

FFM

class elliot.recommender.latent_factor_models.FFM.field_aware_factorization_machine.FFM(data, config, params, *args, **kwargs)[source]

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

Field-aware Factorization Machines

For further details, please refer to the paper

Parameters
  • factors – Number of factors of feature embeddings

  • lr – Learning rate

  • reg – Regularization coefficient

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

models:
  FFM:
    meta:
      save_recs: True
    epochs: 10
    factors: 10
    lr: 0.001
    reg: 0.1

FISM

class elliot.recommender.latent_factor_models.FISM.FISM.FISM(data, config, params, *args, **kwargs)[source]

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

FISM: Factored Item Similarity Models

For further details, please refer to the paper

Parameters
  • factors – Number of factors of feature embeddings

  • lr – Learning rate

  • l_w – Regularization coefficient for latent factors

  • l_b – Regularization coefficient for bias

  • alpha – Alpha parameter (a value between 0 and 1)

  • neg_ratio

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

models:
  FISM:
    meta:
      save_recs: True
    epochs: 10
    factors: 10
    lr: 0.001
    l_w: 0.001
    l_b: 0.001
    alpha: 0.5
    neg_ratio:

FM

class elliot.recommender.latent_factor_models.FM.factorization_machine.FM(data, config, params, *args, **kwargs)[source]

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

Factorization Machines

For further details, please refer to the paper

Parameters
  • factors – Number of factors of feature embeddings

  • lr – Learning rate

  • reg – Regularization coefficient

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

models:
  FM:
    meta:
      save_recs: True
    epochs: 10
    factors: 10
    lr: 0.001
    reg: 0.1

FunkSVD

class elliot.recommender.latent_factor_models.FunkSVD.funk_svd.FunkSVD(data, config, params, *args, **kwargs)[source]

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

For further details, please refer to the paper

Parameters
  • factors – Number of factors of feature embeddings

  • lr – Learning rate

  • reg_w – Regularization coefficient for latent factors

  • reg_b – Regularization coefficient for bias

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

models:
  FunkSVD:
    meta:
      save_recs: True
    epochs: 10
    factors: 10
    lr: 0.001
    reg_w: 0.1
    reg_b: 0.001

LogisticMatrixFactorization

class elliot.recommender.latent_factor_models.LogisticMF.logistic_matrix_factorization.LogisticMatrixFactorization(data, config, params, *args, **kwargs)[source]

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

Logistic Matrix Factorization

For further details, please refer to the paper

Parameters
  • factors – Number of factors of feature embeddings

  • lr – Learning rate

  • reg – Regularization coefficient

  • alpha – Parameter for confidence estimation

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

models:
  LogisticMatrixFactorization:
    meta:
      save_recs: True
    epochs: 10
    factors: 10
    lr: 0.001
    reg: 0.1
    alpha: 0.5

NonNegMF

class elliot.recommender.latent_factor_models.NonNegMF.non_negative_matrix_factorization.NonNegMF(data, config, params, *args, **kwargs)[source]

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

Non-Negative Matrix Factorization

For further details, please refer to the paper

Parameters
  • factors – Number of latent factors

  • lr – Learning rate

  • reg – Regularization coefficient

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

models:
  NonNegMF:
    meta:
      save_recs: True
    epochs: 10
    factors: 10
    lr: 0.001
    reg: 0.1

PMF

class elliot.recommender.latent_factor_models.PMF.probabilistic_matrix_factorization.PMF(data, config, params, *args, **kwargs)[source]

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

Probabilistic Matrix Factorization

For further details, please refer to the paper

Parameters
  • factors – Number of latent factors

  • lr – Learning rate

  • reg – Regularization coefficient

  • gaussian_variance – Variance of the Gaussian distribution

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

models:
  PMF:
    meta:
      save_recs: True
    epochs: 10
    factors: 50
    lr: 0.001
    reg: 0.0025
    gaussian_variance: 0.1

PureSVD

class elliot.recommender.latent_factor_models.PureSVD.pure_svd.PureSVD(data, config, params, *args, **kwargs)[source]

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

For further details, please refer to the paper

Parameters
  • factors – Number of latent factors

  • seed – Random seed

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

models:
  PureSVD:
    meta:
      save_recs: True
    epochs: 10
    factors: 10
    seed: 42

Slim

class elliot.recommender.latent_factor_models.Slim.slim.Slim(data, config, params, *args, **kwargs)[source]

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

Sparse Linear Methods

For further details, please refer to the paper

Parameters
  • l1_ratio

  • alpha

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

models:
  Slim:
    meta:
      save_recs: True
    epochs: 10
    l1_ratio: 0.001
    alpha: 0.001

SVDpp

class elliot.recommender.latent_factor_models.SVDpp.svdpp.SVDpp(data, config, params, *args, **kwargs)[source]

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

SVD++

For further details, please refer to the paper

Parameters
  • factors – Number of latent factors

  • lr – Learning rate

  • reg_w – Regularization coefficient for latent factors

  • reg_b – Regularization coefficient for bias

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

models:
  SVDpp:
    meta:
      save_recs: True
    epochs: 10
    factors: 50
    lr: 0.001
    reg_w: 0.1
    reg_b: 0.001

WRMF

class elliot.recommender.latent_factor_models.WRMF.wrmf.WRMF(data, config, params, *args, **kwargs)[source]

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

Weighted XXX Matrix Factorization

For further details, please refer to the paper

Parameters
  • factors – Number of latent factors

  • lr – Learning rate

  • alpha

  • reg – Regularization coefficient

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

models:
  WRMF:
    meta:
      save_recs: True
    epochs: 10
    factors: 50
    alpha: 1
    reg: 0.1