03 计算机的煎蛋食谱:算法是如何编写的(1 / 1)

对我而言,伟大的算法就是计算的诗篇。和诗歌一样,它们可以是简练的,可以是隐喻的,可以是晦涩的,有时甚至可以是神秘的。但一旦得到释放,它们会在计算的某个方面投下灿烂的新光。

弗朗西斯·沙利文(Francis Sullivan),计算机科学家,

《算法的乐趣》

2003年11月,美国的霍顿·米夫林出版公司冒险从英国引进了一位新晋作家乔恩·麦格雷戈。作为上一年享有盛名的曼布克奖的最年轻入围者,他受到了全英国评论家的关注。现在霍顿·米夫林出版公司希望借此殊荣在美国成功地出版发行他的小说。

麦格雷戈的小说《如果无人说正事》取得商业成功的可能性并不是太高。这本小说讲述了某个英国城市中某条街道上的居民的故事,根据本书的发行人的说法,赞美了“日常生活中的鸡毛蒜皮之事”。关于老百姓日常生活,内容平淡的小说一般都不好卖。麦格雷戈的故事里饱含着英式下午茶和邻里间的板球运动,几乎都不是美国读者熟悉的领域。[1]

新书在美国发行一个月之后,2003年12月在亚马逊上的销售排行是第8535位,只有两条读者评论。随着时间飞逝,虽然这本书又获得了新的文学荣誉,市场对这本书的需求还是不旺盛。到第二年3月的时候,它在亚马逊上的排名已经跌到了25 397位。

就在这时,这本书的销量突然开始爬升。《如果无人说正事》从来没有成为一本畅销书,可是它的排名确实在2004年5月达到了2102位。

发售六个月之后,对麦格雷戈的小说产生的突如其来的兴趣,能用什么原因去解释?那个春天发生的世界大事中,并没有哪一件会让美国人注意上一本讲述英国日常生活的书籍。新闻都在关注华盛顿发布的911调查报告、阿布格莱布监狱虐囚丑闻、伊拉克的战后重建工作。奥普拉·温弗瑞为她下一期的读书俱乐部挑选了1940年的经典作品《心是孤独的猎手》。普利策小说奖(Pulitzer Prize for fiction)已于4月上旬颁发,获奖作品爱德华·P.琼斯的《已知的世界》是一本关于黑奴奴隶主的历史小说。没有哪一件事看上去能解释《如果无人说正事》的突然爆发。可能你也猜到了,个中原因在于算法的运行方式。

假设你在写煎蛋食谱,用黄油还是椰子油暖锅会让煎蛋有不同的味道。因为两种算法是不同的。但程序员开发算法时,设计的很多选择,会对我们的决策产生很难预测的“下游”后果。这种复杂性当然来自这么一个事实:我们做的不只是煎蛋而已。

想一想在奈飞上推荐电影、在领英上推荐联系人、在亚马逊上推荐书籍的推荐算法。这一章里,我就将谈谈这些算法的内部运作原理,它们是如何做出经常是古怪的、有时又富有才气的推荐的,以及简简单单的设计选择为何会产生预期外(同时又是复杂)的结果。

那是春假时期(Spring Break),学校里难得地没有会议的一周,给了我一些时间完成写作。我打开Spotify,播放我的“全时最爱”歌单。接下来的几个小时里,在我为此书码字时,歌单会在后台默默播放。但我才打了几行字,就觉得音乐有点烦人了。尽管我登录Spotify才几个星期,我已经开始察觉到,这些音乐怎么都如此类似。大多数歌都来自20世纪90年代,我已经听了二十多年。我猜即使是“全时最爱”也是有保鲜期的吧。我猜想我的YouTube和Pandora歌单可能会好一些。才听了几分钟,我就发现每一个歌单都被我高中和大学时期的歌曲占领了。就音乐而言,我被困在了90年代里。

