自然语言处理让人类都懵逼,看谷歌人工智能怎么破

GAIR

今年夏天,雷锋网将在深圳举办一场盛况空前的“全球人工智能与机器人创新大会”(简称GAIR)。大会现场,雷锋网将发布“人工智能&机器人Top25创新企业榜”榜单。目前,我们正在四处拜访人工智能、机器人领域的相关公司,从而筛选最终入选榜单的公司名单。如果你的公司也想加入我们的榜单之中,请联系:2020@leiphone.com

上周,谷歌发布了Parsey McParseface(对于一个挑战人工智能领域最难问题的尖端技术,这也真是迷之命名)。虽然过去的五年,计算机完成了许多了不起的壮举——从赢得“Jeopardy!”(编者注:美国一项智力问答游戏电视节目,2011年IBM华生(Watson)计算机与比赛中的人类选手一决高下,赢得了比赛冠军)到打败世界围棋冠军,可是计算机还是没法理解人类所说的语言。语言是人类最复杂的日常功能之一。因此,可以解读人类语言的McParseface才会引起人们的热切关注。

McParseface的能力相当于大小学生级别:将句子分解、识别名词和动词、并理解句子中的所有部分怎么样互相联系起来。举个例子,它可以告诉你句子中的动词原形,谁是动词相关的主语、谁又是宾语。

这听起来不是很高级,但这是通往人与机器人用自然语言沟通的重要一步。要让Siri能够理解“你能帮我找找更多的猫咪照片吗?”,Siri首先必须得知道自己得找什么,它必须首先理解什么是“猫咪照片”。

要理解一个句子的语法结构看起来非常简单。我们人类每天不需要特意思考就可以做到了。但是,有时候我们的大脑也会绕晕。不信你试试下面的这些句子:

The horse raced past the barn fell. (中文直译:马儿跑过了谷仓摔。)

在英语中,这句话乍一看完全看不懂。如果去掉最后的一个单词,“The horse raced past the barn”是一个很完整的句子,为什么最后多出来一个单词“fell”?难道马儿跑过的那个东东不是“谷仓”,而是“谷仓摔”(什么鬼)?

整句话感觉一点都不通顺,但是如果换一种结构,那语义上就通顺了:

The horse (that was raced past the barn) fell.(中文直译:被用来跑过谷仓的马儿摔了。)

这就是语言学中被称为“花园小径”句子的一个著名例子(编者注:这种句子的实际结构与意义与读者最初所理解的结构或意义不同,由于词汇歧义或语法歧义,对读者的语义理解造成了困难。因为句子中词语或词组可以按照不同的方式组合,在语法结构分析图中会像花园小径一样分叉延伸,因而被称作“花园小径”句子。)你开始读的时候,你会相信句子是这个意思。但是当你读完整句,你会发现之前自己想错了。这句话中的动词原形是“fell”(摔)而不是“raced”(跑)。句子的核心骨架是“The horse fell(马儿摔了)”。其他的词语都是修饰。

即便是人,读这样的句子也会搞错意思——这是理解自然语言的困难之一。一不小心事情就变复杂了。“中等长度的句子——例如20至30个词语的长度——可能会有几百、几千甚至几万种可能的语法结构,这不是什么稀罕事。”谷歌研究员Slav Petrov在关于Parsey McParseface的一篇博客文章中这样写道。

通常,我们的大脑会利用语境和真实世界中的知识(简称“常识”),来排除不可能的语义解读。例如,如果有人说“爸爸用蓝莓混合面团”,我们会认为蓝莓是面团中的一种原料——而不会认为,蓝莓是爸爸混合面团时所使用的某种擀面工具。

花园小径句子则让我们的直觉误导了我们。这种句子会结合一些常见词组,让我们以为这是一种以前出现过很多次的句子。读着读着,我们就会发现,不对!我们又被误导了。花园小径句子中的词语排列很罕见,有时候我们会愣住,然后在脑子中拼命搜索所有的可能性。(难道“horse”(马)这里当做动词使用?难道“fell”(摔)此处是当做名词使用?“raced”(跑)有没有我没想到的别的含义?)

语言的难度不只是搞笑的绕口令。“大部分这些句子都是心理语言学家发明的,专门用来误导人类的大脑。”MIT认知科学家Ted Gibson说。“我们发明了这些例子,来测试人类大脑是如何理解语言的。”科学家们观察人们如何应付这些绕口令一样的奇怪句子,从而发现了大脑是如何让语言理解(至少大部分时候)都非常简单。

