推荐系统是如何工作的?

Posted

技术标签:

【中文标题】推荐系统是如何工作的?【英文标题】:How do recommendation systems work? 【发布时间】:2010-10-12 04:35:30 【问题描述】:

我一直很好奇这些系统的工作原理。例如,netflix 或亚马逊如何根据过去的购买和/或评分确定要提出的建议?有什么算法可以阅读吗?

所以这里没有误解,我没有实际的理由问。我只是出于好奇而问。

(另外,如果有关于这个主题的现有问题,请指出它。“推荐系统”是一个很难搜索的术语。)

【问题讨论】:

“推荐引擎”这个词更适合谷歌搜索。 jscires.org/sites/default/files/10.5530jscires.5.1.10.pdf 【参考方案1】:

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

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

【讨论】:

我拥有这本书并强烈推荐它。 我向大家推荐这本书:)【参考方案2】:

Netflix 推荐系统的算法实际上是一种竞争性努力,程序员在其中不断竞争以提高系统的准确性。

但在最基本的条件下,推荐系统会检查与另一个用户的人口统计/兴趣信息非常匹配的用户的选择。

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

编辑:还应该注意的是,您拥有的用户信息越多,您就越能改进算法,以将其他人正在做的事情与相关用户可能感兴趣的事情相匹配。

【讨论】:

【参考方案3】:

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

一旦被分类到这样的组中,就很容易检查该组中其他用户的购买/喜欢并推荐他们。

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

【讨论】:

【参考方案4】:

这是一个如此重要的商业应用程序,Netflix introduced a $1 million prize for improving their recommendations by 10%。

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

我强烈建议您阅读 If You Liked This, You’re Sure to Love That,以深入讨论 Netflix Prize 和一般推荐系统。

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

【讨论】:

【参考方案5】:

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

【讨论】:

【参考方案6】:

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

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

基于项目的推荐: 如果购买第 1 项的用户也更有可能购买第 2 项 用户 A 购买了商品 1 那么用户 A 可能会对第 2 项感兴趣

下面是你应该知道的算法脑转储: - 设置相似度(Jaccard 指数和谷本系数) - n 维欧几里得距离 - k-means 算法 - 支持向量机

【讨论】:

【参考方案7】:

明尼苏达大学的GroupLens Research 研究推荐系统并慷慨分享他们的research 和datasets。

他们的研究每年都会扩大一点,现在考虑诸如在线社区、社交协作过滤和呈现复杂数据时的 UI 挑战等细节。

【讨论】:

【参考方案8】:

当然,有一些算法会向您推荐喜欢的商品。为此已经实施了不同的数据挖掘技术。如果您想了解更多有关 Recommender System 的基本信息,请访问 this 博客。这里已经涵盖了有关推荐系统的所有基础知识。

【讨论】:

【参考方案9】:

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

1.基于内容的。 这些系统根据特征信息提出建议。这是关于项目(关键字、类别等)和用户(偏好、配置文件等)的信息。

2。协同过滤。 这些系统基于用户-项目交互。这是诸如评级、购买次数、喜欢等信息。

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

【讨论】:

您是否隶属于您要链接的网站?如果是这样,您必须披露您的隶属关系。以下是一些可能对您有所帮助的指南:How to not be a spammer @AndrewMyers:不确定此处是否需要披露从属关系:即使没有最后一段(包含链接),该帖子也很有价值。此外,这篇文章似乎不是附属的主题:它是免费提供的,没有任何宣传。 @AndrewMyers,感谢您的评论。我在发表这篇文章的公司工作。但是,帖子的链接应该只支持答案,并且对那些想要深入研究推荐系统主题的人有所帮助。希望他们会发现它有用。 @minmidinosaur 我同意,该链接支持答案并且很有帮助,您链接到它真是太好了。也就是说,您仍然需要添加某种形式的免责声明(可以像“由我的一位同事编写” 一样简单)。内容是否免费并不重要。如果您要链接到贵公司生产的任何东西,则需要披露。这是另一篇讨论此类事情的帖子:What is the policy regarding sparse self-promotion in answers?我为造成的混乱道歉!祝你有美好的一天! @minmidinosaur 根据您的评论,我将免责声明编辑为答案。正如 Andrew 所写,我们的网站需要此类免责声明,他在这个方向上提供了一个很好的链接。

以上是关于推荐系统是如何工作的?的主要内容,如果未能解决你的问题,请参考以下文章

万字入门推荐系统!

不要犯战略性的失误——如何合理制定推荐系统的优化目标?

基于Mahout和Elasticsearch的推荐系统

神奇的推荐系统:用得好,销量倍增

精品投稿推荐系统评测心得

如何在推荐系统中玩转知识图谱