models¶
Probabilistic Collaborative Representation Learning (PCRL)¶
@author: Aghiles Salah <asalah@smu.edu.sg>

class
cornac.models.pcrl.recom_pcrl.
PCRL
(k=100, z_dims=[300], max_iter=300, batch_size=300, learning_rate=0.001, aux_info=None, name='pcrl', trainable=True, verbose=False, w_determinist=True, init_params={'G_r': None, 'G_s': None, 'L_r': None, 'L_s': None})[source]¶ Probabilistic Collaborative Representation Learning.
Parameters:  k (int, optional, default: 100) – The dimension of the latent factors.
 z_dims (Numpy 1d array, optional, default: [300]) – The dimensions of the hidden intermdiate layers ‘z’ in the order [dim(z_L), …,dim(z_1)], please refer to Figure 1 in the orginal paper for more details.
 max_iter (int, optional, default: 300) – Maximum number of iterations (number of epochs) for variational PCRL.
 batch_size (int, optional, default: 300) – The batch size for SGD.
 learning_rate (float, optional, default: 0.001) – The learning rate for SGD.
 aux_info (csc sparse matrix, required) – The item auxiliary information matrix, itemcontext in the PCRL’s paper, in the scipy csc sparse format.
 name (string, optional, default: 'PCRL') – The name of the recommender model.
 trainable (boolean, optional, default: True) – When False, the model is not trained and Cornac assumes that the model already pretrained (Theta, Beta and Xi are not None).
 w_determinist (boolean, optional, default: True) – When True, determinist wheights “W” are used for the generator network, otherwise “W” is stochastic as in the original paper.
 init_params (dictionary, optional, default: {'G_s':None, 'G_r':None, 'L_s':None, 'L_r':None}) – List of initial parameters, e.g., init_params = {‘G_s’:G_s, ‘G_r’:G_r, ‘L_s’:L_s, ‘L_r’:L_r}, where G_s and G_r are of type csc_matrix or np.array with the same shape as Theta, see below). They represent respectively the “shape” and “rate” parameters of Gamma distribution over Theta. It is the same for L_s, L_r and Beta.
 Theta (csc_matrix, shape (n_users,k)) – The expected user latent factors.
 Beta (csc_matrix, shape (n_items,k)) – The expected item latent factors.
References
 Salah, Aghiles, and Hady W. Lauw. Probabilistic Collaborative Representation Learning for Personalized Item Recommendation. In UAI 2018.

fit
(train_set)[source]¶ Fit the model to observations.
Parameters: train_set (object of type TrainSet, required) – An object contraining the useritem preference in csr scipy sparse format, as well as some useful attributes such as mappings to the original user/item ids. Please refer to the class TrainSet in the “data” module for details.
Collaborative Context Poisson Factorization (C2PF)¶
@author: Aghiles Salah <asalah@smu.edu.sg>

class
cornac.models.c2pf.recom_c2pf.
C2PF
(k=100, max_iter=100, variant='c2pf', name=None, trainable=True, verbose=False, init_params={'G_r': None, 'G_s': None, 'L2_r': None, 'L2_s': None, 'L3_r': None, 'L3_s': None, 'L_r': None, 'L_s': None})[source]¶ Collaborative Context Poisson Factorization.
Parameters:  k (int, optional, default: 100) – The dimension of the latent factors.
 max_iter (int, optional, default: 100) – Maximum number of iterations for variational C2PF.
 variant (string, optional, default: 'c2pf') – C2pf’s variant: c2pf: ‘c2pf’, ‘tc2pf’ (tiedc2pf) or ‘rc2pf’ (reducedc2pf). Please refer to the original paper for details.
 name (string, optional, default: None) – The name of the recommender model. If None, then “variant” is used as the default name of the model.
 trainable (boolean, optional, default: True) – When False, the model is not trained and Cornac assumes that the model already pretrained (Theta, Beta and Xi are not None).
 Item_context (See "cornac/examples/c2pf_example.py" in the GitHub repo for an example of how to use cornac's graph module to load and provide "item context" for C2PF.) –
 init_params (dictionary, optional, default: {'G_s':None, 'G_r':None, 'L_s':None, 'L_r':None, 'L2_s':None, 'L2_r':None, 'L3_s':None, 'L3_r':None}) – List of initial parameters, e.g., init_params = {‘G_s’:G_s, ‘G_r’:G_r, ‘L_s’:L_s, ‘L_r’:L_r, ‘L2_s’:L2_s, ‘L2_r’:L2_r, ‘L3_s’:L3_s, ‘L3_r’:L3_r}, where G_s and G_r are of type csc_matrix or np.array with the same shape as Theta, see below). They represent respectively the “shape” and “rate” parameters of Gamma distribution over Theta. It is the same for L_s, L_r and Beta, L2_s, L2_r and Xi, L3_s, L3_r and Kappa.
 Theta (csc_matrix, shape (n_users,k)) – The expected user latent factors.
 Beta (csc_matrix, shape (n_items,k)) – The expected item latent factors.
 Xi (csc_matrix, shape (n_items,k)) – The expected context item latent factors multiplied by context effects Kappa, please refer to the paper below for details.
