我正在尝试解决的问题是为我的数据找到正确的相似性指标,rescorer启发式和过滤级别。 (我使用'过滤级别'表示用户或项目必须与之关联的评级数量,以使其进入生产数据库。)
设置
我正在使用mahout的品味协作过滤框架。我的数据以三元组的形式出现,其中项目的评级包含在集合{1,2,3,4,5}中。我正在使用logBased推荐器在logLikelihood上进行相似性度量。我过滤掉了生产数据集中少于20个项目的用户。 RMSE看起来很好(1.17ish)并且没有数据封顶,但是有一种奇怪的行为是不可取的并且接近错误状态。
问题
第一次通话 - 生成“热门项目”列表,但没有来自用户的信息。要做到这一点,我使用,我称之为居中总和:
for i in items
for r in i's ratings
sum += r - center
where center = (5+1)/2 , if you allow ratings in the scale of 1 to 5 for example
我使用居中总和而不是平均评分来生成热门商品列表主要是因为我希望商品收到的评分数量会计入排名。
第二次通话 - 我向第一次通话中返回的每个热门项目要求9个类似的项目。对于我要求提供相似项目的每个顶级项目,返回的9个相似项目中的7个是相同的(与其他顶级项目返回的类似项目集合)!
现在是时候尝试一些重新考虑了吗?也许将两个游戏的相似度乘以(合作项目的数量)/ x,其中x被调整(大约50或者某些东西开始)。
先谢谢fellas
答案 0 :(得分:0)
你要求50个项目类似于某个项目X.然后你为这些项目中的每个项目寻找9个相似的项目。而且大多数都是相同的。为什么这令人惊讶?类似的项目应该与其他相同的项目类似。
什么是“中心”总和?如果每个计算的总和中的项目数大致相似,那么按总和而不是平均排名仍会给出相对类似的输出。
你想解决什么问题?因为这些似乎都与推荐系统无关,所以您描述了您正在使用和工作。对数似然相似性甚至不基于评级。