因为我是专业人士,能意识到算法对待老顽固的解决方案,于是我决定暂停写作,以研究的名义(当然不是以拖延症的名义)测试三个数字音乐平台的推荐引擎:Pandora、Last.fm和Spotify。我不是随机挑选这三个平台的,而是因为每一个平台代表了不同的推荐算法。举例来说,如果你让我推荐音乐,我知道你喜欢酷玩乐队(Coldplay)的Yellow,我也许会想一想有没有和这首歌听上去类似的歌曲。Pandora的算法就是基于这种方法,被称为“基于内容的推荐”。这种系统从一个商品的详细特征信息出发,寻找具有类似特质的其他商品。如果我知道你喜欢Yellow,但我对酷玩乐队的音乐确实不太熟悉,我也许会试着找一个我认识的喜欢酷玩乐队的人,问问他还喜欢听什么音乐。Last.fm使用的就是这第二种方法,被称为“协同过滤(collaborative filtering)”。Spotify则尝试将这两种方法合二为一。

我了解每个平台背后的原理,但我的实验该如何开展呢?我首先测试了Pandora,让它根据我感兴趣的梦龙乐队(Imagine Dragons)的Thunder为我推荐一首歌,这首Thunder在最近为我推荐的歌单里很少出现。Pandora端上桌的是二十一名飞行员乐队(Twenty One Pilots)的Ride,并且告诉我推荐这首歌是因为“这是首Dub[2]作品,具有雷鬼[3]元素,使用了原声钢琴,使用了弦乐合奏和大调”。这个解释听上去很合理,我的耳朵也表示赞成。实际上这也不算是全新的推荐,我之前听到过这首歌,但这是我第一次记住了歌曲和乐队的名字。第二首推荐歌是AJR乐队的Weak。Pandora对这首歌的描述是“类似的电子乐感,节奏轻柔,原声钢琴,大量的即兴伴奏和大调”。你可以看出来,Pandora对音乐有很深的理解,也有足够的词汇库来描述对音乐的理解。这个在线音乐播放服务发源于“音乐基因组项目(Music Genome Project)”,参与这个项目的音乐学家们分别试听不同的歌曲,然后将超过450个不同的属性标记到每一首歌上。这些属性范围很广,从明显的乐器范围到深奥的“切分节奏”应有尽有。一旦你在Pandora上表明了自己喜欢某一首歌,算法就会为你寻找具有类似音乐属性的其他歌曲。

Pandora的前11个推荐在声学特征上和Thunder都很类似,尤其是那首哈立德(Khalid)的Young Dumb & Broke。我对这些推荐都很认可。第12个推荐,AWOLNATION[4]的Sail还过得去。我该赞还是踩(Pandora的评价系统),还是干脆不评价呢?我认为更积极的决策能够更好地引导算法,于是决定点了个踩。Pandora决定采取戏剧性的转折,开始播放带有明显电子乐风格的歌曲。一开始的两首歌还行,但我实在是不喜欢乔恩·博利恩(Jon Bellion)的All Time Low。这一次我毫不犹豫地给了个踩,算法又一次适应了我的评价。我总共听到了20首歌曲,其中14首是我从没听过的。另外6首类似的推荐歌曲,不是我会主动去搜来听的类型,但总的来说大部分推荐我还是挺喜欢的。Pandora的算法还告诉了我,自己显然喜欢“大量即兴伴奏”的歌曲。我不确定这个词的意思,但下一次去现场音乐会时,我会高喊要求更多“即兴伴奏”。这也无伤大雅,是吧?

为了尝试一个完全不同的音乐类型,我要求Pandora根据我对Pashmina的兴趣创建一个自定义的电台,这是首阿米特·特里维迪(Amit Trivedi)作曲的宝莱坞电影配曲。我听了算法选择的20首歌曲,算法告知我这些歌都符合“充满情感的歌声和简单的和声进行”[5]的特征。我发现这些歌曲除了都是印度电影音乐之外,实际上区别很大,这不禁让我怀疑在Pandora上印度歌曲这个标签比其他标签更有压倒性的优势。

Pandora的方法对我很有效,但这只是因为有人已经花了时间为Pandora提供的音乐做了详细的属性分类。手工搜集这些数据极其耗时,而且昂贵。

