MyMediaLite  3.01
Public Member Functions | Protected Member Functions | Protected Attributes | Properties
SigmoidSVDPlusPlus Class Reference

SVD++: Matrix factorization that also takes into account _what_ users have rated; variant that uses a sigmoid function. More...

Inheritance diagram for SigmoidSVDPlusPlus:
SVDPlusPlus ITransductiveRatingPredictor MatrixFactorization ITransductiveRatingPredictor IRatingPredictor IncrementalRatingPredictor IIterativeModel IFoldInRatingPredictor IRatingPredictor IRecommender RatingPredictor IIncrementalRatingPredictor IRatingPredictor IRecommender IRatingPredictor IRatingPredictor IRecommender IRecommender IRecommender

List of all members.

Public Member Functions

override void AddRatings (IRatings ratings)
 Add new ratings and perform incremental training.
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.
Object Clone ()
 create a shallow copy of the object
override float ComputeObjective ()
 Compute the regularized loss.
virtual void Iterate ()
 Run one iteration (= pass over the training data)
override void LoadModel (string filename)
 Get the model parameters from a file.
override float Predict (int user_id, int item_id)
 Predict the rating of a given user for a given item.
override void RemoveItem (int item_id)
 Remove an item from the recommender model, and delete all ratings of this item.
override void RemoveRatings (IDataSet ratings)
 Remove existing ratings and perform "incremental" training.
override void RemoveUser (int user_id)
 Remove a user from the recommender model, and delete all their ratings.
virtual 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.
IList< Pair< int, float > > ScoreItems (IList< Pair< int, float >> rated_items, IList< int > candidate_items)
 Rate a list of items given a list of ratings that represent a new user.
 SigmoidSVDPlusPlus ()
 Default constructor.
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 UpdateRatings (IRatings ratings)
 Update existing ratings and perform incremental training.

Protected Member Functions

override void AddItem (int item_id)
override void AddUser (int user_id)
override double ComputeLoss ()
 Compute the value of the loss function that is currently being optimized.
override float[] FoldIn (IList< Pair< int, float >> rated_items)
 Compute parameters (latent factors) for a user represented by ratings.
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)
void PrecomputeFactors (int user_id)
 Precompute the factors for a given user.
void PrecomputeUserFactors ()
 Precompute all user factors.
float Predict (int user_id, int item_id, bool bound)
virtual float Predict (float[] user_vector, int item_id)
 Predict rating for a fold-in user and an item.

Protected Attributes

float global_bias
 The bias (global average)
float[] item_bias
 rating biases of the items
Matrix< float > item_factors
 Matrix containing the latent item factors.
int[][] items_rated_by_user
 The items rated by the users.
float max_rating
 Maximum rating value.
float min_rating
 Minimum rating value.
Matrix< float > p
 user factors (individual part)
IRatings ratings
 rating data
float[] user_bias
 rating biases of the users
Matrix< float > user_factors
 Matrix containing the latent user factors.
Matrix< float > y
 user factors (part expressed via the rated items)
float[] y_reg
 precomputed regularization terms for the y matrix

Properties

IDataSet AdditionalFeedback [get, set]
 user-item combinations that are known to be queried
float BiasLearnRate [get, set]
 bias learn rate
float BiasReg [get, set]
 regularization constant for biases
bool FrequencyRegularization [get, set]
 Regularization based on rating frequency.
double InitMean [get, set]
 Mean of the normal distribution used to initialize the factors.
double InitStdDev [get, set]
 Standard deviation of the normal distribution used to initialize the factors.
float LearnRate [get, set]
 Learn rate.
OptimizationTarget Loss [get, set]
 The optimization target.
int MaxItemID [get, set]
 Maximum item ID.
virtual float MaxRating [get, set]
 Maximum rating value.
int MaxUserID [get, set]
 Maximum user ID.
virtual float MinRating [get, set]
 Minimum rating value.
uint NumFactors [get, set]
 Number of latent factors.
uint NumIter [get, set]
 Number of iterations over the training data.
virtual IRatings Ratings [get, set]
 The rating data.
virtual float Regularization [get, set]
 Regularization parameter.
bool UpdateItems [get, set]
 true if items shall be updated when doing incremental updates
bool UpdateUsers [get, set]
 true if users shall be updated when doing incremental updates

Detailed Description

