扫码打开虎嗅APP
亚马逊在业内有「推荐系统之王」之称,亚马逊有35%的销售额是与推荐系统相关的。但是最近,微软的研究员Amit Sharma发表了一篇paper《Estimating the causal impact of recommendation systems from observational data》,对这个事情提出了质疑。这篇论文分析了Amazon上4000种不同商品的相关数据,认为与我们通常归因于推荐系统的点击次数相比,实际上仅有四分之一真正是由推荐系统引起的,其他四分之三和推荐并没有关系。
论文里举了一个例子,如下图左图,大家主要看一下红圈标明的地方,这是Amazon的单品页上非常重要的一个推荐位「Frequently Bought Together / 经常一起购买的商品」。冬天来了,小明想买一顶帽子御寒,他在Amazon上看中了图中的这顶帽子,这个时候Amazon向小明推荐说,买这顶帽子的人通常还会买红圈里的那副手套,而恰好小明也需要一副手套,所以就一起下单了。例子中手套的销售通常被认为是推荐系统的作用。
而论文作者的观点是,即使没有推荐,如上图右图,小明因为御寒的需要,一样会寻找并购买一副手套,因此这种购买不应该计入推荐系统。作者把没有推荐系统就不会发生的点击称为「因果性点击」,而把上例中小明购买手套的点击成为「便利性点击」——有没有推荐系统手套的购买都会发生,推荐系统仅仅是带来了「便利性」。论文试图用实验的方法来证明,推荐系统带来的绝大部分点击都是这种「便利性点击」,因此推荐系统的价值很大程度上被高估了。
为了干这个事情,论文作者发明了一种称为「Shock-IV」的测量方法。论文的实验数据来自于Bing工具条用户的真实访问日志,包括了210万匿名用户在2013-14年间的9个月时间内对Amazon上140万商品的访问记录,并以推荐系统中最最常见的推荐形态「Customers who bought this also bought / 买了还买」作为评价目标。具体的细节我这里略去不表了,有兴趣的同学可以自己去读一下paper。论文的结果如下图。
图中显示了使用Shock-IV方法得到的因果性点击率(CTR)的估计值(绿色曲线),同时为了对比,还给出了把便利性点击计算在内的推荐系统点击率(红色虚线)。可以看到,例如书这个品类,因果性点击率只有5%,而我们通常认为10%以上点击是来自于推荐系统。对于不同的商品类别,相比于推荐系统真实有效的点击,即因果性点击,我们通常会高估了200%的推荐效果。接下来是论文的常见套路之列举不足,然后给出了结论,他们使用的Shock-IV这套实验方法是相当data-driven的,有很大的应用价值应该推而广之。
有人把这个实验结果po到了Quora上,结果推荐领域的大神Xavier Amatriain怒了。
熟悉推荐领域的人想必都知道Xavier的大名,他上一份工作是Netflix推荐团队的负责人,现在是Quora的工程VP。Xavier之所以对这篇论文很不满,一个重要的原因是他认为原论文的作者是在他们领域里受到尊重的研究人员,而这篇论文本身却既不严谨又缺乏行业认知,大牌研究人员发布不靠谱的结论,误导性非常大,因此他有必要站出来拨乱反正。
针对前文中「帽子-手套」的例子,Xavier认为原论文提出的问题——如果没有推荐用户会怎么做——是毫无意义的。在没有推荐的时候,用户会有两个选择:1)自主选择其他一副手套;2)抛弃你的服务,去别的地方。实际上,第二个选择是非常值得关注的,且与原论文的另一大缺陷相关:仅是简单地使用CTR来评估推荐系统。一个推荐系统的好坏不仅仅取决于有一个更好或更坏的CTR,非常重要的一点是,它有助于减轻用户寻找到「正确选择」的负担。假设两个网站A和B,在网站A里用户3秒内就找到了他想要的东西,而在网站B需要3分钟,那么显而易见地用户会更经常使用A网站。换句话说,推荐系统带来的不仅仅是简单的点击,更重要的是让用户「重复使用」。
原论文中对「推荐」的定义太过狭隘,暂且不说现如今很多搜索结果都是个性化过的,像Amazon这样的网站,推荐几乎已经无所不在了。而「便利性点击」恰恰正是推荐系统所追求的目标之一。推荐系统让用户生活更容易、更便利,从长期上看,用户因此会购买更多商品,或者对服务的满意度更高。所以从实践意义上看,原论文定义的问题根本就是个杯具。当我们使用A/B测试衡量一个推荐系统的效果时,我们更加看中的是推荐是否让用户「爽」了,用户使用服务爽了,就会带来更多的活跃与营收。「便利性」不是给推荐系统添乱,它是使用推荐系统应该具备的固有益处。
另外,原论文中说因为数据层面的限制他们做不了在线的A/B测试,很多人很多场景也都做不了,因此它们提出的Shock-IV可以作为推荐系统A/B测试的一种替代方案。Xavier的意思是,你们别闹了,并给出了他之前在前东家Netflix的一个案例,在「Netflix推荐系统的最新解读:算法、商业价值与创新」一文中,Netflix发现个性化技术可以显著提高推荐影片的被接受度(Take-Rate),即推荐给用户的影片真正被播放的比率。Netflix做了一个对比分析,见下图,黑色线是基于热门度的曲线,红色线是基于个性化PVR(Personalized Video Ranker)指标的曲线,个性化推荐使得接受度有了巨大的提升。而且除此之外,比接受度提高更有意义的是,优秀的推荐技术使得用户的参与度(观看时长)与退订率都受益匪浅。Netflix的月退订率很低(很小的个位数百分比),大部分是因为支付的问题,真正主动选择退订的非常少。通过在个性化推荐领域的多年耕耘,月退订率得以降低了可观的百分比。月退订率的降低,一来有效延长了会员的付费存续期,二来也降低了为弥补流失用户所要付出的成本。
Xavier列举了他认为原论文中的不妥之处,包括:
实验的设定根本就是错的。
对于推荐系统工作方式的假设也是错的。
核心概念的定义过于苛刻,与应用的现实场景脱节。
实验受到了这么多的假设和约束,但没有发现这些限制有任何好处。
由于实验方法的这些限制,需要仔细考虑实验结果的局限性。
最后得到的实验结果,并没有与任何公认的结果进行对比。
在Quora的回答里,Xavier围绕这些问题一一进行了反驳,内容很长,建议大家去仔细读一读原答案,对大家学习理解推荐系统会非常有帮助。
其实关于如何评价推荐系统的作用,很早以前在ResysChina论坛里同学们也有过很多的讨论。比如,如果以CTR为考核指标,把豆瓣电影单品页中「喜欢这部电影的人也喜欢」这部分换成推荐热门电影,这样这部分的点击率会提高很多。但如果考察用户点击的深度,即点击了推荐项之后又继续沿此路径发生了多少次点击,推荐系统给出的结果就要远超热门结果了。所以推荐系统从长期用户价值来看更有用处。
Amazon对待推荐系统价值的认知,《一键下单》书中有一段Amazon创始人贝索斯自己对它的评价:
我想我们能做的就是利用先进技术,例如联合过滤(推荐系统最经典的算法)以及其他技术来加快找书速度。打个比方,如果你今天走进一家书店,发现一本让你灵魂出窍的书的可能性是1/1000,我们想利用技术来了解你本人,并使这种机会增加到1/300,然后是1/100。经过几年的努力以后,使这个概率变成1/50,等等。这将为人们创造巨大的价值。再伟大的商人也没有机会逐个地了解他们的顾客,而电子商务要使这成为可能。
而且贝索斯还曾拿推荐系统作为武器来制衡供应商,《一网打尽》中提到过这个事情:
亚马逊在和大型出版商谈判的时候,就会使用他们的「推荐系统」作为杀手锏。如果出版商没有达到他们的要求,亚马逊就威胁将他们的书从人机自动化推荐系统中撤下,这也就意味着他们将不会向客户推荐这本书。最开始出版商根本不知道亚马逊这样做会有什么效果,他们大多数人不知道他们销售额增长的原因正是因为他们处于显眼的推荐位置。亚马逊通过这种方法来展示其强大的市场力量。如果一家出版商不妥协,亚马逊就会关闭推荐其书目的算法,出版商的销售额一般会下降40%。然后,通常30天左右出版商就会回过头来说,「哎哟,我们怎么做这项工作?」
这个故事也从侧面印证了原论文的假设是多么不靠谱。简单讲,这篇被批判的paper最大的问题之一,就是把推荐仅当做「买了还买」这么一项功能来看,推荐系统现在绝不仅仅是一个算法或者一项功能了,它承载着传递用户价值的重大作用。
最后,关于「买了还买」这个推荐领域的经典应用,在Greg Linden的《Early Amazon》也里有过相关的内容,推荐给大家。
亚马逊有一个广为人知的功能,「买过某本书的顾客还买过」。这是发现相关书籍的绝佳途径。
在内部,我们管这个功能叫做「相似推荐」。通过使用这个功能,不断地从一本书跳转到另一本书,叫做「相似推荐漫游」。
这个功能的第一版是一位叫做Eric的攻城狮开发的,他很聪明,开发经验也很丰富。和Eric一起工作的感觉很棒,从他身上我学到了很多。
第一版的相似推荐功能非常受欢迎。但是它有一个问题,即所谓的「哈利波特问题」。
嗯,是的,就是那个哈利波特。哈利波特是那种老少通杀的畅销书,孩子会买它,大人也会买它,所有人都会买它。
然后你可以任选一本书。当你关注买了这本书的顾客还买过其他哪些书的时候,放心吧,其中的大多数顾客都买过哈利波特。
这种相似推荐是没有太大用处的。你感受一下,当你在浏览《The Psychology of Computer Programming》这本书的时候,给你推荐哈利波特是不是挺没用的。如果能够推荐《Peopleware》和《The Mythical Man Month》,就有用多了。
要解决这个问题并不像乍看起来那么简单。有一些显而易见的解决方案会带来另外的问题,其中一些甚至比哈利波特问题本身还要严重。
通过大量的实验,我发明了一种新的相似推荐方法,工作得相当不错。新方法给出的相似推荐,更新颖也更有帮助。而且与此同时,我还对程序性能做出了一些提升。整个过程非常有趣。
当这个新版本的相似推荐功能上线之后,贝索斯冲入我的办公室,跪倒在我面前,向我高呼,「你丫的酷毙了!你丫的酷毙了!」
我和我的小伙伴们都惊呆了,不知道该作何反应,即使到现在回想起来,仍然会觉得手足无措。那一刻,永远地停留在了我的记忆中。
对《Early Amazon》全系列感兴趣的,请关注ResysChina微信公众号,回复「amazon」即可