亚马逊推荐技术的屏幕背后是什么技术?我认为,亚马逊的推荐目前是市场上最好的,但是它们如何为我们提供这样的相关推荐呢?
最近,我们参与了类似的推荐类项目,但是肯定希望从技术角度了解Amazon推荐技术的来龙去脉。
任何输入将不胜感激。
更新:
该专利说明了如何进行个性化推荐,但这不是技术性的问题,因此,如果可以提供一些见解,那将是非常好的。
根据Dave的评论,亲和力分析构成了此类推荐引擎的基础。另外,这里还有一些有关该主题的好读物
建议阅读:
亚马逊推荐技术的屏幕背后是什么技术?我认为,亚马逊的推荐目前是市场上最好的,但是它们如何为我们提供这样的相关推荐呢?
最近,我们参与了类似的推荐类项目,但是肯定希望从技术角度了解Amazon推荐技术的来龙去脉。
任何输入将不胜感激。
更新:
该专利说明了如何进行个性化推荐,但这不是技术性的问题,因此,如果可以提供一些见解,那将是非常好的。
根据Dave的评论,亲和力分析构成了此类推荐引擎的基础。另外,这里还有一些有关该主题的好读物
建议阅读:
Answers:
它既是一门艺术,也是一门科学。典型的研究领域围绕市场篮子分析(也称为亲和力分析),这是数据挖掘领域的子集。这种系统中的典型组件包括主驾驶员项目的标识和亲和力项目的标识(附件加售,交叉销售)。
请记住他们必须挖掘的数据源...
幸运的是,人们的行为举止相似,因此他们对购买人口的了解越多,他们就会知道将卖和不卖什么,并且每笔交易和每一个评级/愿望清单的增加/浏览都使他们知道如何更个性化地制定建议。请记住,这可能只是推荐结果的全部影响的一小部分,等等。
现在,我对亚马逊的业务方式一无所知(从来没有在那里工作过),而我所做的只是谈论解决在线商务问题的经典方法-我曾经是负责Microsoft数据挖掘和分析的项目经理。产品称为Commerce Server。我们在Commerce Server中提供了使人们能够构建具有类似功能的网站的工具.....但是销量越大,数据越好,模型越好-亚马逊是巨大的。我只能想象在一个商业驱动的站点中使用具有这么多数据的模型是多么有趣。现在,这些算法中的许多算法(例如始于商务服务器的预测器)已经直接在Microsoft SQL中运行。
您应该拥有的四个主要方法是:
在实际执行方面?几乎所有大型在线系统都可以归结为一系列管道(或过滤模式实现或工作流等,您称其为“您将要说的”),这些管道允许由一系列应用某种形式的模块的上下文进行评估。商业逻辑。
通常,页面上的每个单独的任务都会与一个不同的管道相关联-您可能有一个建议“包装/加售”的管道(例如,与您要查看的商品一起购买),另一个有“替代”的管道(即,购买)而不是您正在查看的东西),另一个从您的愿望清单中拉出最密切相关的商品(按产品类别或类似商品)。
这些流水线的结果可以放置在页面的各个部分(滚动条上方,滚动下方,左侧,右侧,不同的字体,不同大小的图像等)上,并进行测试以查看执行结果最好。由于您使用的是易于使用的即插即用模块,这些模块定义了这些管道的业务逻辑,因此最终在道德上等同于乐高积木,这使得在构建另一个管道时可以轻松地从想要应用的业务逻辑中进行选择。这样可以加快创新速度,进行更多实验,并最终获得更高的利润。
有没有帮助?希望能给您一点点了解,这对于几乎所有电子商务网站-不仅是亚马逊来说,通常如何运作。亚马逊(从与在那工作的朋友交谈)非常依赖数据,并不断衡量其用户体验的有效性以及价格,促销,包装等。它们是一家非常成熟的在线零售商,很可能处于领先地位他们使用了许多算法来优化利润-那些可能是专有秘密(就像肯德基的秘密香料的配方一样),因此得到了保证。
这与Amazon的推荐系统没有直接关系,但研究参加Netflix奖(使用Netflix用户数据开发更好的推荐系统的竞赛)的人们使用的方法可能会有所帮助。通常,他们的社区中有很多有关数据挖掘技术的好信息。
获胜的团队融合了许多不同模型/技术所产生的建议。我知道使用的一些主要方法是主成分分析,最近邻方法和神经网络。以下是获胜团队的一些论文:
R. Bell,Y. Koren,C. Volinsky,“ Netflix奖的BellKor 2008解决方案 ”(2008年)。
A.Töscher,M。Jahrer,“ 2008年Netflix奖的BigChaos解决方案 ”,(2008年)。
A.Töscher,M。Jahrer和R. Legenstein,“ 针对大型推荐系统的改进的基于邻域的算法 ”,SIGKDD大型推荐系统研讨会和Netflix奖竞赛(KDD'08),ACM出版社(2008) 。
Y. Koren,“ Netflix大奖的BellKor解决方案 ”,(2009年)。
A.Töscher,M。Jahrer和R. Bell,“ Netflix大奖的BigChaos解决方案 ”,(2009年)。
M. Piotte,M。Chabbert,“ 向Netflix大奖颁发的实用理论解决方案 ”,(2009年)。
2008年的论文来自第一年的进步奖。我建议先阅读较早的文章,因为较晚的文章以先前的工作为基础。
(Disclamer:我以前在Amazon工作,尽管我没有在推荐团队工作。)
ewernli的答案应该是正确的-该论文链接到Amazon的原始推荐系统,并且据我所知(包括作为亚马逊购物者的个人经验以及曾在其他公司使用过类似系统的经验),几乎没有什么变化:其核心,亚马逊的推荐功能仍然非常依赖于项对项协作过滤。
只要看看建议采用的形式即可:在我的首页上,它们都是“您查看过X ...也查看过此内容的客户也查看过...”这两种格式,或者是类似事物的混合物我以前买过或看过。如果我专门转到“为您推荐”页面,则每个项目都会描述为我推荐的原因:“因您购买而推荐...”,“因将X添加到愿望清单而受到推荐...”等。这是项目到项目协作过滤的经典标志。
那么,逐项协作过滤是如何工作的?基本上,对于每个项目,您都可以建立相关项目的“邻居”(例如,通过查看人们一起查看过的项目或人们一起购买了哪些项目,要确定相似性,可以使用Jaccard索引;这是另一种可能性,尽管我怀疑亚马逊不会非常频繁地使用评级数据。然后,每当我查看商品X或进行购买Y时,亚马逊都会向我建议与X或Y在同一街区的东西。
此处介绍了亚马逊可能使用但可能不会使用的其他一些方法:http : //blog.echen.me/2011/02/15/an-overview-of-item-to-item-collaborative-filtering -带有亚马逊推荐系统/
戴夫所描述的很多东西几乎肯定不是在亚马逊上完成的。(由我的社交网络中的人打分?不,亚马逊没有我的任何社交数据。在任何情况下,这都是一个巨大的隐私问题,因此即使他们拥有这些数据,亚马逊也很难做到:人们不希望他们的朋友知道他们要买什么书或电影。人口统计信息吗?不,建议中没有任何内容表明他们在看这个书。 。])
如果您想要动手教程(使用开源R),那么可能会比通过以下方法做得更糟:https : //gist.github.com/yoshiki146/31d4a46c3d8e906c3cd24f425568d34e
它是另一项工作的运行时优化版本:http : //www.salemmarafi.com/code/collaborative-filtering-r/
但是,第一个链接上的代码变体运行得更快,因此,我建议使用它(我发现yoshiki146的代码中唯一较慢的部分是最终例程,该例程在用户级别生成了建议-我的数据花了大约一个小时我的机器)。
我修改了此代码,将其用作我工作的零售商的推荐引擎。
就像上面其他人所说的,所使用的算法是协同过滤。这种CF方法会计算一个余弦相似度矩阵,然后按该相似度进行排序,以找到每个元素的“最近邻居”(在示例中为音乐带,在我的应用中为零售产品)。
结果表可以根据另一个选定的波段/产品推荐波段/产品。
该代码的下一部分将进一步进行基于USER(或客户)的协作过滤。
此输出是一张大表,其中为给定的用户/客户推荐了前100个波段/产品