Amazon 的推荐算法是否特别优秀?为什么?

【张金野的回答(48票)】:

谢邀~ 大家答得都挺好的,我做个补充~

我碰巧前些时候和Amazon的Chief Scientist Andreas Weigend聊过,和大家分享一下~

当时我的观点当然很不成熟,大致意思是只要数据量足够大,所有的信息,包括预测,推荐,评价等,都可以从数据分析中获得。他和我的观点是相对的,他说他们现在做的,不是从数据中分析出信息,而是建立一套有效的评价和反馈机制,让用户形成一个良好的Community,让用户本身对于产品进行推荐。也就是说,你得到的推荐,也许根本不是从数据中挖掘出来的,而是由其他用户贡献的。这个观点还可以这么理解:用户群体,也成为了产品的一部分

不知道这样说清不清楚,供大家借鉴。

【谢科的回答(19票)】:

感谢david邀请。第一次在知乎回答手足无措的感觉。

短答案:不是

长答案:

就我浅薄的见识看,决定一个推荐系统是不是成功有太多的方面。算法肯定是其中最重要的之一(要是给个随机数生成器,估计是个人就能感觉得出来这个推荐系统多二),但是绝对不是全部。

从我的使用经验和读他们的paper来看,亚马逊现在使用的推荐系统仍然是item-to-item的算法,最基本也是最简单但也是用得最多的算法。注意看如果你去买一个相机,它给你推荐的一定是那个相机相关的器材,也就是说,亚马逊似乎并没有集成一系列matrix factorization之流在各大会议上发到爆棚的“牛逼”算法。这主要是因为,一般复杂的模型难于实现难以维护,而且达到的效果只是在基本算法上的边际提升。

之所以亚马逊的用户体验还不错,主要是很多因素在综合起作用,而不光是他们的算法很牛逼。举几个例子:

1)推荐解释。如果推荐的时候给你解释为什么要给你推荐这个产品,那么你接受起来会更容易一些。(由于亚马逊没有社交网络,比如FB和Twitter的关系团,所以没有办法给你朋友推荐,但是如果能加上你的强社会关系用户的评价,推荐系统的使用性会更好。参见:arxiv.org/abs/1304.3405

2)评价。每个商品推荐时候的ranking都是结合过用户评价,也就是说不光是推荐系统在起作用,评价的情感分析,评价总结都有考虑。这样给你推荐一个商品的时候,很少会推荐一个你觉得“烂"的产品。

3)网站本身体验就不错。

综上,算法仅是一个方面,netflix大赛107个model的例子也让大家都明白了,复杂的model在paper上写写就好,工业界要用的主要还是能用算法+产品+体验。

【吴健的回答(19票)】:

现在在京东、易迅、亚马逊等看到的主流推荐算法,一般都是基于物品自身相似性(不依赖于用户数据,没有冷启动问题)、基于用户浏览、喜欢、购买等数据的协同过滤推荐(用户纬度和商品纬度)。

其实这些推荐算法的核心思路,是很朴素的。

一、基于物品自身相似度:例如衣服A和衣服B,对于它们在分类、价格段、属性、风格、品牌定位等等其他属性纬度的表现,来计算它们之间的相似度,如果相似度高,那么在有用户浏览A的时候,就可以推荐B(实际当然没这么简单)。因为衣服的这些属性是不依赖于用户的,所以解决了系统的冷启动问题,正是不依赖与用户的行为数据,因此比较死板,完全没有个性化的推荐。这个算法的思路很多人都清楚,但是越是简单的算法,要达到好的效果就越是难,特别是推荐这种转化率非常低的算法。商品有几十个属性,对不同分类的商品,并不是所有的属性都是有必要纳入相似度计算的,已经纳入的属性但是重要性也是有区别的,这样一来,光光给不同类别商品筛选必要属性以及设置这些属性在相似度计算中的权重值,就是一项非常浩大的工程了。亚马逊的推荐系统在全球行业中也是最早的,相信他们在这个问题上肯定有自己一套迅速有效的方法。当然要我来说具体是怎么样的,我怎么可能知道呢^_^,知道了也不告诉你。