SVD++: Matrix factorization that also takes into account _what_ users have rated; variant that uses a sigmoid function.

Literature:


Constructor & Destructor Documentation

SigmoidSVDPlusPlus ( ) [inline]

Default constructor.


Member Function Documentation

override void AddRatings ( IRatings  ratings) [inline, virtual, inherited]

Add new ratings and perform incremental training.

Parameters:
ratingsthe ratings

Reimplemented from IncrementalRatingPredictor.

virtual bool CanPredict ( int  user_id,
int  item_id 
) [inline, virtual, inherited]

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.

Parameters:
user_idthe user ID
item_idthe item ID
Returns:
true if a useful prediction can be made, false otherwise

Implements IRecommender.

Reimplemented in BiPolarSlopeOne, Constant, SlopeOne, GlobalAverage, UserAverage, ItemAverage, and Random.

Object Clone ( ) [inline, inherited]

create a shallow copy of the object

override double ComputeLoss ( ) [inline, protected, virtual]

Compute the value of the loss function that is currently being optimized.

Returns:
the loss

Reimplemented from SVDPlusPlus.

override float ComputeObjective ( ) [inline, virtual, inherited]

Compute the regularized loss.

Returns:
the regularized loss

Reimplemented from MatrixFactorization.

override float [] FoldIn ( IList< Pair< int, float >>  rated_items) [inline, protected, virtual]

Compute parameters (latent factors) for a user represented by ratings.

Returns:
a vector of latent factors
Parameters:
rated_itemsa list of (item ID, rating value) pairs

Reimplemented from SVDPlusPlus.

override void InitModel ( ) [inline, protected, virtual, inherited]

Initialize the model data structure.

Reimplemented from MatrixFactorization.

override void Iterate ( IList< int >  rating_indices,
bool  update_user,
bool  update_item 
) [inline, protected, virtual]

Iterate once over rating data and adjust corresponding factors (stochastic gradient descent)

Parameters:
rating_indicesa list of indices pointing to the ratings to iterate over
update_usertrue if user factors to be updated
update_itemtrue if item factors to be updated

Reimplemented from SVDPlusPlus.

virtual void Iterate ( ) [inline, virtual, inherited]

Run one iteration (= pass over the training data)

Implements IIterativeModel.

Reimplemented in BiasedMatrixFactorization.

override void LoadModel ( string  filename) [inline, virtual]

Get the model parameters from a file.

Parameters:
filenamethe name of the file to read from

Reimplemented from SVDPlusPlus.

void PrecomputeFactors ( int  user_id) [inline, protected, inherited]

Precompute the factors for a given user.

Parameters:
user_idthe ID of the user
void PrecomputeUserFactors ( ) [inline, protected, inherited]

Precompute all user factors.

override float Predict ( int  user_id,
int  item_id 
) [inline, virtual]

Predict the rating of a given user for a given item.

If the user or the item are not known to the recommender, the global average is returned. To avoid this behavior for unknown entities, use CanPredict() to check before.

Parameters:
user_idthe user ID
item_idthe item ID
Returns:
the predicted rating

Reimplemented from SVDPlusPlus.

virtual float Predict ( float[]  user_vector,
int  item_id 
) [inline, protected, virtual, inherited]

Predict rating for a fold-in user and an item.

Parameters:
user_vectora float vector representing the user
item_idthe item ID
Returns:
the predicted rating

Reimplemented in BiasedMatrixFactorization.

override void RemoveItem ( int  item_id) [inline, virtual, inherited]

Remove an item from the recommender model, and delete all ratings of this item.

It is up to the recommender implementor whether there should be model updates after this action, both options are valid.

Parameters:
item_idthe ID of the user to be removed

Reimplemented from IncrementalRatingPredictor.

Reimplemented in BiasedMatrixFactorization.

override void RemoveRatings ( IDataSet  ratings) [inline, virtual, inherited]

Remove existing ratings and perform "incremental" training.

Parameters:
ratingsthe user and item IDs of the ratings to be removed

Reimplemented from IncrementalRatingPredictor.

override void RemoveUser ( int  user_id) [inline, virtual, inherited]

Remove a user from the recommender model, and delete all their ratings.

It is up to the recommender implementor whether there should be model updates after this action, both options are valid.

Parameters:
user_idthe ID of the user to be removed

Reimplemented from IncrementalRatingPredictor.

