自动推荐算法通常如何工作?

时间:2009-06-28 14:08:08

标签: algorithm

我刚刚阅读了有关BellKor的实用混沌团队winning the Netflix Challenge如何使用Wired,我很好奇这种算法通常如何工作。我知道Bellkor团队的解决方案必须是该领域的创新解决方案..但该领域通常如何运作?它只是一个非常详细的数据库,马尔可夫链是一次又一次地运行或者是什么?

4 个答案:

答案 0 :(得分:11)

看看这篇维基百科文章:Euclidean Distance

基本思想是使用距离度量(如上面的欧几里德)来比较人或事物。

新的O'Reilly书,Programming Collective Intelligence: Building Smart Web 2.0 Applications在这个主题上有一个很好的章节。

答案 1 :(得分:11)

  

但该领域通常如何运作?

这是一种数据挖掘技术。数据挖掘被用作商业智能(数据仓库等)的一部分,试图在大量数据中查找关系和信息。这是一个计算机科学领域,一般也涉及机器学习,例如:模式识别。自动推荐由Association Mining获得。具有高支持度的关联显示为推荐。 k-最近邻算法只是机器学习/数据挖掘人员使用的众多算法之一。

如果您对基础理论感兴趣,我推荐Ian H. Witten撰写Data Mining: Practical Machine Learning Tools and Techniques

对于Java,有一个很棒的机器学习包,WEKA能够association mining。 Ian Witten也是WEKA的作者之一。

答案 2 :(得分:5)

大多数Netflix竞赛参赛者使用了Singular Value Decomposition的变体。该算法通过采用大矩阵并将其简化为大约2x2矩阵来进行操作。然后可以在2维空间上绘制这个2x2矩阵,其中彼此靠近的点在原始矩阵中彼此共享亲和力。

因此,在Netflix的情况下,您可以创建一个矩阵,其中电影是列,用户是行,其中任何值[i,j]是i用户给予电影j的评级。这是一个非常大的矩阵,然后可以对其应用SVD以生成二维矩阵,该矩阵用作较大矩阵的近似值。在此平面上绘制时彼此接近的用户共享相似的评级,因此如果一个用户没有看到另一个用户在该平面上看到谁接近它的电影,那么这可能是对新用户的推荐。 / p>

获胜解决方案设计了一种名为SVD ++的直接SVD算法的变体,并将其与其他边缘情况混合在一起,尝试生成一种算法,该算法将超过获得奖金所需的10%的改进。

答案 3 :(得分:2)

我在“连线”上找到this previous article,其中简要提到了过去由Bellkor和Cinematch使用的k-nearest-neighbor algorithm

心理学家对如何找到偏见的观察结果也很有趣。