References
 Salah, Aghiles, and Hady W. Lauw. A Bayesian Latent Variable Model of User Preferences with Item Context. In IJCAI, pp. 26672674. 2018.

fit
(train_set)[source]¶ Fit the model to observations.
Parameters: train_set (object of type TrainSet, required) – An object contraining the useritem preference in csr scipy sparse format, as well as some useful attributes such as mappings to the original user/item ids. Please refer to the class TrainSet in the “data” module for details.
Indexable Bayesian Personalized Ranking (IBPR)¶
@author: Dung D. Le (Andrew) <ddle.2015@smu.edu.sg>

class
cornac.models.ibpr.recom_ibpr.
IBPR
(k=20, max_iter=100, learning_rate=0.05, lamda=0.001, batch_size=100, name='ibpr', trainable=True, verbose=False, init_params=None)[source]¶ Indexable Bayesian Personalized Ranking.
Parameters:  k (int, optional, default: 20) – The dimension of the latent factors.
 max_iter (int, optional, default: 100) – Maximum number of iterations or the number of epochs for SGD.
 learning_rate (float, optional, default: 0.05) – The learning rate for SGD.
 lamda (float, optional, default: 0.001) – The regularization parameter.
 batch_size (int, optional, default: 100) – The batch size for SGD.
 name (string, optional, default: 'IBRP') – The name of the recommender model.
 trainable (boolean, optional, default: True) – When False, the model is not trained and Cornac assumes that the model already pretrained (U and V are not None).
 verbose (boolean, optional, default: False) – When True, some running logs are displayed.
 init_params (dictionary, optional, default: None) – List of initial parameters, e.g., init_params = {‘U’:U, ‘V’:V} please see below the definition of U and V.
 U (csc_matrix, shape (n_users,k)) – The user latent factors, optional initialization via init_params.
 V (csc_matrix, shape (n_items,k)) – The item latent factors, optional initialization via init_params.
References
 Le, D. D., & Lauw, H. W. (2017, November). Indexable Bayesian personalized ranking for efficient topk recommendation. In Proceedings of the 2017 ACM on Conference on Information and Knowledge Management (pp. 13891398). ACM.

fit
(train_set)[source]¶ Fit the model to observations.
Parameters: train_set (object of type TrainSet, required) – An object contraining the useritem preference in csr scipy sparse format, as well as some useful attributes such as mappings to the original user/item ids. Please refer to the class TrainSet in the “data” module for details.
Online Indexable Bayesian Personalized Ranking (OIBPR)¶
@author: Dung D. Le (Andrew) <ddle.2015@smu.edu.sg>

class
cornac.models.online_ibpr.recom_online_ibpr.
OnlineIBPR
(k=20, max_iter=100, learning_rate=0.05, lamda=0.001, batch_size=100, name='online_ibpr', trainable=True, verbose=False, init_params=None)[source]¶ Online Indexable Bayesian Personalized Ranking.
Parameters:  k (int, optional, default: 20) – The dimension of the latent factors.
 max_iter (int, optional, default: 100) – Maximum number of iterations or the number of epochs for SGD.
 learning_rate (float, optional, default: 0.05) – The learning rate for SGD.
 lamda (float, optional, default: 0.001) – The regularization parameter.
 batch_size (int, optional, default: 100) – The batch size for SGD.
 name (string, optional, default: 'IBRP') – The name of the recommender model.
 trainable (boolean, optional, default: True) – When False, the model is not trained and Cornac assumes that the model already pretrained (U and V are not None).
 verbose (boolean, optional, default: False) – When True, some running logs are displayed.
 init_params (dictionary, optional, default: None) – List of initial parameters, e.g., init_params = {‘U’:U, ‘V’:V} please see below the definition of U and V.
 U (csc_matrix, shape (n_users,k)) – The user latent factors, optional initialization via init_params.
 V (csc_matrix, shape (n_items,k)) – The item latent factors, optional initialization via init_params.