Reimplemented in BiasedMatrixFactorization.

virtual void RetrainItem ( int  item_id) [inline, virtual, inherited]

Updates the latent factors of an item.

Parameters:
item_idthe item ID

Reimplemented in BiasedMatrixFactorization.

override void RetrainUser ( int  user_id) [inline, virtual, inherited]

Updates the latent factors on a user.

Parameters:
user_idthe user ID

Reimplemented from MatrixFactorization.

override void SaveModel ( string  filename) [inline, virtual, inherited]

Save the model parameters to a file.

Parameters:
filenamethe name of the file to write to

Reimplemented from MatrixFactorization.

IList<Pair<int, float> > ScoreItems ( IList< Pair< int, float >>  rated_items,
IList< int >  candidate_items 
) [inline, inherited]

Rate a list of items given a list of ratings that represent a new user.

Returns:
a list of int and float pairs, representing item IDs and predicted ratings
Parameters:
rated_itemsthe ratings (item IDs and rating values) representing the new user
candidate_itemsthe items to be rated

Implements IFoldInRatingPredictor.

override string ToString ( ) [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.

Reimplemented from SVDPlusPlus.

override void UpdateRatings ( IRatings  ratings) [inline, virtual, inherited]

Update existing ratings and perform incremental training.

Parameters:
ratingsthe ratings

Reimplemented from IncrementalRatingPredictor.


Member Data Documentation

float global_bias [protected, inherited]

The bias (global average)

float [] item_bias [protected, inherited]

rating biases of the items

Matrix<float> item_factors [protected, inherited]

Matrix containing the latent item factors.

int [][] items_rated_by_user [protected, inherited]

The items rated by the users.

float max_rating [protected, inherited]

Maximum rating value.

float min_rating [protected, inherited]

Minimum rating value.

Matrix<float> p [protected, inherited]

user factors (individual part)

IRatings ratings [protected, inherited]

rating data

float [] user_bias [protected, inherited]

rating biases of the users

Matrix<float> user_factors [protected, inherited]

Matrix containing the latent user factors.

Matrix<float> y [protected, inherited]

user factors (part expressed via the rated items)

float [] y_reg [protected, inherited]

precomputed regularization terms for the y matrix


Property Documentation

IDataSet AdditionalFeedback [get, set, inherited]

user-item combinations that are known to be queried

Implements ITransductiveRatingPredictor.

float BiasLearnRate [get, set, inherited]

bias learn rate

float BiasReg [get, set, inherited]

regularization constant for biases

bool FrequencyRegularization [get, set, inherited]

Regularization based on rating frequency.

Regularization proportional to the inverse of the square root of the number of ratings associated with the user or item. As described in the paper by Menon and Elkan.

double InitMean [get, set, inherited]

Mean of the normal distribution used to initialize the factors.

double InitStdDev [get, set, inherited]

Standard deviation of the normal distribution used to initialize the factors.

float LearnRate [get, set, inherited]

Learn rate.

The optimization target.

int MaxItemID [get, set, inherited]

Maximum item ID.

virtual float MaxRating [get, set, inherited]

Maximum rating value.

Implements IRatingPredictor.

int MaxUserID [get, set, inherited]

Maximum user ID.

virtual float MinRating [get, set, inherited]

Minimum rating value.

Implements IRatingPredictor.

uint NumFactors [get, set, inherited]

Number of latent factors.

uint NumIter [get, set, inherited]

Number of iterations over the training data.

Implements IIterativeModel.

virtual IRatings Ratings [get, set, inherited]

The rating data.

Implements IRatingPredictor.

Reimplemented in KNN, FactorWiseMatrixFactorization, TimeAwareRatingPredictor, ItemKNN, and UserKNN.

virtual float Regularization [get, set, inherited]

Regularization parameter.

Reimplemented in BiasedMatrixFactorization.

bool UpdateItems [get, set, inherited]

true if items shall be updated when doing incremental updates

Default should true. Set to false if you do not want any updates to the item model parameters when doing incremental updates.

Implements IIncrementalRatingPredictor.

bool UpdateUsers [get, set, inherited]

true if users shall be updated when doing incremental updates

Default should be true. Set to false if you do not want any updates to the user model parameters when doing incremental updates.

Implements IIncrementalRatingPredictor.


The documentation for this class was generated from the following file: