- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用协同过滤构建推荐引擎。对于相似度分数,我使用 Pearson 相关性。大多数时候这很好,但有时我的用户只共享 1 或 2 个字段。例如:
User 1{
a: 4
b: 2
}
User 2{
a: 4
b: 3
}
最佳答案
您可能需要考虑使用余弦相似度而不是 Pearson 相关性。它没有这个问题,并且被广泛用于推荐系统文献中。
Herlocker 等人描述了对此的规范解决方案。在“基于邻域的协同过滤算法中的设计选择的实证分析”中,是“阻尼”皮尔逊相关性以纠正具有小协同评级集的用户之间的过高相关性。基本上,您将 Pearson 相关系数乘以 1 和 cc/50 中的较小者,其中 cc 是两个用户都评价过的项目数。效果是,如果它们至少有 50 个共同点,那么相似度就是原始 Pearson;否则,它会与它们共同的评分项数成线性比例。它将 1 的虚假相关性变成了 0.02 的相似性。
50 可能需要根据您的域和系统进行调整。
您还可以使用余弦相似度,它不会以相同的方式受到此限制。然而,对于用户-用户 CF,通常首选 Pearson 相关。
更新:在最近的工作中,我们发现基于用户的 CF 过早地忽略了余弦相似性。余弦相似度,当在归一化数据上执行时(在计算余弦相似度之前从每个评分中减去用户的平均值——结果与帕森相关非常相似,只是它有一个内置的自阻尼项),优于皮尔逊“标准”环境。当然,如果可能,您应该对自己的数据和环境进行一些测试,看看哪种效果最好。论文在这里:http://grouplens.org/node/479
免责声明:我是制作上述 Herlocker 论文的实验室的一名学生。
关于sparse-matrix - 协同过滤程序 : What to do for a Pearson Score When There Isn't Enough Data,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1927266/
我是一名优秀的程序员,十分优秀!