Parsey McParseface如何应对?

那些让你懵逼的花园小径句子,在人工智能看来如何呢?也许我们会觉得人都被玩懵逼了,人工智能当然比更加没辙了。可是结果让人吃惊,Parsey McParseface的表现还挺不错的。

这个来自谷歌的动图给我们解释了SyntaxNet的原理,SyntaxNet就是支持McParseface的系统。

句子“I booked a ticket to Google."(我预定了一张去谷歌的车票。)软件从左到右阅读,尝试了各种词组结合的可能性并进行分析,当阅读完最后一个词语后,软件认为"I"(我)为主语、"booked"(预定)为动词、"tickect to Google”(去谷歌的车票)是宾语的可能性最高。图片来源:Indy100

Parsey McParseface阅读句子的方法和人类挺像的。它按顺序,从左到右处理文字;当它阅读到句子结尾的时候,它会判断哪一种句子语法组合的可能性最高。我们刚才举例的那个句子中,软件进行了两种句子语法可能性的猜测。第一种将“raced”(跑)作为句子的动词原形,不正确。第二种将“fell”(摔)作为句子中的动词原形,正确。

当然,这种人工智能的习惯还不完美。谷歌称,当研究员从报纸中摘取了一些句子来让Parsey McParseface识别其中的动词原形,软件可以达到94%的精确度。这比其他一些与之竞争的系统要更好一些。(在最近的一篇论文中,谷歌炫耀了Parsey McParseface的一个强化版本,精确度比这更高。至于其他竞争系统,你可以点击链接,试试斯坦福大学NLP的某个版本。如果你想试试更简单、不过更加快速的语言分析器,可以试一试spaCy。你得在自己的电脑上下载Parsey McParseface,有点麻烦。)

Parsey McParseface竟然可以搞定花园小径句子。我测试的时候,软件成功解读了以下句子:

The old man the boat.

While the man hunted the deer ran into the woods.

While Anna dressed the baby played in the crib.

后文会有关于这些句子正确与错误意思的分析。虽然上面几个句子都没问题,我用下面的这些句子把Parsey McParseface玩懵逼了:

I convinced her children are noisy.

The coached smiled at the player tossed the Frisbee.

The cotton clothes are made up of grows in Mississippi.

(如果你自己也懵逼了,不要捉急慢慢看——或者,直接跳去文末看解答。)

当我把这些例子给谷歌一位发言人看的时候,他也同意,AI领域还有进步的空间。不过话说回来,好多人类也看不懂我写的句子,还是不要去随便怪计算机太蠢。

而且,话说回来,真实生活中没有人是这样说话的。Gibson解释道,这种语法难题是为误导大脑而专门设计的——为了看看人们如何应对这种情况。

我们的发现

“人类的语言真的是非常复杂。”Gibson说,“任何一个正常长度的句子,都有几千几万种可能的解读方式。”语言学的一个重要问题,就是人类如何从这么多的可能性中,快速挑选出正确的选项。

花园小径句子的试验显示了我们极度依赖经验。我们可以依靠直觉,感觉出这个词组模式是常见还是罕见的。我们更倾向于常见的词语或者词组——对于这些词,我们理解得更快。词语越是熟悉,解码句子语法也就越简单。这种倾向让我们可以轻松应对日常生活。但是遇到花园小径句子的时候,我们的弱点也就暴露了。

例如这句话:“The cotton clothing is made up of grows in Mississippi.”(正确含义为“用来做衣服的棉花是在密西西比种植。”,但是人们阅读的时候会以为“cotton clothing”(棉质衣物)是一个不可分的词组。)我们很容易被误导,以为这句话讲的是“棉质衣物”,因为“cotton clothing”这个词组非常常见。

又例如这句话:“While the man hunted the deer ran into the woods.”(直译为“当男人捕猎鹿跑进树林。”正确意思为:“当男人捕猎的时候,鹿跑进树林。”但是误导含义中,男人在捕猎鹿,因为“hunt the deer”(捕猎鹿)像是一个连续不可分的词组。)我们立刻会认为句子中说的那个人在猎鹿,不只是因为捕猎鹿是一种我们能够想象、理解其含义的事物,还因为,我们习惯于看见“hunt”(捕猎)这个词与某个猎物联系起来的词组。

