MyMediaLite  3.07
Public Member Functions | Protected Member Functions | Protected Attributes | Properties
TimeAwareBaseline Class Reference

Time-aware bias model. More...

Inheritance diagram for TimeAwareBaseline:
TimeAwareRatingPredictor IIterativeModel RatingPredictor ITimeAwareRatingPredictor Recommender IRatingPredictor IRatingPredictor IRecommender IRecommender IRecommender TimeAwareBaselineWithFrequencies

List of all members.

Public Member Functions

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
virtual float ComputeObjective ()
 Compute the current optimization objective (usually loss plus regularization term) of the model.
virtual void Iterate ()
 Run one iteration (= pass over the training data)
virtual void LoadModel (string file)
 Get the model parameters from a file.
override float Predict (int user_id, int item_id)
 Predict rating or score for a given user-item combination.
override float Predict (int user_id, int item_id, DateTime time)
 predict rating at a certain point in time
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.
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 SaveModel (string file)
 Save the model parameters to a file.
 TimeAwareBaseline ()
 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.

Protected Member Functions

virtual void InitModel ()
 Initialize the model parameters.
virtual float Predict (int user_id, int item_id, int day, int bin)
 Predict the specified user_id, item_id, day and bin.
int RelativeDay (DateTime datetime)
 Given a DateTime object, return the day relative to the first rating day in the dataset.
virtual void UpdateParameters (int u, int i, int day, int bin, float err)
 Single stochastic gradient descent step: update the parameter values for one user and one item.

Protected Attributes

int latest_relative_day
 last day in the training data, counting from the first day
float max_rating
 Maximum rating value.
float min_rating
 Minimum rating value.
IRatings ratings
 rating data
ITimedRatings timed_ratings
 rating data, including time information

Properties

float AlphaLearnRate [get, set]
 learn rate for the user-wise alphas
float Beta [get, set]
 beta parameter for modeling the drift in the user bias
int BinSize [get, set]
 bin size in days for modeling the time-dependent item bias
float ItemBiasByTimeBinLearnRate [get, set]
 learn rate for the bin-wise item bias
float ItemBiasLearnRate [get, set]
 learn rate for the item bias
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 NumIter [get, set]
 number of iterations over the dataset to perform
override IRatings Ratings [get, set]
 The rating data.
float RegAlpha [get, set]
 regularization for the user-wise alphas
float RegI [get, set]
 regularization for the item bias
float RegItemBiasByTimeBin [get, set]
 regularization for the bin-wise item bias
float RegU [get, set]
 regularization for the user bias
float RegUserBiasByDay [get, set]
 regularization for the day-wise user bias
float RegUserScaling [get, set]
 regularization for the user scaling factor
float RegUserScalingByDay [get, set]
 regularization for the day-wise user scaling factor
virtual ITimedRatings TimedRatings [get, set]
 the rating data, including time information
float UserBiasByDayLearnRate [get, set]
 learn rate for the day-wise user bias
float UserBiasLearnRate [get, set]
 learn rate for the user bias
float UserScalingByDayLearnRate [get, set]
 learn rate for the day-wise user scaling factor
float UserScalingLearnRate [get, set]
 learn rate for the user-wise scaling factor

Detailed Description

Time-aware bias model.

Model described in equation (10) of BellKor Grand Prize documentation for the Netflix Prize (see below). The optimization problem is described in equation (12).

The default hyper-parameter values are set to the ones shown in the report. For datasets other than Netflix, you may want to find better parameters.

Literature:

This recommender does currently NOT support incremental updates.


Constructor & Destructor Documentation

TimeAwareBaseline ( ) [inline]

default constructor


Member Function Documentation

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 ExternalItemRecommender, ExternalRatingPredictor, BiPolarSlopeOne, SlopeOne, Constant, GlobalAverage, UserAverage, ItemAverage, and Random.

Object Clone ( ) [inline, inherited]

create a shallow copy of the object

virtual float ComputeObjective ( ) [inline, virtual]

Compute the current optimization objective (usually loss plus regularization term) of the model.

Returns:
the current objective; -1 if not implemented

Implements IIterativeModel.

Reimplemented in TimeAwareBaselineWithFrequencies.

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

Initialize the model parameters.

Reimplemented in TimeAwareBaselineWithFrequencies.

