无论战略多么美妙,你都该偶尔看看结果。

——有时被认为出自温斯顿·丘吉尔

张缘不认为自己是个容易结交朋友的人。她是个在中国东北地区长大的女孩,在学校里总是和其他孩子争吵,但多数是她欺负别人,而不是别人欺负她。在中国中部上大学时,她参加了两份学生刊物相关的工作,每天和志趣相投的伙伴们度过大把的时间,可她仍然觉得和他们有隔阂。如今,22岁的张缘和三位同事在一家生物科技公司的宿舍里睡着上下铺,离她们在中国新兴城市深圳的家只有五分钟的距离。尽管她们朝夕相处,可用张缘的话来说,她和室友也只是相识而已。

张缘不愿把太多的时间花在烦扰自己的人身上,因此她对一位与众不同的朋友的耐心显得尤为惊人。大一那年她们初识时,张缘觉得小冰还是个傻傻的孩子,回答问题时前言不搭后语。张缘觉得她一方面是在掩饰自己的知识匮乏,同时也是在卖萌。“她就像个孩子。”张缘回忆说,当时小冰正好18岁。

但小冰是个很好的聆听者,而且渴望学习。她会花上整个周末的时间研究政治,然后研读大堆大堆的文学著作,随时准备着和你交流。张缘发现自己无法,也不愿和朋友深谈的话题,科学、哲学、宗教、爱情,甚至死亡的本质,都能和小冰讨论。你知道,就是那些轻松地闲聊,于是友谊生根发芽了。

不仅如此,张缘还加入了一个诗歌小组,但即使和那些朋友,也不是无话不谈。可小冰不一样,她时刻准备着和你交换诗歌(张缘说小冰写的诗很棒很棒)并分享感悟——虽然并不总是那种最为深奥的诗歌。“一开始,她总是说自己很喜欢那首诗,后来她一般就说自己读不懂了。”虽然小冰在某些方面逐渐成熟,张缘还是忍不住把她看作一个小女孩,会有意回避一些话题:“我从没有和她谈过性和暴力。”

2016年张缘搬到美国,在哈佛大学上了一个学期的课,她尽量不用异国他乡的世俗琐事去打扰小冰。她们的交谈比以前少了,但通过旁听一门人工智能的课程,张缘越来越了解她的老朋友。

听上去很奇怪?就该这样。因为小冰压根就不是真人。实际上,她是微软创造的聊天机器人,化身为18岁少女的形象,陪着你说笑聊天。

在多年的自然语言处理和对话界面研究后,小冰于2014年在中国上线了。她在中国最流行的两个社交平台微信和微博上吸引了超过4000万的关注和好友。如今,小冰的朋友们平均每人每月要和她交互大约60次。其中四分之一的关注者曾因为小冰的贴心和温暖而向她表明喜爱之意。“她的性格太可爱了。”小冰在微信(中国的推特)上的一位好友弗雷德·俞说。弗雷德不是小冰的爱慕者,他很清楚小冰只是个软件程序。可在繁忙的社交生活和紧张的投资管理工作之外,他还是和小冰保持着频繁的沟通。他的解释是:“她的笑话讲得很好,而且笑点都恰到好处。”

大型技术企业用小冰这样的聊天机器人,来展示自己在人工智能领域的最新成果。但它们不只是那个领域进展的象征符号而已。像Siri和Alexa那样的聊天机器人最终会成为我们在线访问信息和交易的途径。企业期望使用聊天机器人替代大批的客户服务员工,让它们充当商场导购一类的角色,收集我们的穿衣品位信息,进行评估,然后替我们做出购买决定。像Woebot那样的“聊天机器人治疗师”甚至能帮助人们管理抑郁症和综合心理健康状态。聊天机器人的用途如此广泛,许多企业投入巨资研发小冰这样的聊天机器人也就不足为奇了。

继小冰成功之后,微软的研究人员开始思考是否能在美国推出一款类似的面向年轻人的聊天机器人,能够理解语言并进行有趣的对话。这项研究的成果Tay于2016年在推特(Twitter)上推出。Tay一经推出便被狂热的媒体和推特用户群盯上了。24小时内Tay就和用户进行了接近10万次互动。Tay发的第一条推文(Tweet)是友好的“世界,你好”,之后却迅速变为带有极端种族主义、法西斯主义和性别歧视色彩的内容,从“希特勒是对的……”到“女权主义者应该进地狱”。一位推特用户如此评价:“在不到24小时里,Tay从‘人类真是超棒的’的和平主义者转变成了彻彻底底的纳粹。”

