我正在尝试使用mahout做一些很棒的事件推荐。
对于练习,我尝试了以下示例 -
https://github.com/RevBooyah/Static-mahout-recommender-tutorial/blob/master/ItemRecommend.java
我有点怀疑在数据模型UserId,ItemId和Preference中使用了3件事情,如下所示 -
但是当我运行带或不带偏好的代码时,结果是相同的,所以我怀疑是什么是首选项的使用?如果在这里它没用,那么它如何用于更好的推荐?
我试图找到它但却一无所获。
有人可以帮助我吗?
答案 0 :(得分:1)
您是否正在使用对数似然比的Tanimoto相似性?示例代码使用Tanimoto,因此应根据偏好强度显示不同的推荐强度。这将尝试做一些预测用户评级的事情。它不会影响所有权重,因此要测试您可能需要随机分配权重并与样本数据进行比较。但它对IMO来说并不是很重要。
这是一种古老的方法,可以追溯到Netflix和其他人认为他们想要猜测您的商品评级时。 Netflix和其他大多数人已经远离了这一点,因为正确地排名非常重要,因此用户可以按最佳顺序获得正确的recs。
使用对数似然相似性度量时,排名总是更好 - 对于我已经看过的所有数据,我已经多次测量过质量的差异。 LLR忽略偏好强度,并根据概率方法计算建议,试图预测用户最可能选择的内容。
Ted Dunning描述LLR here