Friday, 8 January 2016

Lenskit: Popularity baseline (Learning to Rank)

This post is dedicated to popularity baseline in Lenskit 2 framework. The framework lacks this baseline. I therefore provide an implementation and demonstrate the results of the baseline.
The implementation includes three classes:
PopItemScorer - items scorer, which provides actual scores for items
PopModel - model that contains popularity of each item
PopModelBuilder - builder calculates popularity for each items and puts them to the model.




Popularity algorithm is famous for being a very strong baseline in learning to rank problem (http://technocalifornia.blogspot.fi/2013/07/recommendations-as-personalized.html).
Here are results I obtained using Lenskit framework:


SVD was trained using 50 features and 1000 iterations.
Each evaluated algorithm ranked items from the whole universe of items.
According to the obtained results. popularity baseline outperforms the algorithms implemented in lenskit framework in this evaluation setting.
Popularity baseline is very strong, because in this evaluation setting we assume that unrated items are irrelevant. Popularity is not very good at predicting items relevant for a user. It is good at predicting which item a user is going to rate, as users rate popular items on average.



In another evaluation setting, where algorithms ranked only test items (rated), popularity baseline is not as strong as in the first experimental setting.
The observation might indicate that the second experimental setting is more fair. However, to the best of my knowledge, the number of papers that indicate this observation are very limited.

No comments:

Post a Comment