Weighted matrix factorization method proposed by Hu et al. and Pan et al. More...
Public Member Functions | |
| virtual void | AddFeedback (int user_id, int item_id) |
| 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 | |
| override double | ComputeFit () |
| Computes the fit (optimization criterion) on the training data. | |
| override void | Iterate () |
| Iterate once over the data. | |
| override void | LoadModel (string file) |
| Get the model parameters from a file. | |
| override double | Predict (int user_id, int item_id) |
| Predict the weight for a given user-item combination. | |
| virtual void | RemoveFeedback (int user_id, int item_id) |
| virtual void | RemoveItem (int item_id) |
| virtual void | RemoveUser (int user_id) |
| override void | SaveModel (string file) |
| 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. | |
Protected Member Functions | |
| virtual void | AddItem (int item_id) |
| virtual void | AddUser (int user_id) |
| virtual void | InitModel () |
| virtual void | Optimize (IBooleanMatrix data, Matrix< double > W, Matrix< double > H) |
| Optimizes the specified data. | |
Protected Attributes | |
| Matrix< double > | item_factors |
| Latent item factor matrix. | |
| int | num_factors = 10 |
| Number of latent factors per user/item. | |
| Matrix< double > | user_factors |
| Latent user factor matrix. | |
Properties | |
| double | CPos [get, set] |
| C position: the weight/confidence that is put on positive observations. | |
| virtual IPosOnlyFeedback | Feedback [get, set] |
| the feedback data to be used for training | |
| double | InitMean [get, set] |
| Mean of the normal distribution used to initialize the latent factors. | |
| double | InitStdev [get, set] |
| Standard deviation of the normal distribution used to initialize the latent factors. | |
| int | MaxItemID [get, set] |
| Maximum item ID. | |
| int | MaxUserID [get, set] |
| Maximum user ID. | |
| uint | NumFactors [get, set] |
| Number of latent factors per user/item. | |
| uint | NumIter [get, set] |
| Number of iterations over the training data. | |
| double | Regularization [get, set] |
| Regularization parameter. | |
Weighted matrix factorization method proposed by Hu et al. and Pan et al.
Y. Hu Y. Koren C. Volinsky: Collaborative filtering for implicit feedback datasets, IEEE International Conference on Data Mining (ICDM), 2008
R. Pan, Y. Zhou, B. Cao, N. N. Liu, R. M. Lukose, M. Scholz, Q. Yang: One-class collaborative filtering, IEEE International Conference on Data Mining (ICDM), 2008
We use the fast computation method proposed by Hu et al. and we use a global weight to penalize observed/unobserved values.
This recommender does NOT support incremental updates.
| 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.
| Object Clone | ( | ) | [inherited] |
create a shallow copy of the object
| override double ComputeFit | ( | ) | [virtual] |
Computes the fit (optimization criterion) on the training data.
Implements MF.
| override void Iterate | ( | ) | [virtual] |
Iterate once over the data.
Implements MF.
| override void LoadModel | ( | string | filename | ) | [virtual, inherited] |
Get the model parameters from a file.
| filename | the name of the file to read from |
Implements ItemRecommender.
Reimplemented in BPRMF.
| virtual void Optimize | ( | IBooleanMatrix | data, | |
| Matrix< double > | W, | |||
| Matrix< double > | H | |||
| ) | [protected, virtual] |
Optimizes the specified data.
| data | data | |
| W | W | |
| H | H |
| override double Predict | ( | int | user_id, | |
| int | item_id | |||
| ) | [virtual, inherited] |
Predict the weight for a given user-item combination.
If the user or the item are not known to the recommender, zero is returned. To avoid this behavior for unknown entities, use CanPredict() to check before.
| user_id | the user ID | |
| item_id | the item ID |
Implements ItemRecommender.
Reimplemented in BPRMF.
| override void SaveModel | ( | string | filename | ) | [virtual, inherited] |
Save the model parameters to a file.
| filename | the name of the file to write to |
Implements ItemRecommender.
Reimplemented in BPRMF.
| 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.
Implements IRecommender.
Matrix<double> item_factors [protected, inherited] |
Latent item factor matrix.
int num_factors = 10 [protected, inherited] |
Number of latent factors per user/item.
Matrix<double> user_factors [protected, inherited] |
Latent user factor matrix.
double CPos [get, set] |
C position: the weight/confidence that is put on positive observations.
The alpha value in Hu et al.
virtual IPosOnlyFeedback Feedback [get, set, inherited] |
the feedback data to be used for training
double InitMean [get, set, inherited] |
Mean of the normal distribution used to initialize the latent factors.
double InitStdev [get, set, inherited] |
Standard deviation of the normal distribution used to initialize the latent factors.
int MaxItemID [get, set, inherited] |
Maximum item ID.
int MaxUserID [get, set, inherited] |
Maximum user ID.
uint NumFactors [get, set, inherited] |
Number of latent factors per user/item.
uint NumIter [get, set, inherited] |
Number of iterations over the training data.
Implements IIterativeModel.
double Regularization [get, set] |
Regularization parameter.
1.6.3