推荐系统是如何工作的?

29

我一直很好奇这些系统是如何工作的。例如,Netflix或亚马逊如何根据过去的购买记录和/或评级确定要推荐什么内容?是否有任何算法可供参考?

只是为了避免误解,我问这个问题并没有实际的理由。我只是出于纯粹的好奇心而问。

(另外,如果有关于这个主题的现有问题,请指引我。" 推荐系统" 是一个难以搜索的术语。)


“推荐引擎”这个词更适合在谷歌上搜索。 - isomorphismes
http://www.jscires.org/sites/default/files/10.5530jscires.5.1.10.pdf - Pranav Waila
9个回答

28

在其最基本的形式中,大多数推荐系统都是通过以下两种方式之一来工作。

基于用户的推荐:
如果用户A喜欢物品1、2、3、4和5,
而用户B喜欢物品1、2、3和4,
那么用户B很可能也会喜欢物品5。

基于物品的推荐:
如果购买物品1的用户也不成比例地购买物品2,
而用户A购买了物品1,
那么用户A可能会对物品2感兴趣。

以下是你应该了解的算法:
- 集合相似度(Jaccard系数和Tanimoto系数)
- n维欧几里得距离
- k均值算法
- 支持向量机


25

这是一个商业上非常重要的应用程序,Netflix 推出了一项100万美元的奖金计划,以提高其推荐系统 10% 的准确率

几年后,人们已经接近目标(我认为他们现在的准确率已经达到了9%),但由于许多原因,这很难。 Netflix Prize 最大的因素或最初的改进可能是使用了称为 奇异值分解 的统计技术。

我强烈建议您阅读《纽约时报》的文章“如果你喜欢这个,你肯定会爱那个”,其中详细讨论了 Netflix Prize 特别是推荐系统。

基本上,亚马逊等公司的原理是相同的:他们寻找模式。 如果有人购买了《星球大战三部曲》,那么他们比普通客户更喜欢打击恶魔猎人巴菲(纯属虚构的例子)。


19

O'Reilly的书《集体智慧编程》有一个很好的章节介绍它是如何工作的,非常易于阅读。

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


4
我有这本书,强烈推荐。 - Chris Ballance
我向每个人推荐这本书 :) - Kenny Cason

8

4
Netflix的推荐算法实际上是一个竞争性的努力,程序员们不断竞争以提高系统的准确性。
但最基本的术语来说,推荐系统会检查与另一个用户的人口统计/兴趣信息密切匹配的用户的选择。
因此,如果您是一位25岁的纽约市白人男性,推荐系统可能会尝试为您带来其他21-30岁年龄段、居住在美国东北部地区的白人男性购买的产品。
编辑:还应该注意到,您拥有的关于用户的信息越多,您就可以更紧密地调整您的算法,使其与其他人所做的事情匹配,以吸引目标用户的兴趣。

4
这是一个分类问题 - 即将用户分类为可能对某些项目感兴趣的用户组。
一旦分类到这样的群体中,就很容易检查该群体中其他用户的购买/喜欢,并向他们推荐。
因此,值得阅读贝叶斯分类和神经网络(多层感知器、径向基函数、支持向量机)方面的知识。

3

一种技术是将用户分组为群集,并向同一群集中的其他用户推荐产品。


3

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

1. 基于内容。这些系统基于特征信息进行推荐。这些信息是关于项目(关键字、类别等)和用户(偏好、档案等)的。

2. 协同过滤。这些系统基于用户-项目互动。这些信息包括评级、购买次数、喜欢等。

这篇文章(由我所在公司发布)提供了这两种系统的概述、一些实用示例,并建议何时实施它们。


2
你是否与你链接到的网站有关联?如果是,你必须披露你的关联。以下是一些可能会对你有帮助的指南:如何避免成为垃圾邮件发送者 - Andrew Myers
1
@AndrewMyers:不确定在这里披露隶属关系是否必要:即使没有最后一段(包含链接),这篇文章仍然很有价值。此外,该文章似乎并不需要隶属关系:它是免费提供的,并且没有任何推广内容。 - Tsyvarev
@AndrewMyers,谢谢你的评论。我在发布这篇文章的公司工作。然而,帖子链接只应支持答案,并对那些想深入了解推荐系统主题的人有所帮助。希望他们会觉得有用。 - minmidinosaur
@minmidinosaur 我同意,链接支持答案并且很有帮助,你能够提供链接真的很好。但是,你仍然需要添加某种免责声明(可以简单地写成“由我的一位同事编写”)。这并不重要内容是否免费;如果你链接到公司制作的任何内容,那么必须披露此事实。这里有另一篇文章讨论了这种情况:关于回答中稀疏自我推广的政策是什么? 对于造成的困惑,我深表歉意!祝你拥有愉快的一天! - Andrew Myers
1
@minmidinosaur 根据您的评论,我将免责声明编辑到了答案中。正如Andrew所写,我们网站需要这些免责声明,并且他在这方面提供了一个不错的链接。 - josliber
当然,我理解。@josliber感谢您添加免责声明! - minmidinosaur

0
当然有算法会推荐您喜欢的物品。为此,已经实施了不同的数据挖掘技术。如果您想了解更多关于推荐系统的基本细节,请访问this 博客。这里已经掌握了有关推荐系统的所有基础知识。

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