简单建议/推荐算法

19
我正在寻找一个简单的建议算法来应用于我的Web App中,就像Netflix、Amazon等等那样...但更简单。我不需要团队中的博士为了得到更好的建议指标而工作。
假设我有:
- 用户1喜欢Object1。 - 用户2喜欢Object1和Object2。
我想向用户1推荐他们可能也会喜欢Object2。
我很明显可以想出一些天真的想法,但我正在寻找经过验证且易于实现的东西。
6个回答

11

在优秀的编程集体智慧一书中,有许多简单和不那么简单的建议算法示例。

皮尔逊相关系数(一个有点枯燥的维基百科文章)可以给出相当不错的结果。这里有一个Python实现和另一个TSQL实现,以及有趣的算法解释。


11

尝试使用Slope One算法,这是解决此类问题最常用的算法之一。

这里提供了一个在T-SQL中实现该算法的示例。


1
这是用40行Python编写的Slope One算法(并附有详细解释):http://www.serpentine.com/blog/2006/12/12/collaborative-filtering-made-easy/。+1链接源代码。 - Jason Orendorff

1

你可能想看一下关联规则学习Apriori算法。其基本思想是创建规则,如“如果用户喜欢Object1,则用户喜欢Object2”,并检查它们描述(你的)现实的程度。在你的具体例子中,这个规则将具有支持度为2(因为两个用户喜欢Object1),置信度为50%(因为该规则在2个案例中有1个是真实的)。我刚刚自己实现了一个基本的概念证明(实际上是我在Hadoop上的第一步),而且做起来并不太难。

或者,你可能想看一下Apache Mahout - Taste。不过我自己从未使用过它。


1
我会选择K最近邻算法。维基百科条目对此有很好的解释,并提供了参考实现的链接。

0
我创建了一个建议文章算法,它使用关键词(而不是“产品购买”)来确定相关性。它接受一个关键词,并运行所有包含该关键词的其他文章,并根据哪些文章具有最多匹配关键词来生成结果。
除了明显需要缓存此类信息之外,他使用类似方法是否存在问题?

0

最近邻算法


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接