Matrix factorization engine with explicit user and item bias. More...
Public Member Functions | |
override void | Add (int user_id, int item_id, double rating) |
override void | AddItem (int item_id) |
override void | AddUser (int user_id) |
BiasedMatrixFactorization () | |
Default constructor. | |
virtual bool | CanPredict (int user_id, int item_id) |
Check whether a useful prediction can be made for a given user-item combination. | |
Object | Clone () |
create a shallow copy of the object | |
double | ComputeFit () |
Compute fit (RMSE) on the training data. | |
override double | ComputeLoss () |
Compute the regularized loss. | |
override void | Iterate () |
Run one iteration (= pass over the training data). | |
override void | LoadModel (string filename) |
Get the model parameters from a file. | |
override double | Predict (int user_id, int item_id) |
Predict the rating of a given user for a given item. | |
override void | RemoveItem (int item_id) |
override void | RemoveRating (int user_id, int item_id) |
override void | RemoveUser (int user_id) |
override void | RetrainItem (int item_id) |
Updates the latent factors of an item. | |
override void | RetrainUser (int user_id) |
Updates the latent factors on a user. | |
override void | SaveModel (string filename) |
Save the model parameters to a file. | |
override string | ToString () |
Return a string representation of the recommender. | |
override void | Train () |
Learn the model parameters of the recommender from the training data. | |
override void | UpdateRating (int user_id, int item_id, double rating) |
Protected Member Functions | |
override void | InitModel () |
Initialize the model data structure. | |
override void | Iterate (IList< int > rating_indices, bool update_user, bool update_item) |
Iterate once over rating data and adjust corresponding factors (stochastic gradient descent). | |
double | Predict (int user_id, int item_id, bool bound) |
Protected Attributes | |
double | global_bias |
The bias (global average). | |
double[] | item_bias |
the item biases | |
Matrix< double > | item_factors |
Matrix containing the latent item factors. | |
double | max_rating |
The max rating value. | |
double | min_rating |
The min rating value. | |
IRatings | ratings |
rating data | |
double[] | user_bias |
the user biases | |
Matrix< double > | user_factors |
Matrix containing the latent user factors. | |
Properties | |
double | BiasReg [get, set] |
regularization constant for the bias terms | |
bool | BoldDriver [get, set] |
Use bold driver heuristics for learning rate adaption. | |
double | InitMean [get, set] |
Mean of the normal distribution used to initialize the factors. | |
double | InitStdev [get, set] |
Standard deviation of the normal distribution used to initialize the factors. | |
double | LearnRate [get, set] |
Learn rate. | |
int | MaxItemID [get, set] |
Maximum item ID. | |
virtual double | MaxRating [get, set] |
The max rating value. | |
int | MaxUserID [get, set] |
Maximum user ID. | |
virtual double | MinRating [get, set] |
The min rating value. | |
int | NumFactors [get, set] |
Number of latent factors. | |
int | NumIter [get, set] |
Number of iterations over the training data. | |
virtual IRatings | Ratings [get, set] |
The rating data. | |
double | RegI [get, set] |
regularization constant for the user factors | |
double | RegU [get, set] |
regularization constant for the user factors | |
override double | Regularization [set] |
Regularization parameter. | |
bool | UpdateItems [get, set] |
true if items shall be updated when doing online updates | |
bool | UpdateUsers [get, set] |
true if users shall be updated when doing online updates |
Matrix factorization engine with explicit user and item bias.
Default constructor.
virtual bool CanPredict | ( | int | user_id, | |
int | item_id | |||
) | [virtual, inherited] |
Check whether a useful prediction can be made for a given user-item combination.
user_id | the user ID | |
item_id | the item ID |
Implements IRecommender.
Reimplemented in BiPolarSlopeOne, GlobalAverage, ItemAverage, SlopeOne, and UserAverage.
Object Clone | ( | ) | [inherited] |
create a shallow copy of the object
double ComputeFit | ( | ) | [inherited] |
Compute fit (RMSE) on the training data.
Implements IIterativeModel.
override double ComputeLoss | ( | ) | [virtual] |
override void InitModel | ( | ) | [protected, virtual] |
Initialize the model data structure.
Reimplemented from MatrixFactorization.
override void Iterate | ( | IList< int > | rating_indices, | |
bool | update_user, | |||
bool | update_item | |||
) | [protected, virtual] |
Iterate once over rating data and adjust corresponding factors (stochastic gradient descent).
rating_indices | a list of indices pointing to the ratings to iterate over | |
update_user | true if user factors to be updated | |
update_item | true if item factors to be updated |
Reimplemented from MatrixFactorization.
override void LoadModel | ( | string | filename | ) | [virtual] |
Get the model parameters from a file.
filename | the name of the file to read from |
Reimplemented from MatrixFactorization.
override double Predict | ( | int | user_id, | |
int | item_id | |||
) | [virtual] |
Predict the rating of a given user for a given item.
If the user or the item are not known to the engine, the global average is returned. To avoid this behavior for unknown entities, use CanPredict() to check before.
user_id | the user ID | |
item_id | the item ID |
Reimplemented from MatrixFactorization.
override void RetrainItem | ( | int | item_id | ) | [virtual] |
Updates the latent factors of an item.
item_id | the item ID |
Reimplemented from MatrixFactorization.
override void RetrainUser | ( | int | user_id | ) | [virtual] |
Updates the latent factors on a user.
user_id | the user ID |
Reimplemented from MatrixFactorization.
override void SaveModel | ( | string | filename | ) | [virtual] |
Save the model parameters to a file.
filename | the name of the file to write to |
Reimplemented from MatrixFactorization.
override string ToString | ( | ) |
Return a string representation of the recommender.
The ToString() method of recommenders should list the class name and all hyperparameters, separated by space characters.
Reimplemented from MatrixFactorization.
double global_bias [protected, inherited] |
The bias (global average).
double [] item_bias [protected] |
the item biases
Matrix<double> item_factors [protected, inherited] |
Matrix containing the latent item factors.
double max_rating [protected, inherited] |
The max rating value.
double min_rating [protected, inherited] |
The min rating value.
double [] user_bias [protected] |
the user biases
Matrix<double> user_factors [protected, inherited] |
Matrix containing the latent user factors.
double BiasReg [get, set] |
regularization constant for the bias terms
bool BoldDriver [get, set] |
Use bold driver heuristics for learning rate adaption.
See Rainer Gemulla, Peter J. Haas, Erik Nijkamp, Yannis Sismanis: Large-Scale Matrix Factorization with Distributed Stochastic Gradient Descent 2011
double InitMean [get, set, inherited] |
Mean of the normal distribution used to initialize the factors.
double InitStdev [get, set, inherited] |
Standard deviation of the normal distribution used to initialize the factors.
double LearnRate [get, set, inherited] |
Learn rate.
int MaxItemID [get, set, inherited] |
Maximum item ID.
Maximum item ID
virtual double MaxRating [get, set, inherited] |
int MaxUserID [get, set, inherited] |
Maximum user ID.
Maximum user ID
virtual double MinRating [get, set, inherited] |
int NumFactors [get, set, inherited] |
Number of latent factors.
int NumIter [get, set, inherited] |
Number of iterations over the training data.
Implements IIterativeModel.
double RegI [get, set] |
regularization constant for the user factors
double RegU [get, set] |
regularization constant for the user factors
override double Regularization [set] |
Regularization parameter.
Reimplemented from MatrixFactorization.
bool UpdateItems [get, set, inherited] |
true if items shall be updated when doing online updates
true if items shall be updated when doing online updates
bool UpdateUsers [get, set, inherited] |
true if users shall be updated when doing online updates
true if users shall be updated when doing online updates