Class NeuMF
- java.lang.Object
-
- es.upm.etsisi.cf4j.recommender.Recommender
-
- es.upm.etsisi.cf4j.recommender.neural.NeuMF
-
public class NeuMF extends Recommender
Implements He, X., Liao, L., Zhang, H., Nie, L., Hu, X., & Chua, T. S. (2017, April). Neural collaborative filtering. In Proceedings of the 26th international conference on world wide web (pp. 173-182).
-
-
Field Summary
Fields Modifier and Type Field Description protected int[]
layers
Array of layers neuronsprotected double
learningRate
Learning Rateprotected int
numFactorsGMF
Number of GMF latent factorsprotected int
numFactorsMLP
Number of MLP latent factors-
Fields inherited from class es.upm.etsisi.cf4j.recommender.Recommender
datamodel
-
-
Constructor Summary
Constructors Constructor Description NeuMF(DataModel datamodel, int numEpochs, double learningRate)
Model constructorNeuMF(DataModel datamodel, int numEpochs, double learningRate, int[] layers)
Model constructorNeuMF(DataModel datamodel, int numEpochs, double learningRate, long seed)
Model constructorNeuMF(DataModel datamodel, int numFactorsGMF, int numFactorsMLP, int numEpochs, double learningRate)
Model constructorNeuMF(DataModel datamodel, int numFactorsGMF, int numFactorsMLP, int numEpochs, double learningRate, int[] layers)
Model constructorNeuMF(DataModel datamodel, int numFactorsGMF, int numFactorsMLP, int numEpochs, double learningRate, int[] layers, long seed)
Model constructorNeuMF(DataModel datamodel, int numFactorsGMF, int numFactorsMLP, int numEpochs, double learningRate, long seed)
Model constructorNeuMF(DataModel datamodel, Map<String,Object> params)
Model constructor from a Map containing the model's hyper-parameters values.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
fit()
Estimates model parameters given the hyper-parametersint
getGMFNumFactors()
Returns the number of latent factors of GMF net.int[]
getLayers()
Returns net layers.double
getLearningRate()
Returns learning rate.int
getMLPNumFactors()
Returns the number of latent factors of MLP net.int
getNumEpochs()
Returns the number of epochs.double
predict(int userIndex, int itemIndex)
Returns the prediction of a rating of a certain user for a certain item, through these predictions the metrics of MAE, MSE and RMSE can be obtained.String
toString()
-
Methods inherited from class es.upm.etsisi.cf4j.recommender.Recommender
getDataModel, predict
-
-
-
-
Constructor Detail
-
NeuMF
public NeuMF(DataModel datamodel, Map<String,Object> params)
Model constructor from a Map containing the model's hyper-parameters values. Map object must contains the following keys:- numFactorsGMF (optional): int value with the number of latent factors of GMF net. If missing, default 10 GMF latent factors are used.
- numFactorsMLP (optional): int value with the number of latent factors of MLP net. If missing, default 10 MLP latent factors are used.
- numEpochs: int value with the number of epochs.
- learningRate: double value with the learning rate.
- layers (optional): Array of layers neurons. If missing, default [10] Array is used.
- seed (optional): random seed for random numbers generation. If missing, random value is used.
- Parameters:
datamodel
- DataModel instanceparams
- Model's hyper-parameters values
-
NeuMF
public NeuMF(DataModel datamodel, int numFactorsGMF, int numFactorsMLP, int numEpochs, double learningRate)
Model constructor- Parameters:
datamodel
- DataModel instancenumFactorsGMF
- Number of factors of GMF net. 10 by defaultnumFactorsMLP
- Number of factors of MLP net. 10 by defaultdatamodel
- DataModel instancenumEpochs
- Number of epochslearningRate
- Learning rate
-
NeuMF
public NeuMF(DataModel datamodel, int numFactorsGMF, int numFactorsMLP, int numEpochs, double learningRate, long seed)
Model constructor- Parameters:
datamodel
- DataModel instancenumFactorsGMF
- Number of factors of GMF net. 10 by defaultnumFactorsMLP
- Number of factors of MLP net. 10 by defaultnumEpochs
- Number of epochslearningRate
- Learning rateseed
- random seed for random numbers generation
-
NeuMF
public NeuMF(DataModel datamodel, int numFactorsGMF, int numFactorsMLP, int numEpochs, double learningRate, int[] layers)
Model constructor- Parameters:
datamodel
- DataModel instancenumFactorsGMF
- Number of factors of GMF net. 10 by defaultnumFactorsMLP
- Number of factors of MLP net. 10 by defaultnumEpochs
- Number of epochslearningRate
- Learning ratelayers
- Array of layers neurons. [10] by default.
-
NeuMF
public NeuMF(DataModel datamodel, int numEpochs, double learningRate)
Model constructor- Parameters:
datamodel
- DataModel instancedatamodel
- DataModel instancenumEpochs
- Number of epochslearningRate
- Learning rate
-
NeuMF
public NeuMF(DataModel datamodel, int numEpochs, double learningRate, long seed)
Model constructor- Parameters:
datamodel
- DataModel instancenumEpochs
- Number of epochslearningRate
- Learning rateseed
- random seed for random numbers generation
-
NeuMF
public NeuMF(DataModel datamodel, int numEpochs, double learningRate, int[] layers)
Model constructor- Parameters:
datamodel
- DataModel instancenumEpochs
- Number of epochslearningRate
- Learning ratelayers
- Array of layers neurons. [10] by default.
-
NeuMF
public NeuMF(DataModel datamodel, int numFactorsGMF, int numFactorsMLP, int numEpochs, double learningRate, int[] layers, long seed)
Model constructor- Parameters:
datamodel
- DataModel instancenumEpochs
- Number of epochslearningRate
- Learning ratelayers
- Array of layers neurons. [10] by default.seed
- Seed for random numbers generation
-
-
Method Detail
-
fit
public void fit()
Description copied from class:Recommender
Estimates model parameters given the hyper-parameters- Specified by:
fit
in classRecommender
-
predict
public double predict(int userIndex, int itemIndex)
Returns the prediction of a rating of a certain user for a certain item, through these predictions the metrics of MAE, MSE and RMSE can be obtained.- Specified by:
predict
in classRecommender
- Parameters:
userIndex
- Index of the user in the array of Users of the DataModel instanceitemIndex
- Index of the item in the array of Items of the DataModel instance- Returns:
- Prediction
-
getNumEpochs
public int getNumEpochs()
Returns the number of epochs.- Returns:
- Number of epochs.
-
getGMFNumFactors
public int getGMFNumFactors()
Returns the number of latent factors of GMF net.- Returns:
- Number of latent factors of GMF net.
-
getMLPNumFactors
public int getMLPNumFactors()
Returns the number of latent factors of MLP net.- Returns:
- Number of latent factors of MLP net.
-
getLearningRate
public double getLearningRate()
Returns learning rate.- Returns:
- learning rate.
-
getLayers
public int[] getLayers()
Returns net layers.- Returns:
- net layers.
-
-