亚马逊推荐function如何工作?

亚马逊推荐技术的屏幕背后有什么技术? 我相信亚马逊的推荐目前是市场上最好的,但是他们如何为我们提供这样的相关build议呢?

最近,我们已经参与了类似的推荐类项目,但是从技术的angular度来看,肯定会想知道亚马逊推荐技术的来龙去脉。

任何投入将不胜感激。

更新:

这个专利解释了如何完成个性化的build议,但这不是很技术性的,所以如果能够提供一些见解,这将是非常好的。

从戴夫的评论中, 亲和力分析构成了这种推荐引擎的基础。 这里还有一些关于主题的好消息

  1. 揭秘市场篮子分析
  2. 市场篮子分析
  3. 亲和性分析

推荐阅读:

  1. 数据挖掘:概念和技术

这既是一门艺术,也是一门科学。 典型的研究领域围绕作为数据挖掘领域的一个子集的购物篮分析(也称为亲和分析)。 这种系统中的典型组成部分包括识别主要驾驶员物品和识别亲和物品(配件销售,交叉销售)。

请记住他们必须挖掘的数据源…

  1. 购买的购物车=真正的人花在真实的物品=真正的钱=强大的数据和它的很多。
  2. 物品添加到购物车,但放弃。
  3. 在线定价实验(A / Btesting等),以不同的价格提供相同的产品并查看结果
  4. 包装实验(A / Btesting等),它们以不同的“捆绑”forms提供不同的产品或折扣各种配对的物品
  5. 愿望清单 – 专门为您准备的内容 – 总体而言,它可以类似于另一个购物篮分析数据stream
  6. 推荐网站(识别你来自哪里可以提示其他感兴趣的项目)
  7. 停留时间(多久之后,你点击回来,select一个不同的项目)
  8. 您或您的社交networking/购买圈子中的评级 – 如果您对自己喜欢的事物进行评分,则可以获得更多喜欢的内容,如果您确认了“我已经拥有它”button,则会创build一个非常完整的个人资料
  9. 人口统计信息(您的送货地址等) – 他们知道您的孩子,自己,配偶等在您所在地区的受欢迎程度。
  10. 用户细分=你是否为不同的孩子购买3本书? 可能有一个孩子或更多..等
  11. 直接点击数据 – 您是否收到电子邮件并点击? 他们知道这是哪个电子邮件以及您点击了哪些电子邮件,以及您是否购买了该电子邮件。
  12. 点击会话中的path – 不pipe是否放入购物车,您都查看了哪些内容
  13. 在最终购买之前查看项目的次数
  14. 如果你正在处理一个实体店,他们可能会有实际的购买历史(例如,玩具或我们在线的东西,也是实体店)
  15. 等等等等

幸运的是,人们的行为总体上是相似的,所以他们对广大购买人群的了解越多,他们就知道自己会不会卖出什么,每一笔交易和每个评级/愿望清单都会被添加/浏览,从而知道如何更加个人化地提出build议。 请记住,这可能只是build议等方面的一系列影响的一小部分。

现在我对亚马逊如何开展业务并没有内部的知识(从来没有在那里工作过),我所做的只是谈论传统的在线商务问题 – 我曾经是从事数据挖掘和分析产品称为商务服务器。 我们在Commerce Server中发布了允许人们构build具有类似function的网站的工具….但销售量越大,数据越好,模型就越好 – 而且Amazon是BIG。 我只能想象,在商业驱动的网站中使用这么多数据的模型是多么有趣。 现在,许多这些algorithm(如商业服务器中开始的预测器)已经开始直接在Microsoft SQL中生存。

你应该拥有的四大利器是:

  1. 亚马逊(或任何零售商)正在查看大量交易和大量人员的汇总数据……这使得他们甚至可以为他们的网站上的匿名用户推荐相当好的数据。
  2. 亚马逊(或任何复杂的零售商)正在跟踪任何已login的用户的行为和购买情况,并使用这些信息进一步优化大量聚合数据。
  3. 通常有一种方式来超越积累的数据,对具体行业的产品经理(如某些拥有“数码相机”垂直或“浪漫小说”垂直或类似的人)的产品经理进行“编辑”控制是专家
  4. 经常有促销交易(即索尼或松下或尼康或佳能或冲刺或维瑞兹向零售商支付额外的资金,或在较大的数量或更好的折扣下提供这些产品线上的其他东西),这将导致某些“build议”经常会有一些合理的商业逻辑和商业原因,这些商业逻辑和商业原因都是为了在每笔交易中获得更多的利润,或者减less批发成本等等。

在实际执行方面? 几乎所有的大型在线系统都归结为一些pipe道(或过滤模式实现或工作stream程等),它们允许上下文由一系列模块进行评估,这些模块应用某种forms的商业逻辑。

通常情况下,一个不同的pipe道将与页面上的每一个单独的任务相关联 – 你可能有一个build议“包/加售”(即购买与你正在查看的项目)和一个做“替代品”(即买这而不是你正在看的东西)和另一个从您的愿望清单(按产品类别或类似)拉最紧密相关的项目。