我又尝试了下Last.fm的推荐。在基于Thunder的20首推荐歌曲中,我只熟悉其中5首。从声学特征角度来说,其中有些歌(例如酷玩乐队的Magic)和Thunder风格迥异,因为Last.fm采用的“协同过滤”方法是基于类似“购买了此商品的用户还购买了”和“和你类似的用户也喜欢”的推荐算法,这种算法在亚马逊和其他网站上很常见。尽管这种方法对于尝试更大范围的音乐有利,但也是有代价的。在Pandora的推荐中我不喜欢的只有1首,但在Last.fm则有6首。而且,和Pandora不同,Last.fm不会解释它做出这些推荐的原因,以及这些歌和Thunder的相似之处。实际上它也做不到这一点,因为它缺乏Pandora那种对音乐知识的深入了解。当我尝试找寻Pashmina的类似歌曲时,Last.fm完全无法给出任何推荐。我猜测是因为Last.fm的用户大多没有听过这首歌,系统缺乏数据给出“听过Pashmina的用户也听过”的推荐。

简洁性弥补了“协同过滤”方法缺乏专业的知识。因为这种方法不需要关于商品属性的详细信息,所以更容易在短期内实施推广,因此成为互联网上最为广泛应用的一类商品自动推荐算法。这种算法的实际应用效果很好。如果你喜欢的东西别人也喜欢,那你们可能具有一些相同的潜在品位和个性。而且,知道某些和你类似的人喜欢某些商品,仅仅这一点可能就会让你觉得自己也会喜欢那些商品。这种感觉本身可能就足以说服自己,系统的推荐是相关而且合理的。

这两种设计方法不仅可以用来推荐音乐,也能用于推荐视频(奈飞和YouTube)、新闻(谷歌新闻),甚至零售网站(亚马逊)上的任何商品。和音乐以及商品推荐算法不同,Facebook、领英和Tinder推荐的则是人。你在Facebook上该和哪位朋友联系?在Tinder上你该和谁约会?这种推荐毫无疑问更有难度,因为人与人的匹配必须是相互的。阿马纳特·汤博瑞(Amarnath Thombre), Match.com的CEO,亦是Tinder的一名董事,一针见血指出“就算你喜欢《教父》,教父也不必喜欢你”。在Match.com上,仅对一方有益的匹配的价值很有限。

我犹豫着是否要在Tinder上拓展我的音乐实验,建个账户,打上“仅用于科研”的备注。有点小意外的是,我的妻子居然同意了,但我担心学生发现我的账户却没有注意到我的免责声明,传出些流言蜚语就不好了。于是我打了退堂鼓,把这个念头扫到一旁。相反,我发邮件向一些研究社交网络中“推荐人”算法的计算机科学家询问,他们告知我,一个通用的做法是基于人口属性(年龄、职业、地点)或是在社交媒体上所讨论的主题的共同爱好进行匹配。这听上去有点像Pandora的基于内容的推荐算法:为了将两人匹配,算法试图准确地识别他们的爱好、性格和人口特征(包括地域、年龄、职业等)。当然,这种做法也有局限性,因为即使爱好相异的两人也有可能发生化学反应。但这种匹配更难建立,所以推荐算法采用了更简单的路线,大多数人似乎对此并不在意。其他算法采用的方案,依赖的是用户的社交网络本身:举例而言,如果你和我并未在领英上加好友,但我们有超过一百个共同的好友,我们都会收到提醒说,也许我们应该互加好友。这种方法不会试图将用户按照爱好或性格进行匹配,而更像一个协同式的“和你认识的用户也认识谁”的方法。

这两种系统,就算称不上完美,也是我们在日常生活中做媒时可能会自然而然采用的方法。实际上,两者都基于“同质性(homophily)”原则,这是有大量文献记载的原则,描述了我们更倾向和我们最为相似的人联系。

简而言之,如果你觉得推荐算法能够有效地帮助你找到相关的音乐、商品或人,那是因为这些算法都是基于真实世界中我们进行社交的一些基本原则。既然我们要揭秘算法引导我们听哈立德而不是酷玩乐队,或者阅读《如果无人说正事》的原因,那接下来我们不妨去真实世界看看。

每个周六早晨,我都会早起,前往费城市中心的塞格公园(Seger Park)参加网球训练。这是我,也是我很多邻居的周末例行运动之一。一位异于常人的本地企业主乔·法尔佐恩(Joe Falzone)组织了这些训练。他的网球商店离公园只有大约10分钟的步行路程,看上去和同类商店并无二致。乔也许比普通人更会侃侃而谈一些(一点建议:千万别让他开口说订了51张票,美国网球公开赛组织者却只给他送来50张票那事儿),但我不是因为这个才觉得他不普通。也不是他的反手击球技术高于平均水平,而是因为他经营这家店已经超过40年了。这40年里费城城区见证了多少盛衰起伏,乔的网球店经历了那么多次起起落落,还至少遗失了一张美网公开赛的门票。