二、基于用户纬度的协同过滤:采集用户的购买(浏览、收藏都行)商品数据,把用户购买的商品列出来,当作用户的属性纬度。例如用户A购买了商品1、2、3、4、5,用户B购买了商品1、2、5、6,那么可以简单的将12345和1256分别作为A和B的属性特征字符串,计算A和B的相似度,经过简单的聚类将用户聚成几个类别(邻居)。假设A和B同属于一个聚类,那么可以称A和B有比较相似的偏好,继而可以将A买过而B没买过的其他商品推荐给B。在这一个流程里,可以发挥的地方有很多:1、用户的行为数据需要去噪音(买了多少商品以下的用户不考虑,有代购的不考虑,如何精准的判断代购,商品时效性的考虑,数据的时间跨度等等);2、计算相似度的时候跟第一点中提到的一样,并不是所有商品对用户的描述度都是一样的。可能价格低的重要程度就没有昂贵的商品重要。3、通过聚类计算邻居的时候,聚类算法又是另一门学科了,或者选择分类算法。然后聚类的门槛选择都是需要很长时间的测试、观察、修改的,需要时间的积累。4、浏览、购买、收藏等历史数据是不是可以协同过滤。现在很多网站给出的推荐,都不是单一推荐算法的,一个算法的输出可以作为另一个算法的输入,可以是多个算法的输出综合筛选,这也是一个需要长时间积累的地方。

三、基于物品纬度的协同过滤:其实我觉得是和第二点很相似,就是将用户作为商品的属性纬度来看。例如商品A被用户1,2,3,4,5,6购买过,商品B被用户1,3,4,5,7购买过,那么将123456作为商品A的特征属性数据,13457作为商品B的特征数据,然后计算商品A和B的相似度(这里的相似度却别于第一点提到的相似度,似乎叫“相似度”不是很合适)。因为我们有理由认为同一个人群买了A,又买了B,那么A和B一定有某种关联。在这个流程里面可以发挥的地方基本和第二点中提到的差不多。

四、强关联规则的应用:重点是同一次购买记录(当然也不是必然的,看自己的选择)。首先收集数据就需要把一单购买一种商品的过滤掉。然后一次对每一条记录中进行成对提取统计,简单的就是两两统计次数,这种提取出来的都是两个商品被同时购买的次数,适用于一对一推荐。还有一种是通过FPTree算法(似乎是这个名字吧,因为我们公司是一对一的需求,所以这个算法我没怎么研究,是我自己写的两两统计),不光是一对一推荐,可以一对二,二对一。在这个流程里面,关联规则(关联规则_百度百科)挖掘算法非常重要,其中置信度和支持度也是需要不断调整的地方。

五、所有推荐系统之间的数据共享、数据的定时自动更新、自动学习。

总的来说,推荐算法大部分都是很朴素的,但是需要运用的好,没有长时间的积累是做不到的。仅仅是聘请一些算法工程师,运用一些算法框架,想取得好的推荐效果,基本是不可能的。只有算法与具体业务相结合才能产生化学反应。

【彭河森的回答(10票)】:

竟然被人要求答问题了,受宠若惊。因为保密协议不能直接作答。其实楼上几个达人已经回答的很好了,从最后个人用户体验来说亚马逊的推荐系统不管是中文也好还是英文也好都还有很多的可以提高的地方。

个人觉得没有必要对某个公司的算法太过推崇,个人认为原因有三:

1) 推荐算法的投入边际效应递减是非常严重的。谷歌、微软都在美国聘用了大量的博士级人物进行推荐算法优化,无非就是针对一些特定的知识点做专门的feature engineering。以期这样一点一点的提高算法的质量。现在有了deep learning,不过就是把高维的feature 通过各种办法map到低维的空间上去,而这些低维空间上的feature 很有可能已经有人把它给做过了,所以能提高多少也是一个问题。

2) IT公司说白了都是铁打的营盘流水的兵。当年给亚马逊做推荐系统的那几个人呢现在没准正在阿里巴巴、百度神马的地方猫着呢(大牛们看了是不是在会心一笑呢?)按照亚马逊平均雇佣一年年限来算的话,从2000年到现在走了的人也有至少十轮了吧,这么多的人散落天涯早就让亚马逊的推荐算法不再独特了

3) 现在很多开放源代码的软件也可以做很多推荐应用了,好多效果都不赖哦。

另外跑题说一句,其实很多人生导师啊神马的吹嘘谷歌也是没什么必要的,IT公司现在已经越来越大众化了,技术上面的比拼现在已经很难让一个公司脱颖而出击败对手的。在业务流程上的优化、用户体验上的提高、产业模式上面的创新才是一个公司长期不败的因素吧。

【程允彪的回答(13票)】:

