重读经典 | 亚马逊“一键下单”的背后——个性化推荐系统的发展历程
一般都认为,亚马逊的成功要归功于它鼎鼎大名的“一键下单”功能,但“一键下单”的背后,还需要一个成单量极高的智能推荐系统,来驱动消费者不停地在亚马逊上“买!买!买!”。这就是用户点击分析、机器学习和个性化推荐的综合力量。本文的目的,正是回顾亚马逊这个以成单率著称的个性化推荐系统的发展历程。
本文作者是2003年那篇“久经考验”的亚马逊推荐系统论文的作者,他们在这里分享的是这篇经典论文发布后的新发现与新见解。如果你想阅读这篇经典论文,请在公众号会话回复“亚马逊”,即可获得完整论文。
编译 | AI100(rgznai100)
参与 | Reason_W,波波
二十年来,亚马逊已经为每位顾客建立了一个个性化的商城。每个来到亚马逊的人看到的都不一样,因为它会根据顾客的兴趣个性化生成。就好像你进了一家商店,货架会开始重新排列,把你可能想要的移动到前排,你不太可能感兴趣的排列到远处。
尽管其目录中有数百万种物品,亚马逊的推荐功能会根据您当前的资料和您以前的行为挑选您可能喜欢的一小部分产品进行推荐。算法不是魔术,它们只是与你分享其他人已经发现的东西。算法会完成所有的工作,当然也需要电脑来帮助那些设计算法的人一起实现这些事。
亚马逊在1998年推出了基于项目的协同过滤算法,使得推荐系统能够以一种前所未见的规模处理数百万商品并为数百万的顾客提供服务。
自从2003年我们在IEEE Internet Computing中公开了该算法后,它已经在网络上得到了广泛的使用,包括YouTube、Netflix等。该算法的成功来自于其简单性、可扩展性,经常令人惊讶但却十分有用的推荐结果,以及互联网计算所需要的属性,例如可以根据有关客户的新信息进行即时更新,并能够用一种容易理解的方式解释它为什么以某种方式推荐某些内容。
2003年IEEE Internet Computing发表的文章所描述的内容一直面临着很多挑战,这么多年过去也已经有了很多的发展。在这里,我们会介绍基于项目的协同过滤算法的一些更新,改进和改编,并提供了我们对于协同过滤,推荐系统和个性化的未来发展的看法。
正如我们在2003年描述的那样,基于项目的协同过滤算法是直接的。 在20世纪90年代中期,协同过滤通常是基于用户的,这意味着该算法的第一步是先搜索其他用户以找到具有类似兴趣的人(例如类似的购买模式),然后查看那些类似用户已经发现而你还没有发现的内容。 不同的是,我们的算法从寻找目录中的每个商品的相关商品开始。 “相关”这个术语在这里可以有几个含义,但是在这里,我们将它简单地定义为“购买一件商品的人非常有可能购买另一件商品”。因此,对于每个商品i1,我们想要找到的商品i2应该是那些购买i1的人购买频率非常高的商品。
一旦构建了相关的商品列表,我们可以快速生成推荐的商品以备用户进一步查询。对于每件商品,它和该客户当前的资料和以前的兴趣点有关,我们都会查找和它相关的商品,将它们组合以产生最有可能的兴趣商品,过滤掉已经看到或购买的项目,然后将保留下来的商品推荐给用户。
该算法相对于旧的基于用户的协同过滤具有许多优点。最重要的一点是,大部分计算是离线完成的——包括相关商品的批量构建,推荐的计算步骤可以实时完成以进行一系列查找。这些推荐不仅高质量而且有用,特别是在给定足够的数据时。即使是和过去二十年中新提出的算法进行比较,在明显可以感觉出来的推荐质量方面仍然保持着足够的竞争。该算法可扩展到数千万商品和数亿用户,而无需借助采样或其他会降低推荐质量的技术。它可以即时更新有关个人兴趣的新信息。最后,直观的说,推荐系统可以解释成根据客户放到购物车里的商品列表进行推荐。
经受时间的考验
作为IEEE Internet Computing 20年出版物的一部分,我向编辑委员会推荐了我们从我们的杂志中挑选的一篇文章,在过去20年中,它经受住了“时间的考验”。在选择文章时,我们对二十年来被称为“常青”研究领域的20多篇候选文章的观点进行了评价,然后根据IEEE Xplore的下载,引用和流行媒体中提及的工作,对这些文章进行了评定。该信息被提交到了由以前的杂志编辑组成的委员会。感谢由Arun Iyengar领导的编委会选拔委员会,包括Fred Douglis,Robert Filman,Michael Huhns,Charles Petrie,Michael Rabinovich和Munindar Singh。本委员会通过对每项工作内容以前和未来的重要性进行评估,评选出了排名前三的文章。
我很高兴能够认识委员会的官方“时间考验”获奖者:2003年1月/ 2月,由Greg Linden,Brent Smith和Jeremy York发表的一篇名为“亚马逊推荐系统:商品到商品的协作过滤”的工业界的文章,(发行IC(见doi:10.1109 / MIC.2003.1167344))。现在距这篇文章发表已经过去十四年了,它在IEEE Xplore的月下载量达到125次,2011年1月以来的下载量超过12,754次。文章目前在Google学术报告中引用达4,258次。我很高兴选拔委员会推荐了一篇工业界的文章,因为它符合杂志在学术,研究和工业人群中的无障碍的宗旨。
除了对这篇文章表示肯定之外,我们还要求作者写下这篇回顾性的论文,讨论一下他们从发表这篇获奖的“时间考验”文章之后发现的研究和见解,同时展望未来。
展望未来,这本杂志希望每2-3年评选一次“历经时间考验”的文章。我希望你喜欢这篇回顾性文章,请花点时间祝贺格雷格·林登,布伦特·史密斯和杰里米·约克。
- 布莱恩·布莱克
IEEE Internet Computing总编辑
德累斯顿大学教授和杰出教授
当我们在2003年把文章发布到IEEE的时候,基于项目的协同过滤已经被广泛地应用到亚马逊官网上。主页会根据您的购买记录和在商店浏览过的商品,突出地显示推荐商品。搜索结果页面会推荐与您的搜索相关的商品。购物车会推荐您可能已经在考虑要补充到购物车里的商品,或者某些您可能在下单前最后一分钟才突然想到要购买的商品。在完成订单时,会出现更多推荐,提示一些您以后可能会订购的商品。亚马逊网站上的许多页面,包括使用电子邮件,浏览页面,产品详细信息页面等,都会有一些推荐的内容,来尝试建立每个客户的个性化商店。
其他不少网站也使用了该算法。 2010年,YouTube被报道使用它来进行视频推荐。许多开源代码和第三方供应商也都包含了该算法,并在网络零售,旅游,新闻,广告等领域进行了广泛应用。在以后的几年中,推荐系统被亚马逊广泛使用,一份微软的研究报告估计亚马逊30%的网页浏览量都来自于推荐系统。同样,Netflix也在非常广泛地使用推荐系统,其首席产品官Neil Hunt表示,Netflix上用户80%以上的电影都是通过推荐系统看到的,其推荐系统每年产生的价值超过10亿美元。
当我们一开始开发基于项目的协同过滤算法时,亚马逊官网主要是一个书店。此后,亚马逊的销售额已经增长了百倍以上,销售范围已经不限于书籍,扩大到了非媒体类的商品,笔记本电脑、女装等。这种扩张对我们原始算法中的许多假设都造成了挑战,需要算法适应新的和不断变化的环境。通过经验,我们找到了改进算法的方法来为许多新的应用程序提供更相关的建议。
关于推荐系统和协同过滤的一些观点
作为一名博士生,我的工作使用定制推荐技术和协同过滤来选择把工作分配给互联网上的哪些外包人员。这期文章对我来说特别有意义。协同过滤是一种通过利用其他类似用户的体验,针对用户兴趣定制生成推荐来个性化用户体验的技术。传统上,该技术用于电子商务平台,通过将有针对性的推荐转换为购买来提升销售量. 这项技术比全面投放广告获得了更好的结果,能够更有针对性地定制个人用户的购买体验。尽管算法取得了这么大的成功,但是仍存在两个主要挑战:实时可扩展性和推荐质量。这些问题直接影响用户的个人体验,或者说,使用该技术的平台的成功。
作为首先要考虑的问题,可扩展性受到当今廉价和不断发展的存储和计算能力的影响。这些都导致了压倒性数量的数据的生成和收集。不幸的是,算法(包括传统的协同过滤)在实时或在线模式下处理这一新数据量的能力还没有得到发展。为了解决可扩展性的问题,研究人员采用了各种技术来以结构化的方式减少数据集。这些方法包括用户抽样,由物品分类驱动的数据分区,以及过滤高频或低频项目以将其他项目放到推荐列表的顶部。这些办法在寻求可扩展性问题的同时,也会影响到推荐的质量;这直接影响我们关心的第二个问题。
鉴于这些问题,研究界和从业者有义务制定一种可以在不牺牲推荐质量的情况下获得可扩展性的优势的方法。基于项目的协同过滤是目前最成功的方法。在主要的如亚马逊等大型电子商务平台中,其算法的持续性成功也显而易见。它通过用户的购买历史或商品评价进行推荐,将它们与已建立的指标进行类似的项目配对,最后组成类似商品的列表作为推荐。与以用户为中心的手段采用的减少数据集的技术相反,这种方法是以项目为中心,大大减少了评估的数据空间。正如IEEE Internet Computing的“历经时间考验的文章”和其他相关的工作所说,这种数据空间缩减可以达到其原始大小的三个数量级。以项目为中心,它克服了传统方法中用户数据稀疏的问题(这种方法在很大程度上有助于克服不必要的评估)。它也克服了与其个人资料相关联的重度用户大量数据的的密度问题。
基于项目的协同过滤仍然需要离线处理来配对相似的项目。通过离线预处理信息,基于项目的协同过滤可以在在线模式中实时生成推荐列表。这样可以为用户提供简单,快速,更个性化的推荐。与整个数据集中的其他项目相反,类似的项目列表是针对用户的购买或评级历史的一组光滑子集。它也克服了具有稀疏历史的新用户和轻度用户的挑战,因为类似的项目列表侧重于用户的历史,而不是其他用户的历史。这种技术更有效率,但对推荐质量没有任何不利影响;因此,它仍然是实时,在线协同过滤和推荐算法的首选技术。
— Julian Jarrett
PhD Student, Computer Science, Drexel University
定义“相关”商品
推荐的质量在很大程度上取决于我们所谓的“相关”。例如,假设您购买了X,我们所谓的“非常可能”购买物品Y是什么意思?当我们观察到用户购买了X和Y时,我们可能会想知道如果这两个商品是无关的,有多少X买家会随机购买Y。推荐系统最终是统计性质的应用。人们的行为信息充满了噪声,我们的挑战就是要在随机事件中发现有用的模式。
估计购买X和Y的用户数量的一种方式是假设普通X的买家有相同的概率购买Y, ,同时将作为对购买X和Y的客户期望数量的估计。我们2003年发表的论文以及2003年以前的大部分工作都使用了类似的计算。
然而,有一个有趣的事实是,对于几乎任何两个X和Y商品,算法结果是购买X的客户都比一般人更有可能购买Y。怎么会这样呢?想象有一个重度买家,购买了目录中的所有商品。当我们寻找所有购买X的客户时,该客户肯定会被选中。同样, 1,000次购买记录的客户被选中的概率将比只有20次购买记录的人高约50倍;随机抽样购买记录并不能让所选的客户保持均匀的分布。所以我们有一个有偏样本。对于任何项目X,购买X的客户都将比一般顾客更有可能购买其他商品。
这种客户购买记录的不均匀分布意味着我们在试图估计预期随机购买Y商品的X买家数量时,不能忽视X买家。我们认为对有很多机会购买Y商品的客户进行建模是有用的。例如,对于有20次购买操作的客户,我们将这20次操作中的每一次都作为一个独立购买Y的记录。
更正式地,对于购买X的指定客户c(由c∈X表示),我们可以估计c购买Y的概率为1-(1-PY)|C|,其中| c |是根据c和 或任意随机选择的购买商品为Y的概率得出的不购买X的顾客。然后,我们可以通过对所有X买家进行求和并使用扩展二项式来计算X买方中预期购买Y商品的买方的数量(见下图)。
推荐系统的未来是什么?我们相信在我们面前有大量的机会都将超越我们。想象一下未来的智能互动服务,在里面购物会像谈话一样容易。
作者
Brent Smith已经为亚马逊的个性化推荐系统工作了17年,一直在领导这场面向消费者的快速创新革命。他是加州大学圣地亚哥分校的数学学士、华盛顿大学的数学硕士。他的邮箱是smithbr@amazon.com。
Greg Linden如今是微软的数据科学家了。发表那篇经典论文的时候,他是在亚马逊,随后又去过Google和其他几家创业公司。他此前的工作多集中在推荐系统、个性化、人工智能、搜索和广告方面。Linden是华盛顿大学的计算机硕士、斯坦福大学MBA。他的邮箱是glinden@gmail.com。
原文地址
https://www.computer.org/csdl/mags/ic/2017/03/mic2017030012.html
AI100好评如潮的精品课《XGBoost从基础到实战》由资深讲师一步步带领大家从XGBoost的安装到一行行Python代码实现各类算法任务,不需要有很强的数学基础,直接从实战入手,学员们纷纷表示获益良多。快加入我们开启你的XGBoost探索之路!
点击下方“阅读原文”查看更多内容。
关注公众号:拾黑(shiheibook)了解更多
[广告]赞助链接:
四季很好,只要有你,文娱排行榜:https://www.yaopaiming.com/
让资讯触达的更精准有趣:https://www.0xu.cn/
随时掌握互联网精彩
- 1 习近平寄语澳门 7921860
- 2 老人取走自己卡内200多万被抓 7971141
- 3 突发:美军战斗机被击落 7881456
- 4 我国工业经济平稳向好 7785638
- 5 三战是否已经开始?普京回应 7673387
- 6 张雨绮 为了讨大家喜欢才穿成这样 7503520
- 7 春熙路不能随便开直播了 7463505
- 8 湖南卫视声明 7364021
- 9 马斯克被曝闯入特朗普和贝索斯晚宴 7212694
- 10 美国开始用这种方式窃取中企商业机密 7102862