(文/Joseph A. Konstan & John Riedl) 讲完了推荐算法是如何“猜你喜欢”的,现在,你对于每回上网购物时在线零售商是如何打量你,并努力把你的喜好和其他人的相匹配有了一个基本的概念。
推荐系统还有另外两大特点,也对你最终看到的推荐结果有着显著的影响:第一,在弄清楚你和其他购物者的相似度有多高之前,推荐系统必须先弄明白你真正喜欢什么;第二,推荐系统依照一组商业规则运行,以确保推荐结果既让你觉得有用,也使商家有利可图。
推荐算法是如何赢得你的信任,又让商家有钱可赚的?
采集你的上网数据
举个例子,来看亚马逊的艺术品商店,上次我们去看的时候那里有 900 多万册印刷品和海报在降价促销。亚马逊的艺术品商店有这样几个方法来评估你的喜好。它会让你在 1 到 5 颗星的等级上给某一件艺术作品打分,它也会记录下你把哪些画点击放大了来看、哪些画你反反复复看了好多次,你把哪些放进了心愿单,还有你最终实际下单买了什么。它还会追踪在你浏览过的每一个页面上都显示了哪些画作。在线零售商会使用你在其网站行进的路径(你浏览过的页面和点击商品的链接) 来向你推荐相关联的商品。此外,它还把你的购买记录和打分信息结合起来,建立一个你长期购买偏好的档案。
像亚马逊这样的公司会收集大量此类有关客户的数据。在你登录期间,你在它网站上的几乎每一个动作都会被记下来,留作将来使用。多亏有了浏览器 cookie,连匿名购物者的上网记录商家也能维持,最终这些数据将在匿名购物者创建账户或者登陆时,链接到顾客的个人资料。这种爆炸式的数据采集并非为在线商家所独有,沃尔玛便以其对现金收据数据的深入挖掘而著称于业界。但是,网上商店处在一个更有利的位置去查看和记录,不止是消费者买了些什么,还包括你曾考虑过、浏览过和决定不买哪些商品。在全世界大部分地区,所有这类活动都是任人监视和记录的;只有在欧洲,数据隐私法在一定程度上限制了这种操作。
当然,不论法律如何,顾客发现自己的数据被人滥用后,都会产生强烈的抵触情绪。早在 2000 年 9 月,亚马逊吃过一次苦头:有一部分顾客发现他们收到的报价更高,因为网站将他们识别为老顾客,而不是匿名进入或是从某个比价网站转接进来的顾客。亚马逊声称这只是一项随机的价格测试,其呈现出来的结果与老顾客身份之间的关联纯属巧合。话是这样说,它还是叫停了这项操作。
在商业规则下运行
加在推荐算法之上的种种商业规则,旨在防止算法给出愚蠢的推荐,并帮助在线零售商在不失去你信任的前提下实现营业额的最大化。最起码,推荐系统应该避免人们说的超市悖论(Supermarket Paradox)。例如,差不多每个去超市的人都喜欢吃香蕉,也经常会买一些。那么,推荐系统该不该向每一位顾客都推荐香蕉呢?答案是否定的——这样做既帮不上顾客,也提高不了香蕉的销量。所以,智能的超市推荐系统始终会包括有一条规则,明确地将香蕉排除在推荐结果之外。
这个例子可能听起来没什么,但在我们早期经手的一个项目中,我们的推荐系统就曾经向几乎每一个到访我们网站的人推荐披头士的《白色专辑》(White Album)。从统计学的意义上讲,这是个很棒的推荐:顾客此前都没有从这个电子商务网点购买过这张专辑,而大多数顾客对《白色专辑》的评价都很高。尽管如此,这个推荐仍然是无效的——任何一个对《白色专辑》感兴趣的人都已经有了一张了。
当然,大部分的推荐规则都是更加微妙的。比如说,当约翰在 9 月份在 Netflix 索动作影片时,结果中不会出现《复仇者联盟》(The Avengers),因为这部大片在当时还没有租借版,这样的推荐结果不会让 Netflix 有钱赚。因此,约翰被导向了《钢铁侠 2》(Iron Man 2),这部片已经可以用流媒体播放了。
其他的规则还包括禁止推荐为招徕顾客而亏本销售的商品(loss leader);反过来,鼓励推荐滞销品。在经营Net Perceptions期间,我们就曾与一位客户合作,他利用推荐系统来识别库存积压商品的潜在客户,取得了相当大的成功。
赢取你的信任
然而,这种事情很快就会变得棘手起来。一个只会推销高利润商品的推荐算法是不会赢得顾客的信任的。这就像是去餐馆,那儿的服务生极力向你推荐某道鱼一样。这个鱼真的是他觉得最好吃的吗?还是大厨催着底下的人赶在鱼变质前把它给卖出去?
为了建立信任感,更复杂的推荐算法会尽力保持一定的透明度,让顾客对系统为什么会向自己推荐这件商品有一个大致的概念,并且在不喜欢收到的推荐结果时,可以更改他们的个人资料。比如说,你可以删除你在亚马逊上买来送礼的购物记录;毕竟,那些东西反映的不是你个人的喜好。你还可以知道系统为什么会向你推荐某些产品。当亚马逊为约翰挑选了 Jonathan Franzen 的小说《自由》之后,约翰点击标签上的链接“为什么推荐给我?”。随即显示出一份简要的说明,原来是他放在心愿单里的几本书触发了这一推荐。不过,由于他还没有读过心愿单上的那几本书,约翰就不去管《自由》这个推荐结果了。像这样的解释说明会让用户明白推荐结果是否有用。
但是,完善个人资料和解释推荐结果往往不足以保证系统不出错。最近,亚马逊用高清大屏幕电视机(HDTV)的促销电子邮件对乔进行了轰炸——每周 3 封,连续扔了一个月。除了给乔寄了过多的电子邮件,这家零售商还没有意识到,乔已经用他妻子的账户买了一台电视机。此外,这些电子邮件并没有提供一种很明显的方法,让乔可以说“谢谢,但我不感兴趣”。最终,乔取消了他在亚马逊的一些邮件订阅;他并不在意收不到各种信息,而且他有了更多的时间来真的看他的电视。
推荐算法的作用究竟有多大?
alumni.berkeley.edu
那好,推荐算法究竟起了多大作用呢?它们当然一直都在增加在线销售额;据阿伦森集团(Aaronson Group)的分析师杰克?阿伦森(Jack Aaronson)估计,由于推荐算法带动销售额的增长,对推荐算法的投资能获得 10%-30% 的收益。而且,它们还只是刚刚起步。现在,对我们这些研究推荐系统的人来说,最大的挑战在于弄清楚如何去判断新的方法和算法才最好。这可不像基准化分析微处理器那么简单,因为不同的推荐系统有着非常不同的目标。
评价一个算法最简单的方法,是看它的预测和用户的实际评价之间差异有多大。举例来说,假如约翰给青春浪漫小说《暮光之城》(Twilight )一颗星,亚马逊或许会注意到算法根据其他相似用户的评价曾预计约翰会给两颗星,也即出现了一颗星的偏差。但是,卖家更加关心算法在用户评价高的商品上出的错,因为好评多的物品是顾客更有可能购买的;约翰反正也不会买《暮光之城》。所以,把这个评价计入考虑对理解推荐算法起了多大作用没什么帮助。
另一个常见方法是看算法给出的推荐结果和顾客实际购买的商品,之间匹配度有多高。不过,这种方法也可能起到误导作用,因为这样分析会将用户自己设法找到的商品错误地算在推荐算法的头上,而用户自己找得到东西恰恰是最不应该被推荐的!鉴于这些方法的缺点,研究人员一直在研究新的评判指标,不只看精度,也会关注像发现意外惊喜和多样性等其他属性。
发现意外惊喜(Serendipity)会加权不寻常的推荐结果,尤其是那些对某一个用户极具价值,但对其他同类用户而言没什么用的推荐结果。调整为发现意外惊喜的算法会注意到《白色相簿》似乎是一个对几乎每个人来说都不错的推荐,因此会改为寻找一个不太常见的选择——也许是 Joan Armatrading 的《爱和情感》。这个不那么热门的推荐结果不太可能击中目标,但一旦它遇上了,则将给用户带来一个大得多的惊喜。
看推荐结果的多样性同样也很能说明问题。比方说,一个超爱看 Dick Francis 神秘类小说的用户,在看到推荐表单里全都是 Dick Francis 的作品时,仍有可能会感到失望。一个真正多样化的推荐表单会包括不同作者和不同类型的书,还有电影、游戏和其他的产品。
推荐系统研究则需要突破各种各样的阻碍,远不止是在现有的系统上进行微调。研究者们眼下正在考虑的是,推荐算法应该在怎样一个程度上帮助用户发掘一个网站的内容集合中他们未曾了解的部分。比方说,把买书的人送去亚马逊的服装部门,而不是给一些安全的、顾客更有可能接受的推荐结果。在零售世界之外,推荐算法可以帮助人们接触到新的想法;就算我们不同意其中的一些,但整体作用大概会是积极的,因为这将有助于减少社会的巴尔干化(Balkanization,即碎片化)。推荐算法能不能做到这一点,还要不让人感到厌烦或者不信任,仍需拭目以待。
但有一点是明确的:推荐系统只会变得越来越好,收集越来越多关于你的数据,并在别的、意想不到的地方展示出来。如果你喜欢这篇文章,亚马逊会很乐意向你推荐其他所有你可能会喜欢的关于推荐系统的书。
Joseph A. Konstan 和 John Riedl 都是美国明尼苏达大学的计算机科学教授。身为 IEEE 高级会员的 Konstan 和 IEEE 会士的 Riedl 参与创建了 MovieLens 推荐系统。 “猜你喜欢”是怎么猜中你心思的? 是本文的前半部分。