觉得他不牛逼,可能是因为推荐算法这几年已经研究得很透,也就那么几种经典算法,user-knn,item-knn,MF等,从算法本身来讲并不难;那么为什么称为“推荐之王”?因为这个推荐系统对amazon销售额贡献率在20%-30%之间,是人家烧了大把钱,花十几年搭建并不断完善的,一直孜孜不倦收集物品和用户行为数据,并不是随便一家电商用很牛逼的算法就能做到的。学术界和工业界在推荐算法的评价标准不一样,为发论文要去死抠百分零点几的准确率,实际应用的话更关注算法健壮性、可扩展、效率、可解释性,所以简单的算法+海量数据更能符合实际生产环境。

【李作刚的回答(1票)】:

核心观点:

  • 当数据量足够大的时候,任何统计模型(推荐算法)得到的结果都更准确
  • 越简单的模型,随着数据量增大表现出的准确性提高越明显
  • 在数据量足够大的时候,简单模型得出的结果准确性要高于复杂模型
Amazon 的模型是主要是计算单品对单品的相关性 (item to item)不是一个复杂模型。见: cs.umd.edu/~samir/498/A

而导致数据结果准确的原因就是,他们的数据足够「大」。

大的含义有两层:

  • 维度够广
  • 历史够长
收集信息的阶段,尽可能多的记录下来能记录的数据,分析的时候把所有维度都纳入。如果和结果不存在相关性自然就不会体现到结果中。

【卢学裕的回答(2票)】:

我认为“推荐”可以有三种方式实现,1是编辑推荐(比如编辑,售货员,促销员),2是机器推荐,个性化推荐及相关推荐系统(电商,视频是目前表现非常好的领域),在优酷土豆的表现也非常好。3是社会化推荐,你的朋友给你推荐,比如微博、微信、蘑菇街、还有你周围好热心肠的朋友(帮别人介绍对象的绝对是个积极的推荐节点)。

先回答这个问题“有人说 Amazon 促销少是因为推荐算法牛逼”

我不认为是这样的。既然说到促销,先说说我对促销的理解

一、促销也是一种“推荐”,推荐理由是“你可以花更少的钱买到你想要的东西”,那么能接受这种这个理由的消费者就会接受这种推荐,中国的消费者文化是这种推荐的很好的土壤。双11就是最好的例子。

二、促销是有成本的,要让利,实实在在的利,那么这就是一本经济账,所以有的愿意使用这种方式,有的不愿意。中国的商家天然存在一种想法,叫“你死我活”,“我要垄断市场”,那么最好的吸引消费者的方式就是“让利”,“促销”。京东3C一直亏钱就是个例子,所以中国的商业文化又自然的会选择这种方式。没有因为促销被骗的消费者还是很高兴的。

促销或者机器推荐都是一种手段,用哪种,看市场及公司的取向。

再说说推荐系统,其目的是将内容分发给消费者,上面提到了三种方式,人工、机器、社会化推荐

一、人工的主要体现就是CMS系统,编辑等运营人员将内容整理好,形成首页、频道页推荐给用户。

二、机器,大家都说了很多了,目前主流的算法大多是归纳演绎的方法推荐的,算法比较成熟,各家都会建立数十种推荐模型、融合、排序后推荐给用户。主流的算法都差不多,表现的好坏跟三个因素有关:1、数据量,不多说。2、内容商品性质,如果你经营的内容或商品并不适合使用推荐系统,那么,表现自然不会好。3、公司的战略产品UI设计,如果公司更注重表现主流价值观(CXTV?),那么CMS这种人工推荐更合适,就会出现各个入口页面都是编辑喜欢的东西;一般都是混合型的。

三、社交网络,“我觉得果壳网很赞哦”。。。

【余露的回答(2票)】:

电子商务的蓬勃发展俨然构建了一个在线的巨大超市,然而用户时间宝贵,经常依赖搜索引擎寻找商品,被曝光的商品一般是知名度比较高,较为流行的。电商则希望提高自己的竞争能力,提高用户体验,促进仓库里更多的商品曝光给用户。03年的时候Amazon.com的Greg Linden的一篇Item-to-Item CF文章多少告知了一些亚马逊的推荐系统。就我个人的使用经历来看,Amazon的推荐系统有如下特点:

1. 从Amazon的推荐列表来看,他的推荐算法一般只针对同一类目下的商品推荐 (如 图书,电子消费产品)。我做出这个判断的依据是Collaborative Filtering 本身具有领域无关的特点。我在Amazon上一般就买书,硬盘,推荐列表中的商品一个都没有逃离这个范围,所以我才做出这样的判断

2. 一个成熟的推荐系统从来不会只依赖一种推荐策略。Amazon除了使用 Item-based 的协同过滤,他还十分注意对用户的购物篮进行分析。我想大家应该都体验过 Amazon 的推荐结果还包括了一个"购买这个商品的人还购买", 或者 “浏览过该商品的人还浏览过” 的模块