如果要让句子更容易理解,我们可以说:“While the man hunted the vice president ran into the woods.”(直译为”当男人捕猎副总统跑进森林。”)这听起来还是比较别扭,但是比上面那个句子更容易看懂,因为,怎么说呢,就算捕猎鹿对你来说是一件非常稀罕的事情,你也会感觉在树林中捕猎鹿的几率,还是要比捕猎副总统的几率高一些吧。

关于花园小径句子研究还在继续。研究人员发现,人们经常以自相矛盾的奇怪方式解读句子,例如以下的这个句子:

“While Anna dressed the baby played in the crib.”

当你阅读这句英文句子的时候,一开始你可能会以为Anna正在给小宝宝穿衣服,Anna是主语,而小宝宝(the baby)是“dress”(穿衣)这个动词的宾语,因为“dress the baby”(给小宝宝穿衣)是一个非常常见的词组。但是当你读到句子结尾的时候可能就懵逼了,你可能会意识到,“the baby”(小宝宝)并不是“dress”(穿衣)这个动词的宾语,而是“played in the crib”(在摇篮中玩耍)这个动作的主语,也就是说,是这句话真正的主语。如果这句话中加个逗号,就可以排除歧义了:

“While Anna dressed, the baby played in the crib.”

因为“the baby”(小宝宝)是句子的主语,那就不能同时作为“dress”(穿衣)的宾语了。这样的矛盾之处提醒我们再回句子开头去看看。第二次阅读句子,我们就意识到Anna应该不是在给小宝宝穿衣,而是在给自己穿衣。

正常人都懵逼

当研究员给人们测试这些句子的时候,研究员发现很多人对这句话的理解是这样的:Anna既给自己穿衣,也给小宝宝穿衣。这就说不通了。Anna和小宝宝不能同时作为句子的宾语。研究员认为,这说明人们对于语言来说习惯于“偷懒”。人们喜欢走捷径,懒得花力气去把其中的语法结构想透彻,除非是在万不得已的情况下(例如语法考试?)。

没玩够?再来看一个句子:

“The coach smiled at the player tossed a Frisbee.”

如果直接翻译,这句话就是“教练笑队员扔一个飞盘。”这其实与传统的花园小径句子完全相反,传统的花园小径句子,首先会把你误导去一条错误的语法路径上。这句话不是误导,简直是绑架——你从正确的起点开始,最终都不知道被误导到哪儿去了。

句子最重要的核心是头六个词:“The coach smiled at the player”。最后的三个单词是额外的,为了让你对于“the player”(队员)有更多的了解。但是不知道怎么搞的,最后三个单词把整句话都搅得不清不楚了。我们看了这个句子都很想搞明白,到底教练还是队员扔了一个飞盘。

最近几年在学术界,关于这句话到底怎么回事有很多争论。传统的语言处理理论都没法解释清楚,为什么这句话让人如此绕不过来弯。

目前在MIT的认知科学家Roger Levy在几年前提出了一个有趣的想法:也许人们觉得自己阅读句子的时候误解了什么,所以才如此懵逼。我们在日常生活中经常碰到误解的句子。Levy认为,我们的大脑也许想要预测那些在沟通中丢失的、含糊地咕哝出来的或者阅读时被忽视的单词,以修复完整的句子含义。这种模糊识别策略可以帮助我们修复“坏掉”的句子。然而在花园小径句子的案例中,这项策略反而帮了倒忙。

有很多方式可以对这个句子进行微调。Levy在论文中提出了以下几种方法:

The coach who smiled at the player tossed a Frisbee.(在句子中加入了单词“who”修改了句子语法结构,语义变为:向队员微笑了的教练,扔出了一个飞盘。)

The coach smiled as the player tossed a Frisbee. (在句子中加入了单词“at”修改了句子语法结构,语义变为:当队员扔出了一个飞盘,教练笑了。)

The coach smiled and the player tossed a Frisbee. (在句子中加入了单词“and”修改了句子语法结构,语义变为:教练笑了,然后队员扔出了一个飞盘。)

The coach smiled at the player who tossed a Frisbee. (与第一句一样,也是在句子中加入了单词“who”修改了句子语法结构,但是由于位置不同,句子的语义变为:教练对扔出飞盘的那个队员微笑。)