References
 Le, D. D., & Lauw, H. W. (2017, November). Indexable Bayesian personalized ranking for efficient topk recommendation. In Proceedings of the 2017 ACM on Conference on Information and Knowledge Management (pp. 13891398). ACM.

fit
(train_set)[source]¶ Fit the model to observations.
Parameters: train_set (object of type TrainSet, required) – An object contraining the useritem preference in csr scipy sparse format, as well as some useful attributes such as mappings to the original user/item ids. Please refer to the class TrainSet in the “data” module for details.
Collaborative Ordinal Embedding (COE)¶
@author: Dung D. Le (Andrew) <ddle.2015@smu.edu.sg>

class
cornac.models.coe.recom_coe.
COE
(k=20, max_iter=100, learning_rate=0.05, lamda=0.001, batch_size=1000, name='coe', trainable=True, verbose=False, init_params=None)[source]¶ Collaborative Ordinal Embedding.
Parameters:  k (int, optional, default: 20) – The dimension of the latent factors.
 max_iter (int, optional, default: 100) – Maximum number of iterations or the number of epochs for SGD.
 learning_rate (float, optional, default: 0.05) – The learning rate for SGD.
 lamda (float, optional, default: 0.001) – The regularization parameter.
 batch_size (int, optional, default: 100) – The batch size for SGD.
 name (string, optional, default: 'IBRP') – The name of the recommender model.
 trainable (boolean, optional, default: True) – When False, the model is not trained and Cornac assumes that the model already pretrained (U and V are not None).
 verbose (boolean, optional, default: False) – When True, some running logs are displayed.
 init_params (dictionary, optional, default: None) – List of initial parameters, e.g., init_params = {‘U’:U, ‘V’:V} please see below the definition of U and V.
 U (csc_matrix, shape (n_users,k)) – The user latent factors, optional initialization via init_params.
 V (csc_matrix, shape (n_items,k)) – The item latent factors, optional initialization via init_params.
References
 Le, D. D., & Lauw, H. W. (2016, June). Euclidean coembedding of ordinal data for multitype visualization. In Proceedings of the 2016 SIAM International Conference on Data Mining (pp. 396404). Society for Industrial and Applied Mathematics.

fit
(train_set)[source]¶ Fit the model to observations.
Parameters: train_set (object of type TrainSet, required) – An object contraining the useritem preference in csr scipy sparse format, as well as some useful attributes such as mappings to the original user/item ids. Please refer to the class TrainSet in the “data” module for details.
Visual Bayesian Personalized Ranking (VBPR)¶
 @author: Guo Jingyao <jyguo@smu.edu.sg>
 QuocTuan Truong <tuantq.vnu@gmail.com>

class
cornac.models.vbpr.recom_vbpr.
VBPR
(k=10, k2=10, n_epochs=20, batch_size=100, learning_rate=0.001, lambda_w=0.01, lambda_b=0.01, lambda_e=0.0, use_gpu=False, trainable=True, init_params=None, **kwargs)[source]¶ Visual Bayesian Personalized Ranking.
Parameters:  k (int, optional, default: 10) – The dimension of the gamma latent factors.
 k2 (int, optional, default: 10) – The dimension of the theta latent factors.
 n_epochs (int, optional, default: 20) – Maximum number of epochs for SGD.
 batch_size (int, optional, default: 100) – The batch size for SGD.
 learning_rate (float, optional, default: 0.001) – The learning rate for SGD.
 lambda_w (float, optional, default: 0.01) – The regularization hyperparameter for latent factor weights.
 lambda_b (float, optional, default: 0.01) – The regularization hyperparameter for biases.
 lambda_e (float, optional, default: 0.0) – The regularization hyperparameter for embedding matrix E and beta prime vector.
 use_gpu (boolean, optional, default: True) – Whether or not to use GPU to speed up training.
 trainable (boolean, optional, default: True) – When False, the model is not trained and Cornac assumes that the model already pretrained (U and V are not None).
 init_params (dictionary, optional, default: None) –
 Initial parameters, e.g., init_params = {‘Bi’: beta_item,
 ’Gu’: gamma_user, ‘Gi’: gamma_item, ‘Tu’: theta_user, ‘E’: emb_matrix, ‘Bp’: beta_prime}