3. 就如@张金野 所说的那样,Amazon 非常注意对用户行为数据的收集和分析。他会从用户的行为数据中提取能够帮助建立合理规则的信息,当然这块就需要十分细致的分析,可能需要在Amazon内部工作过的人来解答了。因为 Amazon 要建立一套有效的评价和反馈机制的话,就离不开用户所留下的宝贵财产。

4. Amazon 的推荐算法本身并不能算特别复杂的,但是他们为构建这个推荐系统所采用的系统架构肯定是十分复杂的。电商的业务线本身就挺多的,要想把推荐系统和其他的服务良好的整合起来是需要很多的实践经验和金钱的。除此之外,推荐系统要具备有良好的实时性,需要在很短的时间内抓住用户的新喜好,或者兴趣的变化。这就要求算法不能太复杂,不然可能在训练的时候耗时间,或者在线推荐的时候无法做到实时性。

第一次被邀请,不知道这样的回答满意否?如果有不对的地方,欢迎大家指正哈。

【一热的回答(1票)】:

推荐从原理上都不复杂,重要的是要有好的数据。

本人供职的公司为Amazon提供高质量的数据,比如哪些NAS能和哪个型号的UPS相兼容。这是非常庞大而繁琐的工作。

而基本高质量数据做出来的推荐,加上协同,个人记忆信息推荐的内容当然比几个运营拍脑袋想出来的啤酒尿布靠谱得多。

【henu王凯的回答(1票)】:

这个问题《大数据时代》一书中有解答,我摘选如下:

最初的推荐工作是由人工完成的(那时亚马逊只卖图书)。

杰夫·贝索斯,亚马逊公司的创始人以及总裁,决定尝试一个极富创造力的想法:根据客户个人以前的购物喜好,为其推荐具体的书籍。(但由于数据处理不当,效果不佳)

亚马逊软件工程师格雷格·林登找到了一个解决方案。他意识到,推荐系统实际上并没有必要把顾客与其他顾客进行对比,这样做其实在技术上也比较繁琐。它需要做的是找到产品之间的关联性。1998年,林登和他的同事申请了著名的“item-to-item”协同过滤技术的专利。方法的转变使技术发生了翻天覆地的变化。

因为估算可以提前惊醒,所以推荐系统快如闪电,而且适用于各种各样的产品由于系统中使用了所有的数据,推荐会更理想。林登回忆道:在助里有句玩笑话,说的是如果系统运作良好,亚马逊应该只推荐一本书,而这本书就是你将要买的下一本书。“

如今,据说亚马逊销售额的三分之一都是来至于他的个性化推荐系统。有了它,亚马逊不仅使很多大型书店和音乐唱片商店歇业,而且当地数百个自以为有自己风格的书商也难免转型之风的影响。事实上,林登的工作(创出的推荐算法)彻底改变了电子商务,现在几乎每个人都在使用电子商务。

亚马逊的推荐系统梳理出了有趣的相关关系,但不知道背后的原因。知道是什么就够了,没必要知道为什么。

另:

1、上述引用内容()中为相关解释,不是原著内容

2、引用之第三章《不是因果关系,而是相关关系》,作者为证明观点所举有关亚马逊的例子

3、推荐互联网从业人员读《大数据时代》

【刘作涛的回答(1票)】:

要评价一个推荐系统,很多时候不能只从表面看其是否命中我的需求、是否给我带来惊喜。推荐系统本来就是跟业务逻辑和商业诉求绑定的。

我一直觉得一个好的推荐系统不应该只是提高点击率、转化率或者收入占比,而是应该帮助构建一个良好的生态环境,例如给更多的商品增加曝光机会,促进用户的交互、评论等等。

我很少用Amazon,但我可以分享一个经历。我们曾经做过一个推荐系统,来自推荐的收入占比可以占到网站的20-30%,但网站的收入并没有提升,推荐只是分流了别的渠道的用户行为而已。这就是一个失败的推荐系统。

我相信Amazon作为推荐系统的先驱,作为一个商业上很有追求的公司,他们的推荐系统不仅仅是30%的转化率那么简单(这个数字已经不低了,但跟站点的UI关联很大。Netflix来自推荐系统的流量甚至超过70%,说明这并不是那么遥不可及),一定承载了很多别的商业需求。

【王养浩的回答(0票)】:

竟然被邀请了

先说算法:

第一,亚马逊的算法不公开吧应该,所以不知道他优秀不优秀。十几年前公开的论文里说,基本上就是找同类相似物品。所以找相似书还可以,找相似移动硬盘就没意思了。

