我正在寻找一个简单的建议算法来实现我的Web应用程序。很像Netflix,亚马逊等...但更简单。我不需要博士团队努力获得更好的建议指标。简单建议/推荐算法
所以说我有:
- 用户1喜欢Object1。
- User2喜欢Object1和Object2。
我想建议User1他们也可能喜欢Object2。
我明显可以想出一些天真的东西。我正在寻找审查和轻松实施的东西。
我正在寻找一个简单的建议算法来实现我的Web应用程序。很像Netflix,亚马逊等...但更简单。我不需要博士团队努力获得更好的建议指标。简单建议/推荐算法
所以说我有:
我想建议User1他们也可能喜欢Object2。
我明显可以想出一些天真的东西。我正在寻找审查和轻松实施的东西。
还有的建议算法很多简单和不那么简单的例子优良 Programming Collective Intelligence
的Pearson correlation coefficient(稍干维基百科文章),在可以给不错的成果。下面是Python中的一个实现以及TSQL中的另一个实现以及该算法的一个有趣的解释。
你可能想看看Association rule learning和Apriori algorithm。背后的基本思想是,你创建的规则就像“如果用户像Object1,而不是用户喜欢Object2”,并检查他们描述(你)的实际情况。在具体的例子中,这条规则将有一个支持2(像Object1这样的两个用户),并且有50%的可信度(这在2个案例中有1个是正确的)。我刚刚实现了一个基本的概念验证(实际上是我在Hadoop上的第一步),并不难做到。您也可以看看Apache Mahout - Taste。尽管我自己并没有使用过它。
一个样本实现我将与K最近邻居去。 wikipedia entry很好地解释了它,并且链接到参考实现。
k近邻算法
我创建了一个建议的文章算法所使用的关键字(相对于“产品购买”),以确定相关性。它需要一个关键字,并在该关键字出现的所有其他文章中运行,并根据哪些文章具有最匹配的关键字来生成结果。
除了明显需要缓存这些信息之外,他还有什么地方使用类似方法有问题吗?
+1链接到源代码。这是40行Python中的Slope One(以及详细解释):http://www.serpentine.com/blog/2006/12/12/collaborative-filtering-made-easy/ – 2009-12-05 16:17:39