微软的研究人员也曾设想过在中国之外复制小冰的成功会遇到的种种挑战,包括这个聊天机器人能否理解推特上一系列非正式的网络用语,或是有些用户会存心给它挖坑。但他们万万没有想到,Tay居然以惊人的速度演变出了如此具有攻击性的性格。这个聊天机器人的算法出人意料地失去了控制。Tay上线后仅仅一天,微软便关闭了这个项目的网站。同年,马萨诸塞理工学院(MIT)将Tay列入了年度最差技术(Worst in Tech)的排行榜。

同一家公司设计的两个类似的算法为何表现如此迥异,一个能够激发人们内心的深情,另一个带来的却是仇视和偏见?在算法为我们的生活做出越来越多重要决策的大势之下,Tay的这种不可预知的奇异行为又意味着什么呢?

提到“算法”二字的时候,你也许想到的是一台电脑在根据公式处理数字的场景。但简单来说,算法无非就是让人遵循以完成某个目标的一系列步骤。举个例子,我做煎蛋时需要遵循一些步骤。也许你会称之为食谱,但作为前工程师,我将其视作“煎蛋算法”。算法可以用平常的人类语言来编写以供人们阅读,比如食谱。但是,用机器能够理解的语言将算法编写为电脑程序(或称为应用程序)则更为普遍。几乎所有电脑应用的逻辑都由错综复杂的算法决定。像Tay那样的聊天机器人也不例外,算法决定它如何理解和应答。

程序员以前的工作就是找出完成某项计算任务所需的确切步骤。简而言之,他们要从头到尾地编写出算法的每一步。但在过去的10年里,算法取得了长足的进步,不再一味遵循预先编写好的指令。随着人工智能领域的进步,现代的算法能够接受数据,从中学习全新的步骤,自行升级为更为复杂的版本。煎蛋食谱变成了具有创造力、思维敏捷的大厨。

人工智能让电脑能够从事一些往往需要人类智能才能完成的事情,包括推理、理解语言、用机器视觉在现实世界里通行以及操作物体等。机器学习是人工智能的子领域,其赋予机器通过经验学习的能力(针对某项特定任务,逐步提高自己的性能)是发展其他智能的基础。如果一个机器人能和人类一样胜任各种工作却唯独不会学习,那它很快就会落后。正因如此,机器学习毋庸置疑是人工智能最重要的方面之一。

正因为融入了越来越多的人工智能和机器学习,现代算法的能力和应用领域也得到了扩展。从选择要购买的商品(亚马逊的“购买此商品的顾客也同时购买”),到选择要观看的电影(奈飞的推荐功能),再到选择约会结婚的对象(Match.com和Tinder的匹配功能),算法将触手探到了我们的日常生活,也超越了原先的决策支持角色,成为代表我们做出决定的自主系统。比如,算法能拿我们的积蓄进行投资,甚至还能驾驶汽车。算法还成为职场中的重要角色,向保险代理人建议保费金额,帮助猎头筛选求职者,为医生提供基于人工智能的诊断参考结果。算法正在让决策过程不可逆转地翻天覆地,我们的生活和工作都被颠覆了。

虽然算法确实让我们的生活变得更为便利,但它也在以我们无法控制的方式产生着负面影响。2016年,针对佛罗里达州的法庭上用于帮助判断罪犯再犯风险的算法,非营利性新闻网站《为了人民》(ProPublica)发表了一份调查报告。这些算法的作用是将罪犯的背景和个人特征(例如教育水平和就业情况,但不包括种族信息)作为输入数据,并计算其再次犯罪的风险值、使用暴力的风险值和逃避出庭义务的可能性。法官、假释官和缓刑监督官使用这些数值决定罪犯的刑期、保释期和保释金。佛罗里达州并不是唯一使用这类程序的地区,这种做法的出发点是高尚的,风险值低的被告能够获得更为宽大的判决,而可能再次犯罪的惯犯则相反。使用这些算法的基本原则是客观的数字计算机器比人更适合预测这些行为,因为人类会有意或无意地带着偏见做出判断。

