2017年秋,纽约大学的计算语言学家萨姆·鲍曼(Sam Bowman)认为,计算机仍然不够擅长理解文字。当然,在某些非常特定的领域中,计算机已经可以很好地模拟对文字的理解,比如机器翻译和情感分析(如确定一个句子是善意还是恶意的)。但鲍曼希望从对真实文章的测试中得到可衡量机器理解能力的证据:真正的、人类式的英语阅读理解(能力)。因此,他设计了一项知名的测试。
在2018年4月发表的一篇论文中,鲍曼与华盛顿大学及谷歌旗下人工智能公司DeepMind的研究人员合作,提出了一项名为GLUE(General Language Understanding Evaluation,综合语言理解测评)的系列测试,共包含九个阅读理解任务。该测试是“研究人员所公认的高难挑战中具有代表性的一部分”,鲍曼说,虽然这"对于人类而言不成问题"。其中一个任务是基于前一句话判断某一个句子是否正确,例如,如果你能从“特朗普总统搭机抵达伊拉克并开始为期一周的国事访问”推断出“特朗普正出访海外”,那么你就通过了测试。
结果,机器的测试成绩惨不忍睹。即使是最先进的神经网络也没有在任何一项任务中得分超过69分,或者说,在D+以上。对此,鲍曼和他的合作者都不觉意外。神经网络粗略地模仿哺乳动物大脑中神经元的连接模式,来搭建计算连接层,虽在自然语言处理(NLP)这一领域展现出了不小潜力,但是研究者们并不相信这些系统学到了任何关于语言本质的东西。而GLUE似乎也证明了这一点。“这些初期表现说明,现有的训练模型和方法还无法令机器通过GLUE。”鲍曼和他的合作者在论文中写道。
但他们的评价很快就被打破了。2018年10月,谷歌推出了一种新训练模型,绰号为BERT(Bidirectional Encoder Representations from Transformers, 转换器输出式双向编码器表示)。它在GLUE测试中拿到了80.5分。设计者们希望这个全新的基准工具能够帮助测量机器对自然语言的真实理解力,或是揭露机器在这方面的欠缺。而现在,机器仅用六个月的时间就从D-提升到了B-的理解水平。
“这绝对是个能让你喊出‘卧槽’的时刻!”鲍曼回忆道,“BERT在好几项任务中已经获得了接近人类可能得到的分数,而业界普遍对此持怀疑态度。”在BERT出现之前,GLUE测试甚至还未设置人类的基准分数。而当鲍曼和他的一个博士生在2019年2月加入人类基准分数之后,微软研发的一个基于BERT的系统只用了几个月的时间就超越了它们。
—Simon Prades
笔者在写这篇文章时,GLUE头排得分榜上的每一个系统几乎都是在BERT的基础上优化而成的,其中有五个系统在得分上均超过了人类。
但这是否意味着,机器真地开始理解了我们的语言,还是说它只是学会了更好地应付我们的测试?当BERT系神经网络如疾风骤雨般攻克了GLUE,新的测试方法也随之出现。在这些新测试中,强力的NLP系统被描绘成了“聪明的汉斯”(表面上会做算术题,但实际上只会无意识地遵照训练者的提醒)。
鲍曼说:“其实我们正处在一个尴尬的灰色地带,一边是对NLP问题的无聊的特殊解,一边是亟待破解的人工智能的曙光。整个领域普遍的反应是:为什么我们会面对这种处境?这意味着什么?现在我们又该做什么?”
机器自定规则
在知名的思想实验“中文房间”里,一个不会说中文的人身处某房间中,他的手边有许多中文语法书。这些语法书详细地说明了如何对收到的一系列中文字符给出相应的回答。当房间外的人从门缝塞进一张纸条,纸条上是用中文写的一个问题,房间里的人可以查看语法书,然后送出一个完美的中文回答。
这个思想实验表明,无论外面的人认为里面的人回答得多么准确,都不能说里面的人理解了中文。不过,即使机器只是模拟出人类的理解能力,在自然语言处理这个高难领域,也是实属不易。
现在唯一的问题是:这些所谓完美的语法书并不存在。自然语言过于复杂和随意,很难还原成一系列严格的规则,如句法(也就是支配词语组成有意义的句子的经验/规则)。著名语言学家诺姆·乔姆斯基曾举过一个例子:“无色的绿色观念愤怒入睡。”(colorless green ideas sleep furiously)这句话句法正确,但是任何一位说话人都知道这是一句无意义的废话。自然语言有着无数这种只可意会不可言传的规则,那么,怎样的一本预先写就的语法书方能将其全部囊括呢?
NLP研究者们尝试将不可能变为可能。他们用一种叫“预训练”的方法训练神经网络生成临时的“语法书”。
在2018年以前,NLP模型的预训练工具之一是某种类似于辞典的东西。这一名为“词嵌入”的工具将单词之间的联结编码成数字,作为输入去训练深度神经网络,相当于给了“中文房间”里的人一本非常简略的词汇书。然而,用词嵌入预训练的神经网络仍然无法从句子层面理解单词的含义,“它会觉得‘一个人咬了那只狗’和‘一只狗咬了那个人’表达了完全相同的意思。”约翰·霍普金斯大学的计算语言学家塔尔·林岑(Tal Linzen)如是说。
Tal Linzen——图片来源:Will Kirk/Johns Hopkins University
一种更佳的训练方法是:应用涵盖词汇、句法和上下文的预训练使神经网络具备更丰富的“语法书”,接着训练它去执行特定的NLP任务。2018年初,来自OpenAI、旧金山大学、艾伦人工智能研究所和华盛顿大学的研究者们,同时发现了一种可以接近这一宏伟目标的聪明方法。他们开始用一种更为基础的名为“语言模型”的任务来训练整个神经网络,这不同于之前的神经网络只用词嵌入来预训练第一层神经元。
“最简单的语言模型就是:先读部分单词,然后尝试预测将出现的下一个词。如果我说‘乔治·布什出生在’,这种模型需要预测这个句子中的下一个词。”Facebook研究科学家麦尔·奥特(Myle Ott)这样解释道。
其实,这些经过深度预训练的语言模型搭建起来相对不难。研究者只需从开源数据库如维基百科中拷贝大量的文本,把由上亿单词组成的语法正确的句子输入神经网络,然后让它自己得出对下一个词的预测。实际上,这就像让“中文房间”里的那个人以送进来的中文信息为参考,自己编写出自己的语法规则。
奥特说:“这种训练方式的好处是语言模型实际上会学到很多关于句法的东西。”
以这种方式预训练后的神经网络可以用更丰富的表示方法执行其他更具体的NLP任务,其具体应用过程被称作微调。
“从预训练开始,你就可以改编一个语言模型,让它执行你想执行的任务,”奥特解释说,“相比直接训练模型执行精细的任务,使用预训练改编模型可以获得更好的结果。”
2018年6月,OpenAI推出了一个名为GPT的神经网络,其中包括一个用11038本电子书接近十亿单词量预训练的语言模型。该神经网络以72.8的得分直接占据了当时GLUE的榜首。即便如此,萨姆·鲍曼还是认为在阅读理解能力上,任何机器的表现离人类水平都还很远。
紧接着,BERT出现了。
强大的“配方”
所以,BERT究竟是什么?
首先,它并不是一个经过完整训练的神经网络,也不能直接超越人类水平,而是鲍曼所说的“一个非常精确的预训练方案”。谷歌的研究者开发了BERT,让神经网络以它为基础,学习如何完成各种NLP任务,这就像让一个糕点师傅根据配方做出预先烤好的馅饼皮,然后用它做出各种各样的馅饼(蓝莓馅或菠菜馅的)。同时,谷歌开源了BERT的代码,让其他科研人员不必再从头搭建这个“配方”,只需打包下载BERT即可,就像在“超市买预制的馅饼皮”那样简单。
如果说BERT就像一个配方,那么它需要什么原材料呢?“整个模型的成功有三个方面的原因。”Facebook研究科学家奥马尔·利维(Omer Levy)谈道。他致力于研究BERT成功的原因。
Omer Levy——图片来源:Omer Levy
首先,要有一个预训练的语言模型,也就是“中文房间”里的语法书。其次是辨认句子中首要特征的能力。
2017年,谷歌大脑的工程师雅各布·乌兹科莱特(Jakob Uszkoreit)正在努力加强谷歌在机器理解语言领域的竞争力。他注意到,即使是最先进的神经网络也受到一个内置特性的约束:它只会从左到右逐一阅读句子中的单词。表面上这种"顺序阅读"似乎模拟了人类阅读的模式,但乌兹科莱特怀疑“线性、顺序地理解语言可能并不是最优的方式”。
于是,乌兹科莱特和他的合作者为神经网络设计了一种新的架构。这种架构的核心在于“注意力”分配机制,也就是让每一层神经元给输入中的某种特征增加权重。这种注重"注意力"的架构名为转换器(transformer)。它会把“一只狗咬那个人”句子中的每个单词编码成多种不同的形式。举例来说,一个转换器可以把“咬”和“人”当成动词和宾语,忽略掉“一只”这个词;同时它也可以把“咬”和“狗”当成动词和主语,基本上忽略“那个”这种词。
转换器以这种非序列的形式把句子表示为更具表达力的形式。乌兹科莱特称这种非序列的形式为树形(treelike)。神经网络的每一层神经元代表单词之间多个互相平行的连接,两个不相邻的单词经常会被连接在一起,就像小学生分辨句子成分时画的树形图。“这实际上就像许多相互重叠的树形图。”乌兹科莱特解释道。
树形的表示方法让转换器能够很好地建立上下文理解的模型,同时也能更好地学习相隔很远的两个单词之间的联系。“这显得有些违反直觉,”乌兹科莱特说,“但该模型的基础是语言学,后者一直以来都在研究语言的树状模型。”
最后,BERT配方中第三个“原材料”则更加偏向这种非线性的阅读方式。
与其他的预训练语言模型不同,BERT并不依赖只从左到右阅读大量的文字来训练神经网络,而是同时从左、从右两个方向开始阅读,学习如何预测中间被隐去的单词。比如说,BERT收到的输入是“乔治·布什1946年……于康涅狄格州。”它会从左右两个方向解析文本,预测出句子中段的单词“出生”。乌兹科莱特说:“这种双向阅读让神经网络学会在预测之前,从任意单词的组合中获取尽可能多的信息。”
BERT所使用的这种选词填空式的预训练任务名为遮蔽语言模型(masked-language modeling)。事实上,几十年来,我们一直在用它评估人类的语言理解能力。谷歌则把它当作一种训练神经网络进行双向阅读的工具,以此代替过去最流行的单向阅读预训练模型。“在BERT之前,单向阅读的语言模型是业界标准,即使它也带来了不必要的限制。”谷歌研究科学家肯顿·李(Kenton Lee)说道。
在BERT出现之前,这三种“原材料”——深度预训练语言模型、注意力机制和双向阅读——早已各自出现。但从未有人想到把它们组合起来,直到谷歌在2018年末发布了BERT。
Jakob Uszkoreit——图片来源:Google
改良的“配方”
好配方总招人喜欢!BERT被各路“大厨”陆续改良成他们自己的风格。在2019年春的一段时间中,“微软和阿里巴巴不断地修正BERT模型、相互超越,在GLUE排行榜上轮换头名。”鲍曼回忆道。2019年8月,BERT的进阶版RoBERTa登上了舞台。当时,DeepMind研究员塞巴斯蒂安·鲁德(Sebastian Ruder)在他广受欢迎的NLP时事通讯中波澜不惊地评论道:“又一个月,又一个更先进的预训练模型(出来了)。”
BERT这个“馅饼皮”包括了一系列结构设计上的决策机制,每一处都对模型的效果有影响。这其中就包括“烘烤”出来的神经网络的大小、预训练数据集的大小、数据集被遮蔽的方式以及神经网络的训练时长。后来出现的“配方”,包括RoBERTa,都是研究者调整这些决策机制的结果,就像厨师们会不断改良菜式一样。
以训练RoBERTa为例,Facebook和华盛顿大学的研究者们加进了许多新材料(更多的预训练数据、更长的输入序列、更多的训练时间),去掉了一种(如“预测下一句话”,此任务本来包含在BERT中,不过后来发现它会降低模型表现),又调整了另一种(增加了遮蔽语言预训练任务的难度)。训练结果呢?直取GLUE排名首位。六个星期后,微软和马里兰大学的研究人员做出了他们的RoBERTa修改版,艰难地再次取胜。在写作这篇文章时,又有另一个叫ALBERT的模型——全称是“一个轻量级BERT”(A Lite BERT)——通过更精细的调整训练,其表现占据了GLUE榜首。
“我们还在尝试弄清楚哪些‘配方’能奏效,哪些不行。”奥特说。
不过,即使我们再怎么完善做馅饼的技巧也不太可能悟到化学原理,不断地优化BERT也不会给我们增加自然语言处理方面的什么理论知识。“实话告诉你:我对这些论文不太感兴趣,因为我觉得它们特别无聊。”约翰·霍普金斯大学的计算语言学家林岑说。“这是一个科学谜题”,他承认,但是答案并不在于如何让BERT和其他模型变得更聪明,或者明白为何它们变得聪明。相反,“我们正试图理解这些模型在何种程度上真正理解了人类语言,”而不是“发现了一些碰巧在测试的数据集上有用的奇技淫巧”,林岑说道。
BERT确实在训练中不断获得高分,但换句话说,万一它的解答思路错了呢?
机器聪明,但不智能
2019年7月,台湾国立成功大学的两位研究者训练BERT完成一项较高难度的自然语言理解基准任务:论证推理理解。BERT取得了令人印象深刻的成绩。
这一任务要求被试者选出一个论证中合适的、能够支撑论点的隐含前提。举例来说,如果要用“科学研究表明吸烟和癌症之间的联系”这一论据来论证“吸烟导致癌症”的论点,我们需要假设“科学研究是可信的”,而不是“科学研究是昂贵的”。后者可能本身是正确的陈述,但是在本论述中没有任何意义。机器,读懂了吗?
如果它做不到,也没关系。因为就算是我们人类也很难完全正确地通过这项任务:一个未受训练的人平均基准得分只有80分。
而BERT得了77分——文章作者隐晦地表示这结果是“令人惊讶的”。
对此,但他们并不认为,BERT训练能让神经网络获得亚里士多德式的逻辑推理能力。相反,他们给出了一个更简单的解释:BERT只是归纳了隐含前提的表层模式。
事实正是如此。在重新分析了训练数据集之后,研究者们发现了虚假提示存在的证据。例如单纯选择包含“不”的选项就可以做对61%的题。抹去这些虚假提示之后,BERT的得分从77分下降到了53分——和一个人随便乱蒙差不多。还有,斯坦福大学人工智能实验室出版的机器学习杂志《梯度》(The Gradient) 收录了一篇文章,其将BERT比作“聪明的汉斯”,那匹有名的“会算术”的马。
在另一篇叫做《结果正确,但推理错误》(Right for the Wrong Reasons)的论文中,林岑和他的合著者发表了一系列证据,说明BERT在某些GLUE任务中的优秀表现可能同样是“得益于”数据集里的虚假提示。这篇论文包括了一个新数据集,专门揭露BERT在GLUE中使用的“捷径”。数据集的名字叫“对自然语言推论系统的启发式分析”(Heuristic Analysis for Natural-Language-Inference Systems,简称HANS)
所以说,BERT和它那些霸榜的“兄弟姐妹”都是一场骗局?
鲍曼和林岑均认为GLUE的一部分训练数据比较混乱,充满了由创造者引入的微妙偏差,而所有的这些偏差都可能被强大的BERT系神经网络所利用。“没有哪一种把戏能让神经网络完成(GLUE的)所有任务,但是想要提高它的表现,却有很多条捷径可以走,”鲍曼说道,“而BERT可以发现这些捷径。”但同时他也不认为BERT只是徒有其表。“看起来这些模型确实学到了一些关于语言的知识,”他说,“但是它肯定没有以一种全面而稳定的方式理解英文。”
华盛顿大学和艾伦研究所的计算机科学家崔艺珍(Yejin Choi,音译)认为,要想朝真正理解语言这一目标继续发展,人们不能仅仅专注于发展更强大的BERT,也需要设计更好的测试基准和训练数据,以便降低机器走捷径的可能。她研究一种名为“对抗过滤”(adversarial filtering)的方法,使用算法来扫描NLP训练数据集,并删除过度重复的示例,以免为神经网络引入虚假的提示。她说,经过对抗过滤后,“BERT的训练表现可能会大大降低,但是同期人类的表现不会下降太多。”
不过,一些NLP研究人员还是认为,即使经过更好的训练,神经网络语言模型仍然会面临一个根本性的障碍。即使有强大的预训练,BERT也不能完美地建立通用的语言模型,而是经过微调后,对“特定的NLP任务甚至只是该任务的特定数据集”进行建模,马萨诸塞州大学洛厄尔分校文本机器实验室的计算语言学家安娜·罗杰斯(Anna Rogers)说。而无论数据集设计得多么完善、筛选得多么仔细,都无法囊括所有极端情况和不可预见的输入,但我们人类在使用自然语言时却能毫不费力地应对它们。
鲍曼指出,很难想象神经网络如何让我们相信它真正理解了语言。毕竟,标准化的测试理应揭示关于考生知识的本质的、可泛化的信息。但就像每个备考过SAT的人所知,这些测试也会被技巧蒙混过关。鲍曼说:“我们希望设计出足够困难且不受欺骗的测试,这样解决[它们]能使我们相信,我们已经完全掌握了人工智能或语言研究技术的某一方面,但这非常困难。”
鲍曼与合作者最近推出了一项叫SuperGLUE的新测试。这项测试对BERT系的神经网络来说尤其困难。直到现在,还没有哪个神经网络做出超过人类的表现。但是,如果发生了这种情况,这是否就意味着机器真地能够更好地理解语言?还是说,这仅仅意味着科学能够更好地教会机器应付我们的测试?
“有一个很好的类比,”鲍曼说,“就算我们知道怎样做对LSAT和MCAT的题目,我们也不一定能胜任医生和律师的工作。”而这似乎正是人工智能研究历经的道路,他补充道。“在我们弄清楚如何编写国际象棋走棋程序之前,大家都觉得国际象棋是对智力的一种真正考验,”他说,“我们这个时代的目标,一定是不断提出更难的问题来测试机器的语言理解能力,然后不断思索如何解决这些问题。”
翻译:乔恩 校对:阿格 编辑:三文鱼