乔和周边很多店家的生意,在最近几年都有不小的起色。这块区域新开了几家咖啡馆,还有新的饭店和购物中心,因此带来了更多的人流。乔将这些变化归因于附近新建造的公寓。“这块地方曾经被称为费城的同性恋社区,被忽视了很久。但谁说同性恋们就不需要咖啡馆和饭店了?”他问道。当这栋新公寓楼建成,容纳了很多零售店的配套商铺开张之后,人们开始陆续搬来这个区域。

位置、位置、位置,这是房地产行业经常谈论的话题。选址在正确的社区是生意成功的先决条件,乔和邻近的商户都走对了这一步。但这一条位置原则远远超越了街道场所的范畴。杂货店里,相似的商品并排摆在同一个货架上;书店里,每一类的书籍都摆放在同一个区域。这种“邻居”关系很有价值,因为允许我们快速找到想要找的商品。所以,如果你想出售自己的画作,找人购买自己的珠宝,或是向年收入10万以上的人群做广告,你得花点时间考虑下到底怎样的邻居关系才最适合自己的需求。

在实体世界里,这算不上是个新创意。但如果我想在网上做同样的事情,又该如何着手呢?对于基于网络的生意而言,是否有同等意义的邻居关系呢?

有位朋友曾经哀叹道:“你要是有家实体店,你多多少少还会有几个顾客,也许他们只是在附近步行或者驾车经过时看到了你的店。但在互联网上,你开家店,也许压根就不会有人发现它。”那么网络上究竟有没有所谓的“数字邻居”或者线上曼哈顿第五大道呢?

一种创建“数字邻居”的方法就是按照类别组织网页。在万维网(World Wide Web)的早期,雅虎和Geocities将通过所提供的商品和服务把企业分类的目录服务引入了网络,将网站分门别类建立架构。这允许早期的互联网用户浏览目录,找到自己满意的网站来购买收藏版玩具之类的东西。但随着在线信息量的增大,这种架构开始遇到限制。在线售卖玩具的网站规模从格林尼治村扩大到了纽约市,访客们发现网站推荐的邻居已经远到无法通航了。今日即使是最小众的话题都有数百万的网页——“复古模型玩具火车”在谷歌上能返回超过7600万个结果。

算法的出现,无论是以搜索引擎、推荐系统还是社交平台新闻流的形式,都将帮助我们管理数量爆炸的信息。然而,我在同很多初创企业开展数字化市场营销活动的经验中意识到,尽管组织网络上杂乱无章的信息的方法发生了变化,但“数字邻居”这个概念的重要性从未改变过,只是以不同的方式显现。

谷歌的创始人,拉里·佩奇(Larry Page)和谢尔盖·布林(Sergey Brin),能够成功地组织这个世界的信息,因为他们拥有将网络视作大的社区的洞察力,这些网站不仅仅通过主题和关键词进行连接,而是用网络自身的语言“超链接”进行连接。1999年时,最为流行的在线搜索引擎,主要依赖网页内的文字内容来决定网页间的关联性。佩奇和布林意识到,理解网络的关键并不在于网页的内部,而是网页之间的联系。谷歌著名的PageRank算法排名网页的依据,不仅仅是搜索关键字在这些网页中出现的次数,还包括了这个网页从其他页面被链接(inlinks)的次数。这一算法的基本思想是使用超链接作为指示网页质量的信号:如果很多网站都链向你的网站,那你的站点一定值得一看[6]。这和很多生活领域中的经验一致,并不是你所知道的东西,而是你所认识的人使得你的网站排名更为靠前。

类似的,Facebook的广告定向算法的价值来源于其对社交连接的邻居关系的理解能力:既然相似的人更容易成为朋友,那公司从中就可以推断出用户的海量信息。这就是Facebook的广告客户愿意投巨资,瞄准其品牌忠诚顾客的朋友们的原因。