The coach smiled at the player and tossed a Frisbee. (与第三句一样,也是在句子中加入了单词“and”修改了句子语法结构,但是由于位置不同,句子的语义变为:教练对队员微笑,然后扔出了一个飞盘。)

当人们阅读原本的句子的时候,也许脑海里脑补了以上所有的可能性,因此造成了困惑不知道句子到底是什么意思。

我们来看这句话:“The mother gave the candle the daughter.”(妈妈给蜡烛女儿。)对于这句话,Gibson说:“我们有时候都没注意到这个句子有什么不对的地方,我们会自动把句子修改为‘The mother gave the candle to the daughter.’”

我们现在已经看到了花园小径句子的威力,完全可以把我们的大脑绕晕。今天学到的要点就是:语言很复杂,虽然我们平时都觉得说话很容易。当我们没法好好说话的时候,可能才会发现语言真正的规则。所以,让机器进行自然语言处理,也比我们想象得要难多了。

前面还有两个没有解释的花园小径句子,你都看懂了吗?感谢你看完长文,答案拿去不谢:

The old man the boat.

解释:通常我们会将“The old man”(老人)看成一个词组,这样就没法理解本句话含义。“The old”省略单词“man”也可以表达“老人”的意思,而“man”这个单词则有语义歧义,既有“人”的意思也可以有“操纵、掌控”的意思,此处使用第二种意思就能理解本句话:“老人掌控着船。”

I convinced her children are noisy.

解释:通常人们会认为“her children”是连续的词组,这样的话“are noisy”就会缺少主语,无法理解。可以在句子中加入逗号将“her children”打断,从而避免歧义:“I convinced her, children are noisy.”(我说服她,小孩是很吵闹的。)

Via Washington Post

原文发布于微信公众号 - AI科技评论(aitechtalk)

原文发表时间:2016-05-23

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏陈灿的专栏

机器学习你不可不懂的线性代数和矩阵微分

本文介绍本人在学习数学以及接触机器学习以来的一些感悟和书单。从大学到研究生,把自己对线性代数和矩阵论一点点感悟和心得发在这里,大家一起进步学习。

1.2K0
来自专栏北京马哥教育

机器学习资料与攻略超强整理吐血推荐

? 作者:白马负金羁 来源: http://www.zggsby.com/baimafujinji/article/details/55826409 016年...

4758
来自专栏大数据挖掘DT机器学习

R语言学习路线和常用数据挖掘包

对于初学R语言的人,最常见的方式是:遇到不会的地方,就跑到论坛上吼一嗓子,然后欣然or悲伤的离去,一直到遇到下一个问题再回来。当然,这不是最好的学习...

3266
来自专栏人工智能头条

如何在Chatbot中应用深度学习? | 赠书

1622
来自专栏申龙斌的程序人生

从勾股定理,到费马大定理,再到椭圆曲线,一部辉煌壮丽的数学史诗

2.8K5
来自专栏用户2442861的专栏

如果看了这篇文章你还不懂傅里叶变换,那就过来掐死我吧(3)

作者:Heinrich 链接:https://zhuanlan.zhihu.com/p/19763358 来源:知乎 著作权归作者所有。商业转载请联系作者...

751
来自专栏CDA数据分析师

用数据说话——数据分析的基本思想

用数据说话,就是用真实的数据说真实的话!真实也可以理解为求真务实。那么,数据分析就是不断地求真,进而持续地务实的过程!用一句话表达就是用数据说话,用真实的数据说...

2445
来自专栏大数据挖掘DT机器学习

R语言学习路线和常用数据挖掘包

对于初学R语言的人,最常见的方式是:遇到不会的地方,就跑到论坛上吼一嗓子,然后欣然or悲伤的离去,一直到遇到下一个问题再回来。当然,这不是最好的学习方式...

3456
来自专栏牛客网

谷歌,微软,阿里,美团实习生面经

2745
来自专栏大数据挖掘DT机器学习

【趣味】数据挖掘(3)—Apriori算法-论文引用与数据血统论

本文先通俗地介绍快速挖掘关联规则的Apriori算法,然后介绍发表这一算法的论文(它被引用了11480+次),最后关注此文的实际影响 与 传统影响因子的...

3446

扫码关注云+社区