References
 HE, Ruining et MCAULEY, Julian. VBPR: Visual Bayesian Personalized Ranking from Implicit Feedback. In : AAAI. 2016. p. 144150.

fit
(train_set)[source]¶ Fit the model.
Parameters: train_set ( cornac.data.MultimodalTrainSet
) – Multimodal training set.
Spherical kmeans (Skmeans)¶
@author: Aghiles Salah <asalah@smu.edu.sg>

class
cornac.models.skm.recom_skmeans.
SKMeans
(k=5, max_iter=100, name='Skmeans', trainable=True, tol=1e06, verbose=True, init_par=None)[source]¶ Spherical kmeans based recommender.
Parameters:  k (int, optional, default: 5) – The number of clusters.
 max_iter (int, optional, default: 100) – Maximum number of iterations.
 name (string, optional, default: 'Skmeans') – The name of the recommender model.
 trainable (boolean, optional, default: True) – When False, the model is not trained and Cornac assumes that the model is already trained.
 tol (float, optional, default: 1e6) – Relative tolerance with regards to skmeans’ criterion to declare convergence.
 verbose (boolean, optional, default: False) – When True, some running logs are displayed.
 init_par (numpy 1d array, optional, default: None) – The initial object parition, 1d array contaning the cluster label (int type starting from 0) of each object (user). If par = None, then skmeans is initialized randomly.
 centroids (csc_matrix, shape (k,n_users)) – The maxtrix of cluster centroids.
References
 Salah, Aghiles, Nicoleta Rogovschi, and Mohamed Nadif. “A dynamic collaborative filtering system via a weighted clustering approach.” Neurocomputing 175 (2016): 206215.

fit
(train_set)[source]¶ Fit the model to observations.
Parameters: train_set (object of type TrainSet, required) – An object contraining the useritem preference in csr scipy sparse format, as well as some useful attributes such as mappings to the original user/item ids. Please refer to the class TrainSet in the “data” module for details.
Collaborative Deep Learning (CDL)¶
@author: Trieu Thi Ly Ly

class
cornac.models.cdl.recom_cdl.
CDL
(k=50, text_information=None, autoencoder_structure=None, lambda_u=0.1, lambda_v=0.01, lambda_w=0.01, lambda_n=0.01, a=1, b=0.01, autoencoder_corruption=0.3, learning_rate=0.001, keep_prob=1.0, batch_size=100, max_iter=100, name='CDL', trainable=True, verbose=False, init_params=None)[source]¶ Collaborative Deep Learning.
Parameters:  k (int, optional, default: 50) – The dimension of the latent factors.
 max_iter (int, optional, default: 100) – Maximum number of iterations or the number of epochs for SGD.
 shape (n_items, n_vocabularies), optional, default (text_information：ndarray,) – Bagofwords features of items
 optional, default (autoencoder_structure：array,) – The number of neurons of encoder/ decoder layer for SDAE
 learning_rate (float, optional, default: 0.001) – The learning rate for AdamOptimizer.
 lambda_u (float, optional, default: 0.1) – The regularization parameter for users.
 lambda_v (float, optional, default: 10) – The regularization parameter for items.
 lambda_w (float, optional, default: 0.1) – The regularization parameter for SDAE weights.
 lambda_n (float, optional, default: 1000) – The regularization parameter for SDAE output.
 a (float, optional, default: 1) – The confidence of observed ratings.
 b (float, optional, default: 0.01) – The confidence of unseen ratings.
 autoencoder_corruption (float, optional, default: 0.3) – The corruption ratio for SDAE.
 keep_prob (float, optional, default: 1.0) – The probability that each element is kept in dropout of SDAE.
 batch_size (int, optional, default: 100) – The batch size for SGD.
 name (string, optional, default: 'CDL') – The name of the recommender model.
 trainable (boolean, optional, default: True) – When False, the model is not trained and Cornac assumes that the model already pretrained (U and V are not None).
 init_params (dictionary, optional, default: None) – List of initial parameters, e.g., init_params = {‘U’:U, ‘V’:V} please see below the definition of U and V.
 U (ndarray, shape (n_users,k)) – The user latent factors, optional initialization via init_params.
 V (ndarray, shape (n_items,k)) – The item latent factors, optional initialization via init_params.
References
 Hao Wang, Naiyan Wang, DitYan Yeung. CDL: Collaborative Deep Learning for Recommender Systems. In : SIGKDD. 2015. p. 12351244.