亚马逊的购物引擎的核心是它的推荐系统,这个系统详细体现了商品间的邻居关系。“查看了此商品的用户也查看了这些商品”这种推荐实际上就是商品间的链接,最终形成了商品间的互联网络。

正是这些互联的网站、人和商品造就了数字世界中的邻居。真实世界中实体零售店开在正确的地段具有巨大的价值,网络业务如果处在数字邻居的关键位置,也能得益匪浅。

本章开头部分介绍过的小说家乔恩·麦格雷戈就是个恰当的例子。尽管缺乏明显的联系,但2004年春季一个值得一提的事件应对麦格雷戈的《如果无人说正事》在美国引起的一时关注负责,那就是奥普拉为读书俱乐部的选书,以及现代算法创建的数字邻居。

1996年至2010年的15年间,奥普拉为她的读书俱乐部总共选了70本书,大多之后都成了畅销书。当她在2004年4月选择了卡森·麦卡勒斯(Carson McCullers)作于20世纪40年代经典小说《心是孤独的猎手》后,结果也是一样。这本书在当年就是经典,但直到21世纪初被一些英国教授选为教材后销量才暴增。奥普拉选择了这本书后,麦格雷戈似乎也受到了惠及,这是为什么?

《心是孤独的猎手》和《如果无人说正事》这两本书在主题和风格上有一些相同之处:两个故事都发生在作者曾经生活过的无名小镇,都讲述了乍一看毫不起眼的人物故事。两本书出版时作者都是二十多岁。但2004年4月中,麦格雷戈的作品销量发生变化的原因,与其说是书的质量或是作者的个人传记,不如说是这本书的定位。亚马逊网站上《心是孤独的猎手》页面中,“购买此书的顾客也同时购买”的列表中,《如果无人说正事》也名列其中。

几个月后,当麦格雷戈的这本书不再出现在其他畅销书的页面推荐中时,它的销量又跌了下去。但这一时的成功仅仅是一个巧合吗?很难咬定这本书在亚马逊的算法创建的数字邻居中的偶然摆位成就了它的突然流行,但是有一个办法可以验证这个想法。特拉维夫大学和纽约大学的研究团队追踪了奥普拉读书俱乐部所挑选的书籍销量,以及在亚马逊的推荐网络中和它们相邻的书籍销量。他们发现不但奥普拉挑选的书籍销量受益匪浅,亚马逊在这些书的页面上所推荐的书籍销量也得到了显著提高。

在最近的研究中,我的合作者——来自佛罗里达大学的阿努·库玛(Anuj Kumar)和我深入分析了这些数字邻居的经济意义。我们发现在商品网络中越居于中心位置的商品,或者说被很多商品页面推荐的商品,其销量越会因为推荐算法得到显著提升。

但位于数字邻居边缘的商品,或者说没有被很多商品页面所推荐的商品,销量则会变差。因此,在数字化世界中拥有正确的位置和邻居可以看作在第五大道上拥有一家门店。正如乔·法尔佐恩的生意因为房产开发商的决定而腾飞,商品的在线销量则会因为软件开发者的算法设计决策而腾飞。

亚马逊决定构造一个基于协同过滤方法的推荐算法,看上去将麦格雷戈的书推介给了我们更多人。这难道不正是互联网的前途:一个民主化的工具,允许鲜为人知的书籍(或歌曲或思想)最终得到应有的评价,而爆款则不再支配我们的心灵和购物车吗?

这正是克里斯·安德森(Chris Anderson)的书籍《长尾理论》里普及的想法。他提出自动推荐的主要效果就是帮助人们走出热门的世界,走入细分的世界——那些不为人所知、从未引起主流市场的注意,却更贴近我们个人偏好的商品。

和很多人一样,我觉得这个想法很有道理,直到2006年春天,我教的一个博士研究生班级逼迫我重新考虑这个问题。

当时我们正在讨论奈飞、亚马逊和其他网络公司的个性化算法的设计。我的一名学生丹尼尔·弗莱德(Daniel Fleder)提问,是否通常算法的设计会在实践中起到了反作用——即降低了我们消费的物品的多样性。他提出协同过滤算法也许会偏向于热门而不是鲜为人知的物品,因为这些算法都是基于他人消费的物品推荐的。

