Class 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 neurons
      protected double learningRate
      Learning Rate
      protected int numFactorsGMF
      Number of GMF latent factors
      protected int numFactorsMLP
      Number of MLP latent factors
    • Constructor Summary

      Constructors 
      Constructor Description
      NeuMF​(DataModel datamodel, int numEpochs, double learningRate)
      Model constructor
      NeuMF​(DataModel datamodel, int numEpochs, double learningRate, int[] layers)
      Model constructor
      NeuMF​(DataModel datamodel, int numEpochs, double learningRate, long seed)
      Model constructor
      NeuMF​(DataModel datamodel, int numFactorsGMF, int numFactorsMLP, int numEpochs, double learningRate)
      Model constructor
      NeuMF​(DataModel datamodel, int numFactorsGMF, int numFactorsMLP, int numEpochs, double learningRate, int[] layers)
      Model constructor
      NeuMF​(DataModel datamodel, int numFactorsGMF, int numFactorsMLP, int numEpochs, double learningRate, int[] layers, long seed)
      Model constructor
      NeuMF​(DataModel datamodel, int numFactorsGMF, int numFactorsMLP, int numEpochs, double learningRate, long seed)
      Model constructor
      NeuMF​(DataModel datamodel, Map<String,​Object> params)
      Model constructor from a Map containing the model's hyper-parameters values.
    • Field Detail

      • numFactorsGMF

        protected final int numFactorsGMF
        Number of GMF latent factors
      • numFactorsMLP

        protected final int numFactorsMLP
        Number of MLP latent factors
      • learningRate

        protected final double learningRate
        Learning Rate
      • layers

        protected final int[] layers
        Array of layers neurons
    • 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 instance
        params - Model's hyper-parameters values
      • NeuMF

        public NeuMF​(DataModel datamodel,
                     int numFactorsGMF,
                     int numFactorsMLP,
                     int numEpochs,
                     double learningRate)
        Model constructor
        Parameters:
        datamodel - DataModel instance
        numFactorsGMF - Number of factors of GMF net. 10 by default
        numFactorsMLP - Number of factors of MLP net. 10 by default
        datamodel - DataModel instance
        numEpochs - Number of epochs
        learningRate - Learning rate
      • NeuMF

        public NeuMF​(DataModel datamodel,
                     int numFactorsGMF,
                     int numFactorsMLP,
                     int numEpochs,
                     double learningRate,
                     long seed)
        Model constructor
        Parameters:
        datamodel - DataModel instance
        numFactorsGMF - Number of factors of GMF net. 10 by default
        numFactorsMLP - Number of factors of MLP net. 10 by default
        numEpochs - Number of epochs
        learningRate - Learning rate
        seed - 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 instance
        numFactorsGMF - Number of factors of GMF net. 10 by default
        numFactorsMLP - Number of factors of MLP net. 10 by default
        numEpochs - Number of epochs
        learningRate - Learning rate
        layers - Array of layers neurons. [10] by default.
      • NeuMF

        public NeuMF​(DataModel datamodel,
                     int numEpochs,
                     double learningRate)
        Model constructor
        Parameters:
        datamodel - DataModel instance
        datamodel - DataModel instance
        numEpochs - Number of epochs
        learningRate - Learning rate
      • NeuMF

        public NeuMF​(DataModel datamodel,
                     int numEpochs,
                     double learningRate,
                     long seed)
        Model constructor
        Parameters:
        datamodel - DataModel instance
        numEpochs - Number of epochs
        learningRate - Learning rate
        seed - random seed for random numbers generation
      • NeuMF

        public NeuMF​(DataModel datamodel,
                     int numEpochs,
                     double learningRate,
                     int[] layers)
        Model constructor
        Parameters:
        datamodel - DataModel instance
        numEpochs - Number of epochs
        learningRate - Learning rate
        layers - 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 instance
        numEpochs - Number of epochs
        learningRate - Learning rate
        layers - 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 class Recommender
      • 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 class Recommender
        Parameters:
        userIndex - Index of the user in the array of Users of the DataModel instance
        itemIndex - 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.