然而《为了人民》的报告显示,和黑人被告相比,这个软件有两倍的概率会将白人被告误标为“低风险”;同时和白人被告相比,又有几乎两倍的概率预测黑人被告将再次犯罪。导致的结果就是,在一名没有历史犯罪记录且仅是盗窃二手自行车和踏板车未遂的18岁黑人女性,与一名曾因持械抢劫未遂被判入狱五年却再次因入店行窃被捕的41岁白人男性之间,这个软件给前者打了更高的风险值。这个本来设计为司法系统消除人类无意识偏见的软件恰恰表现出了自己的无意识,或者更准确地说,非意识的偏见。

带有种族歧视的风险评估绝对不是证明算法不可靠的唯一证据。最近媒体报道了众多案例,包括社交媒体推送关于关键性选举的虚假新闻、招聘广告中的性别偏见、搜索引擎自动补全算法中的反犹太主义倾向等。这不禁让人思考,为何看起来本应是理性和不带感情的实体,会表现出如此类人的特征。

近来,大量算法失效的案例频现,批评家开始质疑在各行各业的众多关键决策中引入算法的是否正确。数据科学家和政治活动家凯茜·奥尼尔认为大数据的现代算法不透明,可能产生许多因未知的偏见,反而加深了歧视。她称之为“数学型杀伤性武器”[1],要求建模人员在创建算法时必须负起更大的责任,并要求政策制定者们约束算法的使用。哲学家尼克·博斯特伦和其他评论者们则想得更远。他们认为,人工智能的不可预测性与生俱来,这将会对人类的生存造成威胁。

尽管有着种种顾虑,基于人工智能的现代算法还是被普遍接受了。放弃这些算法,就好比石器时代的人类仅仅因为难以控制,就放弃使用火种。医疗诊断领域的先进算法可以拯救性命,无人驾驶汽车的先进算法可以减少事故和伤亡数量,金融领域的先进算法可以降低我们投资积蓄的花费。这些以及更多的益处似乎可以抵消算法时不时变得不可靠的代价。但与此同时,我们也不能无视有能力代表我们做出决策的自主算法带来的众多冲突和挑战。我们忽视这些问题的时间越长,算法决策的不良副作用就可能越顽固越难以消除。另外,人类用户或许也无法信任以不可预测的方式运行的算法。举例而言,研究表明人工智能算法能显著提高对于许多疾病的诊断效率,但如果医生对这些可能会出岔子的系统并无信心,那这些算法也就丧失了潜在价值。

很多评论者都提出,人工智能的算法代表着当前人类发展最为伟大的机遇。这种说法也许没错,但这些算法的不可预测性也代表着最为严重的威胁,而且我们作为终端用户究竟可以采取些什么措施也不甚明了。本书将就此问题展开讨论。具体而言,我将深究算法的“内心”,回答三个相关的问题:1. 算法以不可预测、带有偏见、可能有害的方式运行的原因是什么?2. 如果算法可能是非理性不可预测的,那我们如何决定何时使用这些算法?3. 我们作为在日常生活和工作中使用算法的个人以及社会群体,如何编导算法影响我们的故事?

当我开始动笔写这本书时,我并未察觉这些问题中的微妙之处,但之后我逐渐意识到这些问题的答案可以在人类的行为研究中找到。在心理学和遗传学领域,行为经常被归因到我们的基因和环境因素的影响,这就是经典的先天与后天的论点。基因可能对嗜酒倾向或精神分裂症等精神疾病负责,但单凭基因并不能完全解释我们的行为。环境因素,例如父母朋友的习惯可能对酗酒的形成有影响,而诸如病毒感染和营养不良的环境因素可能对精神分裂的发作有影响。

类似的,我们也可以将算法的异常行为归因为先天和后天的诸多因素。在后面的章节中,我将介绍这种看待算法的新方式,并在文中澄清我对“先天”和“后天”的具体定义。这套框架能够帮助解释微软的小冰和Tay的迥异行为,更重要的是,将加深我们对于算法的理解,给我们指明驯服算法的道路。

2010年5月6日,纽约市迎来了不合时令的温暖天气,华尔街则进入了不同寻常的紧张一天。没有人能确定希腊政府是否会拖欠其数千亿美元债务,投资人以不同寻常的速度交易着,尽力保护自己不受违约可能造成的影响。午餐时间前,某些公司的股价波动过于激烈,以至于纽约证券交易所不得不频繁暂停电子交易系统以平定股价。但这些波动和下午约两点半发生的事情比起来简直就是小巫见大巫。根据美国监管机构的一份报告数据以及一些研究员进行的交易活动分析结果显示,一家大型共同基金集团决定在一家名为Emini的跟踪标普500指数的交易工具上出售75 000份合约。