弗莱德的问题激起了我的兴趣,那个夏季我们进行了一系列研究,研究算法推荐是如何影响人们发现商品的,以及它们对细分商品究竟是起到了帮助还是伤害作用。在我和弗莱德做的第一个研究中,我们认为,因为通常的推荐算法都是基于历史销量和评价(“购买了X的顾客同时购买了Y”)进行商品的推广,它们无法推荐只有有限历史数据的商品,即使这些商品也有可能得到好评。这种情况会让推荐结果偏向于已经流行的商品。我们对一些广泛使用的推荐算法进行了模拟实验以检验这个理论,实验表明这些算法对于流行的商品确实会产生一种马太效应[7]。

为了进一步验证这个理论,在和卡内基·梅隆大学的李道京(Dokyun Lee)开展的第二个研究中,我们和加拿大的一家领先的在线零售商合作进行了一次实验。对照组的约500 000位用户在不接触任何算法推荐的前提下做出了购买决策。另一组的100 000位用户则在访问任意一个商品页面时都会看到“购买了X的顾客同时购买了Y”的推荐。

不出所料,我们发现商品推荐提高了多个商品种类的购买量,从服装到家用电器,从玩具到电子游戏皆是如此。但购买的多样性数据则是有意思的地方。下面的图表就是经济学家所称的“洛伦兹曲线(Lorenz curve)”[8],用图形化的方式展示了这家零售商所售商品的市场份额的分布。X轴代表的是商品,从左往右分别是售卖最少的商品到售卖最多的商品。Y轴代表的是这些商品所产生的销售总额比例。黑色的曲线是对照组的洛伦兹曲线:购买最低的40%商品产生了大约5%的销售额,够买最低的80%的商品产生了大约37%的销售额。虚线则是接触了推荐的用户组的洛伦兹曲线。细分商品的市场份额在有推荐的情况下甚至更低。比如说,够买最低的80%商品只产生了大约27%的销售额。

某零售商的商品市场份额分布

除了市场份额,我们还查看了商品的销量绝对值。令人惊奇的是,我们发现细分商品的总销量居然上升了。市场份额下降的同时居然还卖得多了,这怎么可能?

这个谜题的答案就在于所有商品的销量,无论是细分还是爆款,在推荐之下都增长了。个性化的推荐功能帮助顾客发现很多相关的商品,购买了比没有推荐时多得多的商品。尽管细分和爆款商品的销量都上升了,但热门商品的收益远比细分商品要高得多。于是,细分商品的卖家会发现自己的销量增加了,顾客会发现自己比以前消费了更多细分商品,但细分商品在算法推荐下还是失去了总体的市场份额(也许还有潜在消费者头脑中的份额)。

这种情况和过去几十年里美国人的收入水平变化有点类似。根据美国国会预算办公室(Congressional Budget Office)的数据,从1979年到2013年,底部20%的赚钱者的平均收入,在除去税收和政府转移支付后增长了46%,但这些数字和头部1%人群的税后收入增长192%比起来黯然失色。尽管穷人的收入绝对值有了有限的增长,最终结果却是收入更不平等了。

我们同时还发现,虽然推荐算法会将消费者推向新的商品,但经常将类似的消费者推向同样的商品。于是,就算消费者个人发现了新的商品,但总体的多样性并没有提高,只有热门商品的市场份额提高了。

思考下《长尾理论》中记载的一个著名案例。乔恩·克拉考尔(Jon Krakauer)的关于珠穆朗玛峰上灾难性一天的书籍《进入空气稀薄地带》畅销之时,登山家乔·辛普森(Joe Simpson)的关于一次失败的安第斯山攀登经历的书籍《感受空旷》几乎已经绝版了。亚马逊的推荐算法开始向克拉考尔的购买者建议《感受空旷》,这本书的销量顿时暴增。这个案例经常被吹捧为展示了不出名的书籍如何因为推荐算法被发现。但我经常在想,这个案例是否说明了,通常使用的推荐算法导致了销售集中化。《进入空气稀薄地带》的所有读者,如果仅凭自己挑选,也许最后会购买一系列其他书籍。一些顾客可能会发现莱因霍尔德·梅斯纳(Reinhold Messner)的《**山峰》,描述了他攀登喜马拉雅山脉南迦帕尔巴特峰的著名经历。另一些人可能会发现黛安·桑菲利波(Diane Sanfilippo)的关于原始饮食的《原始饮食实践》。其他人可能会购买萨利姆·阿里(Salim Ali)的《印度鸟类》。可是如果所有人都被推荐了《感受空旷》,并且其中很多人购买了此书的话,总体的多样性就会下降。虽然这些顾客中的每一个人都被推荐了一本原本可能会被忽视的无名但相关的书籍,但总体而言,多样性下降了。

