MyMediaLite
3.04
|
Time-aware bias model with frequencies. More...
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 | |
override 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, DateTime time) |
predict rating at a certain point in time | |
override float | Predict (int user_id, int item_id) |
Predict rating or score for a given user-item combination. | |
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. | |
TimeAwareBaselineWithFrequencies () | |
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 | |
override void | InitModel () |
Initialize the model parameters. | |
override 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. | |
override 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 | FrequencyLogBase [get, set] |
logarithmic base for the frequency counts | |
float | ItemBiasAtFrequencyLearnRate [get, set] |
learn rate for b_{i, f_{ui}} | |
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 | RegItemBiasAtFrequency [get, set] |
regularization constant for b_{i, f_{ui}} | |
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 |
Time-aware bias model with frequencies.
Model described in equation (11) of BellKor Grand Prize documentation for the Netflix Prize (see below).
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.
TimeAwareBaselineWithFrequencies | ( | ) | [inline] |
Default constructor.
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.
user_id | the user ID |
item_id | the item ID |
Implements IRecommender.
Reimplemented in BiPolarSlopeOne, SlopeOne, Constant, GlobalAverage, UserAverage, ItemAverage, and Random.
Object Clone | ( | ) | [inline, inherited] |
create a shallow copy of the object
override float ComputeObjective | ( | ) | [inline, virtual] |
Compute the current optimization objective (usually loss plus regularization term) of the model.
Reimplemented from TimeAwareBaseline.
override void InitModel | ( | ) | [inline, protected, virtual] |
Initialize the model parameters.
Reimplemented from TimeAwareBaseline.
virtual void Iterate | ( | ) | [inline, virtual, inherited] |
Run one iteration (= pass over the training data)
Implements IIterativeModel.
virtual void LoadModel | ( | string | filename | ) | [inline, virtual, inherited] |
Get the model parameters from a file.
filename | the name of the file to read from |
Implements IRecommender.
Reimplemented in BPRMF, MatrixFactorization, BiasedMatrixFactorization, CoClustering, SVDPlusPlus, BPRLinear, UserItemBaseline, FactorWiseMatrixFactorization, SigmoidCombinedAsymmetricFactorModel, SigmoidSVDPlusPlus, BiPolarSlopeOne, SigmoidItemAsymmetricFactorModel, SigmoidUserAsymmetricFactorModel, KNN, MostPopular, NaiveBayes, KNN, SlopeOne, ItemAttributeSVM, MostPopularByAttributes, MF, EntityAverage, GlobalAverage, Constant, Random, Random, and Zero.
override 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.
user_id | the user ID |
item_id | the item ID |
day | the day of the rating |
bin | the day bin of the rating |
Reimplemented from TimeAwareBaseline.
override float Predict | ( | int | user_id, |
int | item_id, | ||
DateTime | time | ||
) | [inline, virtual] |
predict rating at a certain point in time
user_id | the user ID |
item_id | the item ID |
time | the time of the rating event |
Reimplemented from TimeAwareBaseline.
override float Predict | ( | int | user_id, |
int | item_id | ||
) | [inline, virtual, inherited] |
Predict rating or score for a given user-item combination.
user_id | the user ID |
item_id | the item ID |
Implements Recommender.
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.
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.
int RelativeDay | ( | DateTime | datetime | ) | [inline, protected, inherited] |
Given a DateTime object, return the day relative to the first rating day in the dataset.
datetime | the date/time of the rating event |
virtual void SaveModel | ( | string | filename | ) | [inline, virtual, inherited] |
Save the model parameters to a file.
filename | the name of the file to write to |
Implements IRecommender.
Reimplemented in BPRMF, MatrixFactorization, BiasedMatrixFactorization, CoClustering, SVDPlusPlus, BPRLinear, UserItemBaseline, FactorWiseMatrixFactorization, BiPolarSlopeOne, SigmoidCombinedAsymmetricFactorModel, NaiveBayes, SigmoidItemAsymmetricFactorModel, SigmoidUserAsymmetricFactorModel, SlopeOne, KNN, MostPopular, KNN, ItemAttributeSVM, MostPopularByAttributes, MF, EntityAverage, GlobalAverage, Constant, Random, Random, and Zero.
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 TimeAwareBaseline.
override 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.
u | the user ID |
i | the item ID |
day | the day of the rating |
bin | the day bin of the rating |
err | the current error made for this rating |
Reimplemented from TimeAwareBaseline.
int latest_relative_day [protected, inherited] |
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.
ITimedRatings timed_ratings [protected, inherited] |
rating data, including time information
float AlphaLearnRate [get, set, inherited] |
learn rate for the user-wise alphas
float Beta [get, set, inherited] |
beta parameter for modeling the drift in the user bias
int BinSize [get, set, inherited] |
bin size in days for modeling the time-dependent item bias
float FrequencyLogBase [get, set] |
logarithmic base for the frequency counts
float ItemBiasAtFrequencyLearnRate [get, set] |
learn rate for b_{i, f_{ui}}
float ItemBiasByTimeBinLearnRate [get, set, inherited] |
learn rate for the bin-wise item bias
float ItemBiasLearnRate [get, set, inherited] |
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, inherited] |
number of iterations over the dataset to perform
Implements IIterativeModel.
The rating data.
Reimplemented from RatingPredictor.
float RegAlpha [get, set, inherited] |
regularization for the user-wise alphas
float RegI [get, set, inherited] |
regularization for the item bias
float RegItemBiasAtFrequency [get, set] |
regularization constant for b_{i, f_{ui}}
float RegItemBiasByTimeBin [get, set, inherited] |
regularization for the bin-wise item bias
float RegU [get, set, inherited] |
regularization for the user bias
float RegUserBiasByDay [get, set, inherited] |
regularization for the day-wise user bias
float RegUserScaling [get, set, inherited] |
regularization for the user scaling factor
float RegUserScalingByDay [get, set, inherited] |
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, inherited] |
learn rate for the day-wise user bias
float UserBiasLearnRate [get, set, inherited] |
learn rate for the user bias
float UserScalingByDayLearnRate [get, set, inherited] |
learn rate for the day-wise user scaling factor
float UserScalingLearnRate [get, set, inherited] |
learn rate for the user-wise scaling factor