第二,据我所知,从学术研究的角度来看,亚马逊的算法并不高明,哪个公司的算法都不会太高明,因为复杂的算法效率太差,而且提升不大。

第三,效果好的算法需要的训练时间长,如果一个人点完几下五分钟之后推荐结果就出来,那是在线增量算法,也就是近似算法,效果不会太好。

第四,学术研究的所谓优秀的推荐算法,效果也没好到哪去。

推荐算法的结果从绝对的数值来看,是很不精准的,因为无论怎么看,数据量都太小了。有人说大数据啊,实际上,大部分用户可能只有几条购买记录,一亿用户合在一起那当然多了。比如说用四五条记录把握一个人的喜好,那这样本数量还是太少了。你见过统计学四五个数据样本算一大堆什么期望方差吗。

这个不光是算法的问题,还有界面展示,促销策略,商品价格多方面的问题。

所以事实上推荐系统只是贡献了亚马逊其中一部分的销售额。

【谢锴的回答(0票)】:

个人觉得算法对于一个商业系统来说不是最重要的,数据才是。他这么多年的数据积累是他这个系统牛逼的主要因素。商业系统应当选用健壮而且快速的算法,而不是没有经过实践检验的新算法。

【JoeLee的回答(0票)】:

个人观点:不能根据推荐算法背后的理论,数学公式的复杂性来评价推荐算法是否牛逼。推荐系统的目的是实现内容提供商和用户的“Win-Win”。能够解决实际的业务问题,带来实际的效益才是王道!相比算法,业务数据,UI可能更重要一些。根据业务数据特点选择具体的算法。

【clcron的回答(0票)】:

前面的同学有了很多不错的观点,我比较赞同:

1,亚马逊的推荐系统可能体验上好于淘宝或者其他的推荐系统,起主要作用的不是算法多么好,而是数据的原因,当然CF算法是Amazon发明的,导致Amazon的推荐系统和技术被大家效仿,而个人觉得衡量一个好的推荐系统关键是看是否能满足用户需求

2,另外一点,楼上有同学说Amazon的转化率20% 淘宝的转化率3%,其实也是由于淘宝与Amazon数据不一样的原因,很简单的不同是:Amazon是超市,而淘宝是很多小贩的集合,同一个商品淘宝上有n个卖家在卖……所以,我的观点还是数据起的作用要大一点。

【王科的回答(0票)】:

为什么亚马逊的推荐算法牛逼?

其中一个重要的原因,是推荐这种形式的应用用在商品推荐上是可行的,也就是人的购物都有一定的规律,偏向于某一类,甚至某几类物品,而购买同一个物品的人也有可能购买其它的同样一个物品。

为什么亚马逊的推荐算法不是很牛逼?

很大程度上因为推荐这种应用形式的局限性,例如一个人的女朋友爱好某一种化妆品,他会投其所好在亚马逊购买这一类化妆品,然而有一天这个人换了个女友,新女友爱好的是另一类化妆品,但是系统是不可能一下子就知道的,它将依然推荐老数据,那么你就感觉它“不够牛逼”。

楼主谈到的具体现象,预计其策略在不同场景下会有不同,算法可能认为购买过的商品可能就不再需要了,浏览与搜索过的,意味着需求尚在,当然这都是未必“对”的。不知道楼主注意观察没有,购买一个商品时,会有一个商品组合,那个应该就是你说的,基于关联规则的推荐。系统会自动挖掘,这个商品的共同购买频率,进行推荐。

推荐这类形式的应用,是有很大局限的,根源在于无法彻底的得到用户需求。总体上讲,亚马逊的推荐算法已经非常优秀了,当然它的推荐系统的成功不仅仅因为推荐算法,其应用形式的成功,数据的高质量都是必要条件。

【JueFan的回答(0票)】:

好象都给大家说全了, Amazon我也经常逛的, 个人觉得在某些领域的推荐还是挺不错的, 例如图书, 当然其它领域我没怎么用. Amazon上大部分是广义ItemBase的推荐, 所以很多人看到的推荐出来的都是同类型物品, 而没有出现啤酒尿布这种惊喜推荐. 人家这么肯定是跟着业务线走的, 只要这算法在业务上能产生最大价值, 即便是只挑最热门的作推荐人家也愿意.

【黄琛的回答(0票)】:

Amazon 是提出推荐概念最早的公司之一吧,先入为主让你觉得很NB而已。目前这一块的发展只有更NB,没有最NB

评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
新闻聚焦
热门推荐
返回列表