可这又有什么关系呢?如果算法能够像Pandora那样多多关注商品的属性,顾客和商品间可能会达成更好的匹配,而协同过滤算法的偏见恰恰阻碍了这一点。毕竟,推荐算法的初衷不就是帮助我们找到因为主流媒体和爆款文化而被掩盖的理想的音乐、电影和商品吗?我的团队以及麻省理工学院的一个团队的后续研究发现,基于内容的推荐算法在“使宝石露出水面”这方面相当成功,无论它们热门程度是高是低。

那么我们能够鱼与熊掌兼得吗?具有协同过滤算法的简洁性和社会吸引力,同时兼具基于内容的推荐算法的理解力和公平性?

正是为了解决这个问题,第三种推荐算法诞生了。音乐服务Spotify正是结合协同过滤的原算法,上线了新的个性化音乐推荐功能。Spotify的工程师们意识到了协同过滤算法的偏见,于是创建了一种结合了协同过滤和基于内容推荐的混合设计。

但让音乐学家们聆听每一首歌并搜集其音乐属性需要花费巨大的时间和精力,Pandora遇到的不正是这个挑战吗?然而,如果有那么一种办法,可以将Pandora的音乐学家们做的事情自动化呢?事实上,Spotify会利用网络爬虫抓取有关音乐的博客文章和其他在线讨论的内容,从中提取听众用来讨论不同歌曲和歌手的描述性语言。然后Spotify使用这些术语作为这些歌的属性。仅仅做到这点还不够,因为新歌和小众歌曲在网上鲜少被提及,没有充分的数据。因此Spotify另外使用机器学习算法分析歌曲的音频信号,从中提取特征信息,例如速度、音量、调子和调性。整个流程结束后,Spotify的算法就具有了对音乐收听模式的基于协同过滤的理解,以及Pandora式的对于音乐本身更为深刻的理解。

最终成果就是Spotify的“每周新发现(Discover Weekly)”——由算法生成的个性化的每周歌单。Spotify称,多达8000名歌手超过一半的听众来自收听“每周新发现”歌单的用户群。这种方法看上去能够摆脱协同过滤对热门的偏爱,音乐迷看上去也喜欢这个算法。一位网络用户甚至发推说:“我的另一半最好能像我的‘每周新发现’歌单一样懂我。”

计算机科学家、学者和商务人士对算法的评价都偏狭隘,仅仅关注程序员努力改进的单一性能指标,比如商品推荐的精确性。但人们通常不会对算法进行全方位的评价,考虑它们改变用户决策的所有方式,无论是个体层面上还是总体层面上的,更不用说对这些指标加以测量了,因此它们不会被关注。在2006年和弗莱德一起搞研究之前,我并不认同这句话。但从那时以后,我一直尽力于把意外后果也一并纳入考虑。我注意到其他科学家也开始关注这一点。近来,关于推荐系统本身的研究已超越了推荐的准确性(即所推荐的物品和用户的相关性),扩展到考虑推荐的多样性。尽管推荐系统的设计一直在更改,关注全局的仍然只是少数派。大多数其他算法仍然只狭隘地使用一两个技术指标进行评价,而不考虑其他,例如公平性、责任性、安全性和隐私性等会让社会科学家们彻夜难眠的指标。

即使算法的每一步都由程序员精心设计,仍然会发生意外后果。比如,隐藏的佳品在互联网会被永远埋没。那么,如果我们从商品推荐算法转移至更为复杂的能够诊断疾病或驾驶汽车的算法,又会发生什么呢?进入人工智能和机器学习的世界吧,在这个世界里,算法不仅用来给出推荐和建议,而且完全自主决策,在这个世界里,算法出岔子的方式要危险得多。