一个名为BERT的AI程序如今能在高级阅读理解测试中击败人类,但它同时也揭示了AI发展仍是前路漫漫。关于机器如何理解人类语言,BERT已经引发了一场革命。
JOHN PAVLUS
封面:Jon Fox
COMPUTER SCIENCE计算机科学笔者在写这篇文章时,GLUE头排得分榜上的每一个系统几乎都是在BERT的基础上优化而成的,其中有五个系统在得分上均超过了人类
但这是否意味着,机器真地开始理解了我们的语言,还是说它只是学会了更好地应付我们的测试?当BERT系神经网络如疾风骤雨般攻克了GLUE,新的测试方法也随之出现。在这些新测试中,强力的NLP系统被描绘成了“聪明的汉斯”(表面上会做算术题,但实际上只会无意识地遵照训练者的提醒)。
鲍曼说:“其实我们正处在一个尴尬的灰色地带,一边是对NLP问题的无聊的特殊解,一边是亟待破解的人工智能的曙光。整个领域普遍的反应是:为什么我们会面对这种处境?这意味着什么?现在我们又该做什么?”
机器自定规则
一种更佳的训练方法是:应用涵盖词汇、句法和上下文的预训练使神经网络具备更丰富的“语法书”,接着训练它去执行特定的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成功的原因。
首先,要有一个预训练的语言模型,也就是“中文房间”里的语法书。其次是辨认句子中首要特征的能力。
2017年,谷歌大脑的工程师雅各布·乌兹科莱特(Jakob Uszkoreit)正在努力加强谷歌在机器理解语言领域的竞争力。他注意到,即使是最先进的神经网络也受到一个内置特性的约束:它只会从左到右逐一阅读句子中的单词。表面上这种"顺序阅读"似乎模拟了人类阅读的模式,但乌兹科莱特怀疑“线性、顺序地理解语言可能并不是最优的方式”。
于是,乌兹科莱特和他的合作者为神经网络设计了一种新的架构。这种架构的核心在于“注意力”分配机制,也就是让每一层神经元给输入中的某种特征增加权重。这种注重"注意力"的架构名为转换器(transformer)。它会把“一只狗咬那个人”句子中的每个单词编码成多种不同的形式。举例来说,一个转换器可以把“咬”和“人”当成动词和宾语,忽略掉“一只”这个词;同时它也可以把“咬”和“狗”当成动词和主语,基本上忽略“那个”这种词。
转换器以这种非序列的形式把句子表示为更具表达力的形式。乌兹科莱特称这种非序列的形式为树形(treelike)。神经网络的每一层神经元代表单词之间多个互相平行的连接,两个不相邻的单词经常会被连接在一起,就像小学生分辨句子成分时画的树形图。“这实际上就像许多相互重叠的树形图。”乌兹科莱特解释道。
树形的表示方法让转换器能够很好地建立上下文理解的模型,同时也能更好地学习相隔很远的两个单词之间的联系。“这显得有些违反直觉,”乌兹科莱特说,“但该模型的基础是语言学,后者一直以来都在研究语言的树状模型。”
最后,BERT配方中第三个“原材料”则更加偏向这种非线性的阅读方式。
与其他的预训练语言模型不同,BERT并不依赖只从左到右阅读大量的文字来训练神经网络,而是同时从左、从右两个方向开始阅读,学习如何预测中间被隐去的单词。比如说,BERT收到的输入是“乔治·布什1946年……于康涅狄格州。”它会从左右两个方向解析文本,预测出句子中段的单词“出生”。乌兹科莱特说:“这种双向阅读让神经网络学会在预测之前,从任意单词的组合中获取尽可能多的信息。”
BERT所使用的这种选词填空式的预训练任务名为遮蔽语言模型(masked-language modeling)。事实上,几十年来,我们一直在用它评估人类的语言理解能力。谷歌则把它当作一种训练神经网络进行双向阅读的工具,以此代替过去最流行的单向阅读预训练模型。“在BERT之前,单向阅读的语言模型是业界标准,即使它也带来了不必要的限制。”谷歌研究科学家肯顿·李(Kenton Lee)说道。
在BERT出现之前,这三种“原材料”——深度预训练语言模型、注意力机制和双向阅读——早已各自出现。但从未有人想到把它们组合起来,直到谷歌在2018年末发布了BERT。
改良的“配方”
好配方总招人喜欢!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的题目,我们也不一定能胜任医生和律师的工作。”而这似乎正是人工智能研究历经的道路,他补充道。“在我们弄清楚如何编写国际象棋走棋程序之前,大家都觉得国际象棋是对智力的一种真正考验,”他说,“我们这个时代的目标,一定是不断提出更难的问题来测试机器的语言理解能力,然后不断思索如何解决这些问题。”
翻译:乔恩
校对:阿格
编辑:三文鱼
https://www.quantamagazine.org/machines-beat-humans-on-a-reading-test-but-do-they-understand-20191017/
本文经授权转载自神经现实(ID:neureality),如需二次转载请联系原作者。
欢迎转发到朋友圈。
假设机器也有人的理解能力,你最想让它体验什么人间疾苦?扫码进入果壳群落,跟大家一起分享你的看法吧~