这些pipe道的结果可以放置在页面的各个部分(滚动条上方,滚动条下方,左侧,右侧,不同的字体,不同大小的图像等),并进行testing,看看哪些部分最好。 由于您使用的是简单易用的即插即用模块,可以定义这些pipe道的业务逻辑,所以您最终得到了lego块的道德等价物,可以轻松地从您要在构build其他pipe道时应用的业务逻辑中进行select和select这使得更快的创新,更多的实验,并最终获得更高的利润。

这有帮助吗? 希望能给你一点洞察力,看看这个电子商务网站是如何运作的,而不仅仅是亚马逊。 亚马逊(与在那里工作过的朋友交谈)是非常数据驱动的,并不断测量其用户体验和定价,促销,包装等的有效性 – 他们是一个非常复杂的在线零售商,可能处于领先优势他们用来优化利润的algorithm很多 – 而这些algorithm可能就是所有权的秘密(你知道,就像肯德基的秘密香料的公式一样),并且是这样的。

这与亚马逊的推荐系统没有直接关系,但研究Netflix奖竞争者使用的方法可能会有帮助,这是一个使用Netflix用户数据开发更好的推荐系统的竞赛。 一般来说,他们的社区中存在大量关于数据挖掘技术的良好信息。

获胜的团队使用了许多不同模型/技术所产生的build议。 我知道一些主要的方法是主成分分析,最近邻方法和neural network。 以下是获奖团队的一些论文:

R. Bell,Y. Koren,C. Volinsky,“ The BellKor 2008 Netflix Prize ”,(2008)。

A.Töscher,M. Jahrer,“ 2008年Netflix奖BigChaos解决scheme ”,(2008年)。

A.Töscher,M. Jahrer,R. Legenstein,“ 改进的基于邻域的大规模推荐系统algorithm ”,SIGKDD 大规模推荐系统研讨会和Netflix奖竞赛(KDD'08),ACM出版社(2008年) 。

Y. Koren,“ Netflix大奖的BellKor解决scheme ”,(2009)。

A.Töscher,M. Jahrer,R. Bell,“ Netflix大奖的BigChaos解决scheme ”,(2009)。

M. Piotte,M. Chabbert,“ Netflix大奖的实用理论解决scheme ”,(2009)。

2008年的论文来自第一年的进步奖。 我build议先阅读前面的那些,因为后面的那些build立在以前的工作上。

今天我碰到这个文件:

  • Amazon.combuild议:项目到项目的协作过滤

也许它提供了额外的信息。

(Disclamer:我曾经在亚马逊工作,虽然我没有在推荐团队工作。)

ewernli的答案应该是正确的 – 这篇论文链接到亚马逊的原始推荐系统,并且从我可以告诉的(从作为亚马逊购物者的个人经验以及在其他公司的类似系统上工作),几乎没有什么变化:在其核心,亚马逊的推荐function仍然是非常严重的基于项目之间的协作过滤。

只要看看这些build议是什么forms的:在我的头版上,它们都是“您查看过X的客户……也查看了这个也查看过的客户…”的forms,或者是与事物类似的混合物我以前买过或看过 如果我专门去我的“为你推荐”页面,每一个项目都描述了为什么推荐给我:“推荐,因为你买了…”,“推荐,因为你加了X到你的心愿…”等等。项目到项目协作过滤的经典标志。

那么项目到项目的协作过滤是如何工作的呢? 基本上,对于每个项目,你build立一个“邻居”的相关项目(例如,通过查看什么项目人们一起看过或什么项目人们一起购买 – 确定相似性,你可以使用像Jaccard指数 ;相关性是另一种可能性,虽然我怀疑亚马逊并没有使用收视率数据)。 然后,每当我查看一个项目X或进行购买Y时,亚马逊就会在X或Y的同一个社区中提示我。

亚马逊可能使用的一些其他方法,但可能不会,这里描述: http : //blog.echen.me/2011/02/15/an-overview-of-item-to-item-collaborative-filtering -with-亚马逊的推荐系统/

戴夫所描述的很多东西几乎肯定不是在亚马逊。 (我的社交networking上的评级是?)不,亚马逊没有任何我的社交数据,无论如何,这将是一个巨大的隐私问题,所以即使他们有这些数据,人们不希望他们的朋友知道他们要买什么书或电影什么人口统计信息?不,没有任何build议表明他们正在看这个[与Netflix不同,他表明了我所在地区的其他人。])

我没有具体的亚马逊algorithm的任何知识,但是这样一个algorithm的一个组成部分可能会涉及跟踪频繁sorting在一起的项目组,然后使用这些数据推荐组中的其他项目,当一个客户购买一些亚组组。

另一种可能性是跟踪订购项目A后N天内订购的项目B的频率,这可能表明相关性。

据我所知,它是基于案例推理作为它的引擎。

你可以在这里看到: 在这里 , 在这里和这里 。

谷歌search亚马逊和基于案例的推理有很多来源。

有人在我们大学上周做了类似的演讲,并引用了亚马逊推荐系统。 我相信它使用K-Means Clustering的forms来将人们聚集到不同的购买习惯中。 希望这可以帮助 :)

看看这个: http : //www.almaden.ibm.com/cs/people/dmodha/ml02.ps和HTML 。