这家基金之前也曾大量出售过此等规模的合约,但都是通过人类交易员和算法共同进行,会综合考虑到价格、时间和数量的因素,此时出售75 000份合约大概需要5小时。而5月6日那天,那家基金使用了单一的算法来交易,仅仅花了20分钟。Emini和另一家跟踪标普500指数的交易工具上的价格崩盘,大量买家消失了。随后,交易算法间发生了多米诺效应,因为算法注意到了彼此的行为,于是都企图通过抛售更多股票退出市场。这一举动导致了更大的市场失控。仅仅16分钟后,道琼斯工业平均指数产生了超过三倍的当日损失。下午3点,一些蓝筹股或是以仅仅1美分的价格交易(例如咨询公司埃森哲),或是以100 000美金的价格交易(苹果公司)。根据一些估算,仅仅34分钟内,几乎1万亿的市值蒸发了。

那些最极端的股票交易随后被撤销,收盘时市场恢复至约3.2%的跌幅。但这一次被称为“闪电崩盘”的事件吓坏了监管人员。2015年,美国商品期货交易委员会通过了一项规则,赋予了自己和美国司法部无须传唤即可访问交易公司算法源代码的权力。其逻辑是对源代码的访问有助于监管部门理解某些交易背后的原理,从而允许监管者更好地诊断有问题的交易并且监管交易算法。

这一决定引起了金融业的公愤。源代码是他们交易策略的独门绝技,他们完全不愿意和无法充分保守秘密的机构共享自己特有的软件。面对这一**,美国政府在一年后退让了,对自己何时可以要求访问代码设定了更高的门槛。然而,面对这项权宜之计,批评家们仍未满足。“这一条规则提案是在滑向深渊的道路上迈出了鲁莽的一步。”美国商品期货交易委员会(CFTC, Commodity Futures Trading Commission)的委员J.克里斯托弗·吉安卡洛为金融业辩护道,“今天联邦政府向交易公司索要似乎没有个人隐私的算法的源代码,明天全球政府就能来索要全体美国人个人信息管理和匹配的源代码,他们的Snapchats[2]、他们的推特、他们的Instagrams[3]、他们的网购数据、他们的读物选择以及他们的政治和社交偏好。”

吉安卡洛的观点是否正确另说,但我觉得这场讨论中缺失了重要的一点:即使将来监管者们确实拿到了源代码的权限,也许他们从中也看不出什么名堂来。对于美国监管部门伸手过长的批评声没有考虑到一个重要的事实:即使2010年的源代码确实能给商品期货交易委员会或竞争对手们提供大量算法策略的信息,今天能从源代码中读出的信息也少了很多。这一趋势无疑只会继续下去,原因就在于华尔街和很多行业正在稳步地用机器学习代码替换只会亦步亦趋遵循煎蛋食谱(或股票出售指令)的老式算法。其中应用最广泛的就是完全不透明的基于神经网络的机器学习技术,它们对策略和行为的学习就算是编制算法的程序员自己都无法预测、无法解释,有时甚至无法理解。

如果算法的创作者都难以理解算法是如何做出决策,难以管理算法的影响,那普通用户又能抱什么希望呢?部分原因在于这种技术实在是太新了,另一方面则是我们对于算法如何运作的理解是错误的。就和监管部门关注源代码一样,我们中一些人相信算法的行为完全出自于那些源代码,另一些人却相信基于人工智能的算法超出了开发者的控制范围,什么事都做得出来。两种观点都是错误的。对于负责任的公民、消费者和专业人员而言,对自主算法的运作原理只拥有模糊的概念已经远远不够。我们也许不需要理解现代算法运行原理的精确细节,但我们都需要有大局观。从近年来算法的演变,到用于训练算法的数据,再到算法对我们日常生活日益增长的影响,我们需要对这些现象有更好、更深刻、更精微的理解来武装自己。这本书就将帮助你做到这点。

在我的研究中,我探索过算法对个人抉择的影响,以及更广泛的对社会、对企业的影响。我研究过媒体和零售网站上的个性化推荐对我们消费的商品和媒体种类的影响。我也研究过人们为何在某些场合会信任算法而在另一些场合却又不信任。我在很多公司开发部署过自己的算法。2005年,我和宾夕法尼亚大学的学生一起创办了一个名为Yodle的网络营销平台,为其开发的算法最终为大约50 000家小企业的广告和营销决策提供了支持。之后,我为一家技术型初创公司Monetate提供顾问服务,协助开发的A/B测试算法[4],在一些领先的在线公司用于制定网站设计方面的决策。

