Class MLP


  • public class MLP
    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 numFactors
      Number of factors
    • Constructor Summary

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

      • learningRate

        protected final double learningRate
        Learning rate
      • numFactors

        protected final int numFactors
        Number of factors
      • layers

        protected final int[] layers
        Array of layers neurons
    • Constructor Detail

      • MLP

        public MLP​(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:
        • numFactors (optional): int value with the number of factors. If missing, default 10 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 [20, 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
      • MLP

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

        public MLP​(DataModel datamodel,
                   int numFactors,
                   int numEpochs,
                   double learningRate,
                   long seed)
        Model constructor
        Parameters:
        datamodel - DataModel instance
        numFactors - Number of factors. 10 by default
        numEpochs - Number of epochs
        learningRate - Learning rate
        seed - Seed for random numbers generation
      • MLP

        public MLP​(DataModel datamodel,
                   int numFactors,
                   int numEpochs,
                   double learningRate,
                   int[] layers)
        Model constructor
        Parameters:
        datamodel - DataModel instance
        numEpochs - Number of epochs. 10 by default
        learningRate - Learning rate
        numFactors - Number of factors
        layers - Array of layers neurons. [20, 10] by default
      • MLP

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

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

        public MLP​(DataModel datamodel,
                   int numEpochs,
                   double learningRate,
                   int[] layers)
        Model constructor
        Parameters:
        datamodel - DataModel instance
        learningRate - Learning rate
        layers - Array of layers neurons. [20, 10] by default
      • MLP

        public MLP​(DataModel datamodel,
                   int numFactors,
                   int numEpochs,
                   double learningRate,
                   int[] layers,
                   long seed)
        Model constructor
        Parameters:
        datamodel - DataModel instance
        numEpochs - Number of epochs
        learningRate - Learning rate
        numFactors - Number of factors
        layers - Array of layers neurons. [20, 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.
      • getNumFactors

        public int getNumFactors()
        Returns the number of latent factors.
        Returns:
        Number of latent factors.
      • getLearningRate

        public double getLearningRate()
        Returns learning rate.
        Returns:
        learning rate.
      • getLayers

        public int[] getLayers()
        Returns net layers.
        Returns:
        net layers.