MyMediaLite
3.11
|
Sparse Linear Methods (SLIM) for item prediction (ranking) optimized for the elastic net loss More...
Public Member Functions | |
virtual void | AddFeedback (ICollection< Tuple< int, int >> feedback) |
Add positive feedback events and perform incremental training More... | |
virtual bool | CanPredict (int user_id, int item_id) |
Check whether a useful prediction (i.e. not using a fallback/default answer) can be made for a given user-item combination More... | |
Object | Clone () |
create a shallow copy of the object More... | |
override float | ComputeObjective () |
Compute the regularized loss (regularized squared error on training data) More... | |
void | Iterate (int item_id) |
Perform one iteration of coordinate descent for a given set of item parameters over the training data More... | |
override void | Iterate () |
Iterate this instance. More... | |
LeastSquareSLIM () | |
Default constructor More... | |
override void | LoadModel (string filename) |
Get the model parameters from a file More... | |
float | Predict (int user_id, int item_id, int exclude_item_id) |
Predict the specified user_id, item_id without taking exclude_item_id into consideration. This is needed for the coordinate descent update rule (equation 5 from Friedman et al. (2010)). More... | |
override float | Predict (int user_id, int item_id) |
Predict rating or score for a given user-item combination More... | |
IList< Tuple< int, float > > | Recommend (int user_id, int n=-1, ICollection< int > ignore_items=null, ICollection< int > candidate_items=null) |
Recommend items for a given user More... | |
virtual System.Collections.Generic.IList< Tuple< int, float > > | Recommend (int user_id, int n=-1, System.Collections.Generic.ICollection< int > ignore_items=null, System.Collections.Generic.ICollection< int > candidate_items=null) |
virtual void | RemoveFeedback (ICollection< Tuple< int, int >> feedback) |
Remove all feedback events by the given user-item combinations More... | |
override void | RemoveItem (int item_id) |
Remove all feedback by one item More... | |
override void | RemoveUser (int user_id) |
Remove all feedback by one user More... | |
override void | SaveModel (string filename) |
Save the model parameters to a file More... | |
override string | ToString () |
Return a string representation of the recommender More... | |
override void | Train () |
Learn the model parameters of the recommender from the training data More... | |
void | Train (int item_id) |
Learns the set of parameters for a given item More... | |
Protected Member Functions | |
override void | AddItem (int item_id) |
override void | AddUser (int user_id) |
override void | InitModel () |
virtual void | RetrainItem (int item_id) |
Retrain the latent factors of a given item More... | |
virtual void | UpdateParameters (int item_id, int other_item_id) |
Update item parameters according to the coordinate descent update rule More... | |
Protected Attributes | |
Matrix< float > | item_weights |
Item weight matrix (the W matrix in the original paper) More... | |
ItemKNN | itemKNN |
The item KNN used in the feature selection step More... | |
uint | neighbors = 50 |
How many neighbors to use in the kNN feature selection More... | |
double | reg_l1 = 0.01 |
Regularization parameter for the L1 regularization term (lambda in the original paper) More... | |
double | reg_l2 = 0.001 |
Regularization parameter for the L2 regularization term (beta/2 in the original paper) More... | |
Properties | |
virtual IPosOnlyFeedback | Feedback [get, set] |
the feedback data to be used for training More... | |
double | InitMean [get, set] |
Mean of the normal distribution used to initialize the latent factors More... | |
double | InitStdDev [get, set] |
Standard deviation of the normal distribution used to initialize the latent factors More... | |
uint | K [get, set] |
How many neighbors to use in the kNN feature selection More... | |
int | MaxItemID [get, set] |
Maximum item ID More... | |
int | MaxUserID [get, set] |
Maximum user ID More... | |
uint | NumIter [get, set] |
Number of iterations over the training data More... | |
double | RegL1 [get, set] |
Regularization parameter for the L1 regularization term (lambda in the original paper) More... | |
double | RegL2 [get, set] |
Regularization parameter for the L2 regularization term (beta/2 in the original paper) More... | |
bool | UpdateItems [get, set] |
bool | UpdateUsers [get, set] |
Sparse Linear Methods (SLIM) for item prediction (ranking) optimized for the elastic net loss
The model is learned using a coordinate descent algorithm with soft thresholding (Friedman et al. 2010).
Literature:
This recommender supports incremental updates.
|
inline |
Default constructor
|
inlinevirtualinherited |
Add positive feedback events and perform incremental training
feedback | collection of user id - item id tuples |
Implements IIncrementalItemRecommender.
Reimplemented in UserKNN, ItemKNN, MostPopular, and MF.
|
inlinevirtualinherited |
Check whether a useful prediction (i.e. not using a fallback/default answer) can be made for a given user-item combination
It is up to the recommender implementor to decide when a prediction is useful, and to document it accordingly.
user_id | the user ID |
item_id | the item ID |
Implements IRecommender.
Reimplemented in ExternalItemRecommender, ExternalRatingPredictor, BiPolarSlopeOne, SlopeOne, Constant, GlobalAverage, UserAverage, ItemAverage, and Random.
|
inlineinherited |
create a shallow copy of the object
|
inlinevirtual |
Compute the regularized loss (regularized squared error on training data)
Implements SLIM.
|
inline |
Perform one iteration of coordinate descent for a given set of item parameters over the training data
|
inlinevirtual |
Iterate this instance.
Implements SLIM.
|
inlinevirtual |
Get the model parameters from a file
filename | the name of the file to read from |
Reimplemented from Recommender.
|
inline |
Predict the specified user_id, item_id without taking exclude_item_id into consideration. This is needed for the coordinate descent update rule (equation 5 from Friedman et al. (2010)).
user_id | User_id. |
item_id | Item_id. |
exclude_item_id | Current item ID which shouldn't . |
|
inlinevirtual |
Predict rating or score for a given user-item combination
user_id | the user ID |
item_id | the item ID |
Implements Recommender.
|
inherited |
Recommend items for a given user
user_id | the user ID |
n | the number of items to recommend, -1 for as many as possible |
ignore_items | collection if items that should not be returned; if null, use empty collection |
candidate_items | the candidate items to choose from; if null, use all items |
Implemented in WeightedEnsemble, and Ensemble.
|
inlinevirtualinherited |
Remove all feedback events by the given user-item combinations
feedback | collection of user id - item id tuples |
Implements IIncrementalItemRecommender.
Reimplemented in UserKNN, MostPopular, ItemKNN, and MF.
|
inlinevirtual |
Remove all feedback by one item
item_id | the item ID |
Reimplemented from IncrementalItemRecommender.
|
inlinevirtual |
Remove all feedback by one user
user_id | the user ID |
Reimplemented from IncrementalItemRecommender.
|
inlineprotectedvirtual |
Retrain the latent factors of a given item
item_id | the item ID |
|
inlinevirtual |
Save the model parameters to a file
filename | the name of the file to write to |
Reimplemented from Recommender.
|
inline |
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.
|
inlinevirtual |
Learn the model parameters of the recommender from the training data
Implements Recommender.
|
inline |
Learns the set of parameters for a given item
|
inlineprotectedvirtual |
Update item parameters according to the coordinate descent update rule
item_id | the ID of the first item |
other_item_id | the ID of the second item |
|
protectedinherited |
Item weight matrix (the W matrix in the original paper)
|
protected |
How many neighbors to use in the kNN feature selection
|
protected |
Regularization parameter for the L1 regularization term (lambda in the original paper)
|
protected |
Regularization parameter for the L2 regularization term (beta/2 in the original paper)
|
getsetinherited |
the feedback data to be used for training
|
getsetinherited |
Mean of the normal distribution used to initialize the latent factors
|
getsetinherited |
Standard deviation of the normal distribution used to initialize the latent factors
|
getset |
How many neighbors to use in the kNN feature selection
|
getsetinherited |
Maximum item ID
|
getsetinherited |
Maximum user ID
|
getsetinherited |
Number of iterations over the training data
|
getset |
Regularization parameter for the L1 regularization term (lambda in the original paper)
|
getset |
Regularization parameter for the L2 regularization term (beta/2 in the original paper)