ItemSimilarityRecommender

The Item Similarity recommender takes as input a list of items and scores, then uses that information and a table of item similarities to predict similarity scores for all items. By default, the items predicted are most similar to the given items but not part of that item set.

The predicted score for a given item k is as follows:

sum_(i in observed items)
sim_(k,i) * (score_i - shift_k)

Because only the most similar scores for each item i are stored, sim_(k,i) is often zero.

For many models, the score adjustment parameter shift_j is zero – it’s occasionally used to counteract global biases for popular items.

message ItemSimilarityRecommender {

    message ConnectedItem {
        uint64 itemId = 1;
        double similarityScore = 2;
    }

    message SimilarItems {
        uint64 itemId = 1;
        repeated ConnectedItem similarItemList = 2;
        double itemScoreAdjustment = 3;
    }

    repeated SimilarItems itemItemSimilarities = 1;

    StringVector itemStringIds = 2;
    Int64Vector itemInt64Ids = 3;


    string recommendedItemListOutputFeatureName = 20;
    string recommendedItemScoreOutputFeatureName = 21;

}

ItemSimilarityRecommender.ConnectedItem

The items similar to a given base item.

message ConnectedItem {
    uint64 itemId = 1;
    double similarityScore = 2;
}

ItemSimilarityRecommender.SimilarItems

The formula for the score of a given model as given above, with shift_k

parameter given by itemScoreAdjustment, and the similar item list filling in all the known sim(k,i) scores for i given by itemID and k given by the itemID parameter in the similarItemList.

message SimilarItems {
    uint64 itemId = 1;
    repeated ConnectedItem similarItemList = 2;
    double itemScoreAdjustment = 3;
}