Class BiasedMF


  • public class BiasedMF
    extends Recommender
    Implements Koren, Y., Bell, R., & Volinsky, C. (2009). Matrix factorization techniques for recommender systems. Computer, (8), 30-37.
    • Field Summary

      Fields 
      Modifier and Type Field Description
      protected double[] bi
      Item bias
      protected double[] bu
      User bias
      protected static double DEFAULT_GAMMA  
      protected static double DEFAULT_LAMBDA  
      protected double gamma
      Learning rate
      protected double lambda
      Regularization parameter
      protected int numFactors
      Number of latent factors
      protected int numIters
      Number of iterations
      protected double[][] p
      User factors
      protected double[][] q
      Item factors
    • Constructor Summary

      Constructors 
      Constructor Description
      BiasedMF​(DataModel datamodel, int numFactors, int numIters)
      Model constructor
      BiasedMF​(DataModel datamodel, int numFactors, int numIters, double lambda)
      Model constructor
      BiasedMF​(DataModel datamodel, int numFactors, int numIters, double lambda, double gamma, long seed)
      Model constructor
      BiasedMF​(DataModel datamodel, int numFactors, int numIters, double lambda, long seed)
      Model constructor
      BiasedMF​(DataModel datamodel, int numFactors, int numIters, long seed)
      Model constructor
      BiasedMF​(DataModel datamodel, Map<String,​Object> params)
      Model constructor from a Map containing the model's hyper-parameters values.
    • Field Detail

      • p

        protected final double[][] p
        User factors
      • q

        protected final double[][] q
        Item factors
      • bu

        protected final double[] bu
        User bias
      • bi

        protected final double[] bi
        Item bias
      • gamma

        protected final double gamma
        Learning rate
      • lambda

        protected final double lambda
        Regularization parameter
      • numFactors

        protected final int numFactors
        Number of latent factors
      • numIters

        protected final int numIters
        Number of iterations
    • Constructor Detail

      • BiasedMF

        public BiasedMF​(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: int value with the number of latent factors.
        • numIters:: int value with the number of iterations.
        • gamma (optional): double value with the learning rate hyper-parameter. If missing, it is set to 0.01.
        • lambda (optional): double value with the regularization hyper-parameter. If missing, it is set to 0.05.
        • seed (optional): random seed for random numbers generation. If missing, random value is used.
        Parameters:
        datamodel - DataModel instance
        params - Model's hyper-parameters values
      • BiasedMF

        public BiasedMF​(DataModel datamodel,
                        int numFactors,
                        int numIters)
        Model constructor
        Parameters:
        datamodel - DataModel instance
        numFactors - Number of factors
        numIters - Number of iterations
      • BiasedMF

        public BiasedMF​(DataModel datamodel,
                        int numFactors,
                        int numIters,
                        long seed)
        Model constructor
        Parameters:
        datamodel - DataModel instance
        numFactors - Number of factors
        numIters - Number of iterations
        seed - Seed for random numbers generation
      • BiasedMF

        public BiasedMF​(DataModel datamodel,
                        int numFactors,
                        int numIters,
                        double lambda)
        Model constructor
        Parameters:
        datamodel - DataModel instance
        numFactors - Number of factors
        numIters - Number of iterations
        lambda - Regularization parameter
      • BiasedMF

        public BiasedMF​(DataModel datamodel,
                        int numFactors,
                        int numIters,
                        double lambda,
                        long seed)
        Model constructor
        Parameters:
        datamodel - DataModel instance
        numFactors - Number of factors
        numIters - Number of iterations
        lambda - Regularization parameter
        seed - Seed for random numbers generation
      • BiasedMF

        public BiasedMF​(DataModel datamodel,
                        int numFactors,
                        int numIters,
                        double lambda,
                        double gamma,
                        long seed)
        Model constructor
        Parameters:
        datamodel - DataModel instance
        numFactors - Number of factors
        numIters - Number of iterations
        lambda - Regularization parameter
        gamma - Learning rate parameter
        seed - Seed for random numbers generation
    • Method Detail

      • getNumFactors

        public int getNumFactors()
        Get the number of factors of the model
        Returns:
        Number of factors
      • getNumIters

        public int getNumIters()
        Get the number of iterations
        Returns:
        Number of iterations
      • getLambda

        public double getLambda()
        Get the regularization parameter of the model
        Returns:
        Lambda
      • getGamma

        public double getGamma()
        Get the learning rate parameter of the model
        Returns:
        Gamma
      • getUserFactors

        public double[] getUserFactors​(int userIndex)
        Get the latent factors vector of a user (pu)
        Parameters:
        userIndex - User index
        Returns:
        Latent factors vector
      • getUserBias

        public double getUserBias​(int userIndex)
        Get the bias of a user (bu)
        Parameters:
        userIndex - User index
        Returns:
        Bias
      • getItemFactors

        public double[] getItemFactors​(int itemIndex)
        Get the latent factors vector of an item (qi)
        Parameters:
        itemIndex - Item index
        Returns:
        Latent factors vector
      • getItemBias

        public double getItemBias​(int itemIndex)
        Get the bias of a item (bi)
        Parameters:
        itemIndex - Item index
        Returns:
        Bias
      • 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)
        Description copied from class: Recommender
        Computes a rating prediction
        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