推荐系统如何运作?

时间:2009-03-09 13:27:22

标签: algorithm recommendation-engine

我一直很好奇这些系统是如何工作的。例如,netflix或亚马逊如何根据过去的购买和/或评级确定要做出哪些推荐?是否有任何算法可以阅读?

这里没有误解,我没有实际的理由要求。我只是想出纯粹的好奇心。

(另外,如果有关于此主题的现有问题,请指出。“建议系统”是一个难以搜索的术语。)

9 个答案:

答案 0 :(得分:28)

在最基本的情况下,大多数推荐系统的工作原理是说两件事之一。

基于用户的建议:
如果用户A喜欢项目1,2,3,4和5,则 用户B喜欢项目1,2,3和4
然后用户B很可能也喜欢第5项

基于商品的建议:
如果购买商品1的用户也不成比例地购买商品2 并且用户A购买了项目1 然后用户A可能会对第2项感兴趣

这是你应该知道的算法的大脑转储:
- 设定相似度(Jaccard指数和Tanimoto系数)
- n维欧氏距离
- k-means算法
- 支持向量机

答案 1 :(得分:25)

这是一个商业上重要的应用Netflix introduced a $1 million prize for improving their recommendations by 10%

几年后人们越来越近了(我认为他们现在已经上涨了9%左右),但很多原因很难。可能是Netflix奖的最大因素或最大的初步改进是使用称为singular value decomposition的统计技术。

我强烈建议您阅读If You Liked This, You’re Sure to Love That,特别是对Netflix奖和推荐系统进行深入讨论。

基本上虽然亚马逊等的原则是相同的:他们寻找模式。如果有人购买了星球大战三部曲,那么他们比普通客户更喜欢吸血鬼猎人巴菲(纯粹的例子)。

答案 2 :(得分:18)

O'Reilly的书"Programming Collective Intelligence"有一个很好的章节,展示了它是如何运作的。很可读。

代码示例都是用Python编写的,但这不是一个大问题。

答案 3 :(得分:8)

明尼苏达大学的

GroupLens Research研究推荐系统并慷慨地分享他们的researchdatasets

他们的研究每年都有所扩展,现在考虑在线社区,社交协作过滤以及呈现复杂数据时的UI挑战等细节。

答案 4 :(得分:4)

用于推荐系统的Netflix算法实际上是一项竞争性的努力,程序员继续竞争以提高系统的准确性。

但从最基本的角度来说,推荐系统会检查与其他用户的人口统计/兴趣信息紧密匹配的用户的选择。

因此,如果您是一名25岁的白人男性,来自纽约市,推荐系统可能会尝试为您提供在美国东北部其他白人男性购买的产品,年龄范围为21-30岁。

编辑:还应该注意的是,有关用户的信息越多,您就可以越精确地优化算法,以匹配其他人正在做的事情,以及可能感兴趣的用户。

答案 5 :(得分:4)

这是一个分类问题 - 即将用户分类为可能对某些项目感兴趣的用户组。

一旦归入此类群组,就可以轻松检查该群组中其他用户的购买/喜欢并推荐它们。

因此,贝叶斯分类和神经网络(多层感知器,径向基函数,支持向量机)值得一读。

答案 6 :(得分:3)

一种方法是将用户分组到clusters,并推荐同一群集中其他用户的产品。

答案 7 :(得分:2)

主要有两种类型的推荐系统,它们的工作方式不同:

<强> 1。基于内容的即可。 这些系统基于特征信息提出建议。这是有关项目(关键字,类别等)和用户(首选项,配置文件等)的信息。

<强> 2。协作过滤。 这些系统基于用户项交互。这是评级,购买数量,喜欢等信息。

This文章(由我工作的公司出版)提供了两个系统的概述,一些实际示例,并建议何时实施它们。

答案 8 :(得分:0)

当然,有些算法会向您推荐首选项目。已经为此实现了不同的数据挖掘技术。如果您想了解有关推荐系统的更多基本信息,请访问this博客。这里介绍了推荐系统的所有基础知识。