virtual void Iterate ( ) [inline, virtual]

Run one iteration (= pass over the training data)

Implements IIterativeModel.

virtual void LoadModel ( string  filename) [inline, virtual, inherited]
override float Predict ( int  user_id,
int  item_id 
) [inline, virtual]

Predict rating or score for a given user-item combination.

Parameters:
user_idthe user ID
item_idthe item ID
Returns:
the predicted score/rating for the given user-item combination

Implements Recommender.

virtual float Predict ( int  user_id,
int  item_id,
int  day,
int  bin 
) [inline, protected, virtual]

Predict the specified user_id, item_id, day and bin.

Assumes user and item IDs are valid.

Parameters:
user_idthe user ID
item_idthe item ID
daythe day of the rating
binthe day bin of the rating

Reimplemented in TimeAwareBaselineWithFrequencies.

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

predict rating at a certain point in time

Parameters:
user_idthe user ID
item_idthe item ID
timethe time of the rating event

Implements TimeAwareRatingPredictor.

Reimplemented in TimeAwareBaselineWithFrequencies.

IList<Tuple<int, float> > Recommend ( int  user_id,
int  n = -1,
ICollection< int >  ignore_items = null,
ICollection< int >  candidate_items = null 
) [inherited]

Recommend items for a given user.

Parameters:
user_idthe user ID
nthe number of items to recommend, -1 for as many as possible
ignore_itemscollection if items that should not be returned; if null, use empty collection
candidate_itemsthe candidate items to choose from; if null, use all items
Returns:
a sorted list of (item_id, score) tuples

Implemented in WeightedEnsemble, and Ensemble.

int RelativeDay ( DateTime  datetime) [inline, protected]

Given a DateTime object, return the day relative to the first rating day in the dataset.

Returns:
the day relative to the first rating day in the dataset
Parameters:
datetimethe date/time of the rating event
virtual void SaveModel ( string  filename) [inline, virtual, inherited]
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 Recommender.

Reimplemented in TimeAwareBaselineWithFrequencies.

virtual void UpdateParameters ( int  u,
int  i,
int  day,
int  bin,
float  err 
) [inline, protected, virtual]

Single stochastic gradient descent step: update the parameter values for one user and one item.

Parameters:
uthe user ID
ithe item ID
daythe day of the rating
binthe day bin of the rating
errthe current error made for this rating

Reimplemented in TimeAwareBaselineWithFrequencies.


Member Data Documentation

int latest_relative_day [protected]

last day in the training data, counting from the first day

float max_rating [protected, inherited]

Maximum rating value.

float min_rating [protected, inherited]

Minimum rating value.

IRatings ratings [protected, inherited]

rating data

ITimedRatings timed_ratings [protected, inherited]

rating data, including time information


Property Documentation

float AlphaLearnRate [get, set]

learn rate for the user-wise alphas

float Beta [get, set]

beta parameter for modeling the drift in the user bias

int BinSize [get, set]

bin size in days for modeling the time-dependent item bias

float ItemBiasByTimeBinLearnRate [get, set]

learn rate for the bin-wise item bias

float ItemBiasLearnRate [get, set]

learn rate for the item bias

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 NumIter [get, set]

number of iterations over the dataset to perform

Implements IIterativeModel.

override IRatings Ratings [get, set, inherited]

The rating data.

Reimplemented from RatingPredictor.

float RegAlpha [get, set]

regularization for the user-wise alphas

float RegI [get, set]

regularization for the item bias

float RegItemBiasByTimeBin [get, set]

regularization for the bin-wise item bias

float RegU [get, set]

regularization for the user bias

float RegUserBiasByDay [get, set]

regularization for the day-wise user bias

float RegUserScaling [get, set]

regularization for the user scaling factor

float RegUserScalingByDay [get, set]

regularization for the day-wise user scaling factor

virtual ITimedRatings TimedRatings [get, set, inherited]

the rating data, including time information

Implements ITimeAwareRatingPredictor.

float UserBiasByDayLearnRate [get, set]

learn rate for the day-wise user bias

float UserBiasLearnRate [get, set]

learn rate for the user bias

float UserScalingByDayLearnRate [get, set]

learn rate for the day-wise user scaling factor

float UserScalingLearnRate [get, set]

learn rate for the user-wise scaling factor


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