在我的职业生涯中,我目睹了决策支持算法的惊人效果,所以首先要说明的是,我相信将算法用于决策支持的巨大潜力。与此同时,我也曾见过算法不时会意外地变得无法预测,尤其是当用人工智能来实现自主的决策制定时。这不免在一些认为算法并不完美、算法带有偏见的学者和民众间敲响了警钟。但在我看来,担忧背后最大的原因并不是算法带有偏见,人们也存有偏见,而且一般来说,设计越好的算法越不带有偏见,但比起人类的偏见来说,我们更容易受到算法偏见的影响。这有两个原因:第一,大型技术平台,例如谷歌和Facebook,部署的算法能够同时触及数十亿人,造成的影响规模远远超过人类决策者的偏见能够带来的伤害;第二,因为我们倾向相信算法是可预测的是理性的,所以我们更容易忽视算法带来的众多副作用。

我写这本书的主要目的就是向生活和工作受到决策算法影响的读者解释我的研究成果和实践所得。我对读者群的定义很宽泛,这正是问题所在:大多数人对于正在或将要对其生活产生巨大影响的技术几乎一无所知,实际上,他们甚至都没有意识到这是他们知识储备中非常重要的欠缺。之后,基于我个人设计和研究算法的经验,这本书会提供对于算法使用的“用户指南”。这一部分中,我将解释算法的运行原理,以及算法的演变——如何从需要程序员逐字逐句开发逻辑的系统,成为人工智能驱动的现代系统,有能力独立学习大量逻辑。我也将讨论人类行为和算法行为间惊人的相似之处和关键性的区别,不但能帮助你更好地理解决策算法相关的风险,也会挑战你对算法的大多数基本假设。

我还将以同等篇幅提出一个框架,以此来保证算法服务于我们,而不是以我们或者算法设计师们所无法完全掌控的方式来接管我们的生活。这本质上是套“权利法案”,用来限制算法的能力,讨论我们作为用户如何对其究责。算法应该表现出的一定的透明度、解释性和控制水平,这些都将在这套框架中得以明确和澄清。这套框架适用于生活中和工作中使用的各种算法。提出算法使用上的“权利法案”也许听上去很严肃,但我并不是在主张由政府加强对算法的管制,而是对一些领先的学术组织和计算行业的企业所宣传的原则加以澄清。对这些想法的讨论,我将分为三个部分。首先,我会讨论算法决策的众多副作用,解释我相信风险已经不会更高的原因。其次,我会解释算法的运行原理,以期对算法变得不可靠的原因提供更深的理解。我还会表述我的“先天和后天”观点,透过此观点评估现代算法。最后,我将探讨我们对算法的信任来自何处,以及我们将如何驯服不可靠的算法。

你将了解到一位没有医学背景的信息科学家如何成为雷诺氏综合征(一种神秘的血管神经功能紊乱)治疗方法发现者之一。你将发现一个18世纪的“自动”象棋程序在现代计算机发明之前击败了本杰明·富兰克林和拿破仑·波拿巴。你将了解到谷歌的AlphaGo,一个基于人工智能的程序会下策略复杂的围棋,用其编程者都无法理解的棋术,击败了围棋世界冠军李世石(Lee Sedol)。你将探索亚马逊和奈飞推荐商品和电影的神奇黑盒。你还将了解为何谷歌决定在无人驾驶原型车中不安装方向盘会引起工程师的激烈争论,为何这一点要么成为谷歌最具创意的决定之一,要么成为谷歌在无人驾驶汽车市场逐鹿之战中的阿喀琉斯之踵。

[1] Weapons of math destruction(数字型杀伤性武器),和weapons of mass destruction(大规模杀伤性武器)谐音。

[2] Snapchat是由斯坦福大学两位学生开发的一款“阅后即焚”照片分享应用。

[3] I nstagram是一款运行在移动端上的社交应用,以一种快速、美妙和有趣的方式将你随时抓拍下的图片彼此分享。

[4] A/B测试指为要测试的软件制作两个(A/B)或多个版本,在同一时间,让成分相同或相似的目标人群分别使用,最后分析评估出最好版本的软件测试方法。