fit
(train_set)[source]¶ Fit the model to observations.
Parameters: train_set (object of type TrainSet, required) – An object contraining the useritem preference in csr scipy sparse format, as well as some useful attributes such as mappings to the original user/item ids. Please refer to the class TrainSet in the “data” module for details.
Hierarchical Poisson Factorization (HPF)¶
@author: Aghiles Salah <asalah@smu.edu.sg>

class
cornac.models.hpf.recom_hpf.
HPF
(k=5, max_iter=100, name='HPF', trainable=True, verbose=False, hierarchical=True, init_params={'G_r': None, 'G_s': None, 'L_r': None, 'L_s': None})[source]¶ Hierarchical Poisson Factorization.
Parameters:  k (int, optional, default: 5) – The dimension of the latent factors.
 max_iter (int, optional, default: 100) – Maximum number of iterations.
 name (string, optional, default: 'HPF') – The name of the recommender model.
 trainable (boolean, optional, default: True) – When False, the model is not trained and Cornac assumes that the model is already pretrained (Theta and Beta are not None).
 verbose (boolean, optional, default: False) – When True, some running logs are displayed.
 hierarchical (boolean, optional, default: True) – When False, PF is used instead of HPF.
 init_params (dictionary, optional, default: {'G_s':None, 'G_r':None, 'L_s':None, 'L_r':None}) – List of initial parameters, e.g., init_params = {‘G_s’:G_s, ‘G_r’:G_r, ‘L_s’:L_s, ‘L_r’:L_r}, where G_s and G_r are of type csc_matrix or np.array with the same shape as Theta, see below). They represent respectively the “shape” and “rate” parameters of Gamma distribution over Theta. Similarly, L_s, L_r are the shape and rate parameters of the Gamma over Beta.
 Theta (csc_matrix, shape (n_users,k)) – The expected user latent factors.
 Beta (csc_matrix, shape (n_items,k)) – The expected item latent factors.
References
 Gopalan, Prem, Jake M. Hofman, and David M. Blei. Scalable Recommendation with Hierarchical Poisson Factorization. In UAI, pp. 326335. 2015.

fit
(train_set)[source]¶ Fit the model to observations.
Parameters: train_set (object of type TrainSet, required) – An object contraining the useritem preference in csr scipy sparse format, as well as some useful attributes such as mappings to the original user/item ids. Please refer to the class TrainSet in the “data” module for details.
Bayesian Personalized Ranking (BPR)¶
Probabilitic Matrix Factorization (PMF)¶
@author: Aghiles Salah

class
cornac.models.pmf.recom_pmf.
PMF
(k=5, max_iter=100, learning_rate=0.001, gamma=0.9, lamda=0.001, name='PMF', variant='non_linear', trainable=True, verbose=False, init_params={'U': None, 'V': None})[source]¶ Probabilistic Matrix Factorization.
Parameters:  k (int, optional, default: 5) – The dimension of the latent factors.
 max_iter (int, optional, default: 100) – Maximum number of iterations or the number of epochs for SGD.
 learning_rate (float, optional, default: 0.001) – The learning rate for SGD_RMSProp.
 gamma (float, optional, default: 0.9) – The weight for previous/current gradient in RMSProp.
 lamda (float, optional, default: 0.001) – The regularization parameter.
 name (string, optional, default: 'PMF') – The name of the recommender model.
 variant ({"linear","non_linear"}, optional, default: 'non_linear') – Pmf variant. If ‘non_linear’, the Gaussian mean is the output of a Sigmoid function. If ‘linear’ the Gaussian mean is the output of the identity function.
 trainable (boolean, optional, default: True) – When False, the model is not trained and Cornac assumes that the model already pretrained (U and V are not None).
 verbose (boolean, optional, default: False) – When True, some running logs are displayed.
 init_params (dictionary, optional, default: {'U':None,'V':None}) – List of initial parameters, e.g., init_params = {‘U’:U, ‘V’:V}. U: a csc_matrix of shape (n_users,k), containing the user latent factors. V: a csc_matrix of shape (n_items,k), containing the item latent factors.
References
 Mnih, Andriy, and Ruslan R. Salakhutdinov. Probabilistic matrix factorization. In NIPS, pp. 12571264. 2008.

fit
(train_set)[source]¶ Fit the model to observations.
Parameters: train_set (object of type TrainSet, required) – An object contraining the useritem preference in csr scipy sparse format, as well as some useful attributes such as mappings to the original user/item ids. Please refer to the class TrainSet in the “data” module for details.