转自:知乎
作者原文:如何构造真正理解语言的机器 (需付费阅读)
作者:知乎用户
链接:https://www.zhihu.com/question/59282133/answer/339193316
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

在讨论机器是否“理解”语言之前,我们可以内省一下自己是如何学习和理解自己的母语的?“大漠孤烟直,长河落日圆” 简单的一句话,描绘了一幅苍茫的大漠晚霞,却引起了人们对社会、国家、民族的无限瑕想,语言到底是什么,为何能简短地表达出如此多的内容?

1 语言是生物交流认知的一种方式

许多生物都会使用身体语言(行为、声音、光)来向第三方表达自己的认知状态。一头狼在发现猎物时,会用嚎叫的方式呼唤同伴;一条狗在看到主人归来的时候,会欢快地摇摆尾巴表达内心的兴奋。蚂蚁与蜜蜂会有一套极其精密沟通方式,来相互获知食物的所在; 一些近似于人类的动物如青猴[1],也可以使用与人类类似的方式——喊叫来发声提醒同伴区分到底是老鹰还是狮子来袭。

这些动物似乎都在一定程度上拥有自己的交流能力,但人类的语言却是有别于这些动物的,因为人类的语言能够更高效、更灵活、更精确地表达认知。人类的语言能够自由地组合,精确地描述某一种状态,如“门前的大桥的桥洞下有十只鸭子”,表示的就是门前的大桥下的桥洞下游过鸭子的景象。这种语言能力是目前其他动物难以具备,也难以理解的。

2 谁能理解人类的语言?

如果说我们看不到现在有哪台机器可以真正地理解人的语言,那么其他的拥有完美大脑的生物是否能理解人类的语言呢?

2.1 不讲人话的狼孩

罗马广场上有一座著名的雕像,描述的是一个传说。两个孪生兄弟被残暴的国王叔叔下令仆人把他们扔到河里杀死,仆人把他们挂在河边的树上想要把他们淹死,但却被一只母狼救下,用自己的奶喂养他们长大,最后被一位牧人发现并带回了家。最后兄弟俩成长之后,复仇并建立起了自己的国家——罗马。

罗马的“狼孩建国”雕像

这两兄弟是幸运的,在与狼生活了一段时间以后,仍然能够回归人类文明。但并非所有的狼孩都能像这两位孩子那般幸运,许多狼孩从小与狼生活在一起,长大以后却无法再习得人类的语言,也无法理解人类的社会。同样,曾经有一位名叫吉妮的美国儿童出生后的第20个月起,即被父亲单独囚禁起来,与世隔绝。吉妮于13岁半被人解救出来以后重新学习语言(英语),但至今尚未完全习得。

这说明了,即使是拥有完全一样的生理条件,但是缺少后天的学习和不能适时地学习语言,都会导致“狼孩们”失去习得人类语言的机会。所以,人类的基因中只有学习语言的能力,但本身并不附带任何具体语言的内容。所以每个人从生下来都一样,需要重新去学习语言。但反过来思考,只要具备合适的条件和恰当的学习,那么理解语言是存在可能的。

2.2 通人语的宠物狗

作为人类最好的朋友,狗一直以有灵性著称。特别是从小与主人一起长大的小狗,更是聪明灵俐,对于主人的命令、动作都能理解得非常到位。但这是不是真实的呢?因为心理学史上有一匹著名的很聪明的马,叫做汉斯,它经过训练,可以计算十以内的加减法。但后续的研究表明,汉斯并不是真的会算术,而是通过观察主人的反应,知道跺脚到第几下停止。

同样也有一条小狗 Rico 懂得200多个名词,包括各种物品的名称,也包括颜色、形状等等词汇。但实验表明小狗Rico 是真的能够听懂那些词并且可以通过推断来学习新词。例如,把一个新的黄球和它已经认识的红球和橘色球放在一起,对它说:“把黄球拿过来。”Rico虽然不懂黄球是什么,但它发现,这堆东西中混入了个奇怪的从没见过的东西,因此它推断出,这个大概就是黄球了,于是把它捡了出来,并且在新单词和物品之间建立起联系[4]。

这是因为狗是最早(大概在14000年到16000年前)被人类进行驯化的动物,所以在被驯养期间,它们的生存环境、饮食情况都与人类有非常相近的地方,而且狗从小就会与人进行交互,所以狗的认知体系会与人类有很大部分的重合。在这种情况下,狗做出的一些行为也更容易被人理解,人的一些行为也有可能会被狗理解。

狗的语言学习能力是在众多的动物中独特存在的,它们与人类学习单词时的方式极为相似,即使是人类的近亲—— 猿、猩猩等灵长类,虽然也可以学会很多单词,但它们的学习方式却与人类相差很远,无法用一种被称为“快速映射”的方法进行学习。

所以以上狗的例子说明了,动物如果要理解人类的语言,有了强大的脑子,还不能光在田里奔跑,它需要融入到人类的社会,与人类有直接、强烈的交互,最后才有可能产生像人类一样理解事物、理解语言的认知结构。

2.3 天外飞星

2017年上映的电影《降临》讲的是一群外星生物来到地球,想要给可爱的人类送一份来自未来的礼物,但发现无法与人类沟通,所以一不小心把“礼物”表达成了“武器”,与人类产生了极大误会,最后差点毁掉了人类未来。

《降临》中使用计算机破译外星人的“文字”

但电影的最后还是给出了一个好的结局,两个物种之间实现了文化互通,最后相互拯救。但我觉得电影还是表达得太过于乐观了,在现实中我觉得两个星球之间交流应该会比电影里描述得要更加复杂,因为两种生物在不同的物理条件之下,会有极大的初始条件和发展路径的不同,这种情况下演变出来的社会和文化,会与地球上有极大的不同。这其中的差距恐怕比人与狗之间的差距还要大得多得多吧。

但也不是完全没有可能,我们要在沟通时抓住一些宇宙间的共识。比如宇宙中的生命都需要能量,生命都需要生存,双方都有身体的存在必要性等。基于共识的基础去沟通和交流,才有可能产生理解。

这就像来自不同地区的人类,想要相互理解对方,也要从各自的认知体系进行入手。比如对于一个施行天葬的藏族同胞来说,他看到文字“老王拿着锄头要埋葬他的宠物”,就会感觉到奇怪,埋葬一具动物的尸体为什么要拿着锄头。而你需要告诉他的是,土葬也是一种处理死亡尸体的方法,而这种方法需要把尸体放在地下,所以需要拿着锄头去挖出坑来。

只有通过对方之前就能理解的事实来去解释另外一个事实,才能让不同文化的人去真正地理解一个他们之前从来没有遇到过的事实。

所以这也表明了,理解人类的一句话是需要调用自己大量之前学习到的生活常识的。有共同的常识基础,可以帮助人更快地理解语言表达的场景。一旦缺乏更多的上下文辅助、缺乏常识,会使得这个场景很迷糊,只有通过摄入足够多的辅助性事实才可以帮助人越来越精确地理解场景。

3 那计算机呢?

以上说了各种人、狗、兽、外星人,那么计算机到底能不能理解语言呢?

3.1 什么是理解

我认为“理解”是指两个或两个以上的人对同一事物形成了共识。比如有一张被许多人认为上面是小猫的照片,而另外一个人 A 也认为这是一张小猫的照片。那么我们可以说,A 理解了这张照片的内容。

如果要从一个更具体的角度来讲就是,几个人看了同一个东西,能激活相类似的大脑区域就算是理解了。

当看到同一张图片时,两个人的脑部 fMRI 图中激活了相似的区域

对于人,我们可以用脑部 fMRI 图来进行理解,那么对于其他物种我们怎么去理解“共识”?当人与狗同时看到一只球的时候,我们怎么定义它们都知道的是同一个东西?

当人、狗、电脑看到一只篮球时,他们的“脑”中会产生什么?

上图中人脑、狗脑、电脑,三种脑看到一只篮球后,产生的大脑激活图像和映射成的一串数字,他们之间到底是否可能存在着等价关系?这也就是说,狗和电脑是否能在看到篮球之后,真正地与人类一样理解眼前圆乎乎的是一个什么东西,是否能理解它是一只用牛皮制作的拍打能跳起来的物体?

但我只能说这三样东西都跟目前的神经网络一样,是一个不折不扣的黑箱。没有人知道其中一个部位亮起来会怎么样,也没有人知道其中的一段数字10010101意味着什么。所以很遗憾,我们无法直接比较他们之间的等价关系,无法判断两者之间是否真的产生了共识。

3.2 如何校验与产生理解?

如果我们无法从两个系统的内部状态来推知其等价性,那么只有可能从外部探究系统的等价性了。

DeepMind 的文章[5]中提出了使用认知科学的方法来探究神经网络黑箱的方法。对于一个已有的物体识别神经网络,作者设计了许多图形探测物(Probe),用于测试神经网络在图像识别上的偏好。

通过图形探测物测试神经网络在图像识别上的偏好

如上图所示,数据包含三列,第一列是颜色匹配(Colour Matching)图像,第二列是形状匹配(Shape Matching)图像,第三列是探测物图像(Probe)。通过计算探针图像被神经网络识别成哪一类,我们可以用来测算神经网络在识别时,对于图像特征的识别偏好。根据测试,当神经网络被测试了10-20万次之后,会有大约80%的几率会将探测物图像分类到“形状匹配”这一列中。

从这个测试中,我们可以看到,训练好的神经网络更倾向于使用形状这个维度去识别物体,而不是倾向于使用纹理及颜色。

所以图像识别的黑箱可以被图像的探测物来探究系统内部识别物体的原理,当然我们也有可能使用语言问题作为探测物去探究系统内部的样子。

在一篇文章[6]中,作者建立了一个虚拟的游戏环境(Task & Talk)和训练了一个神经网络系统用于识别物体和产生语言(训练、测试、可视化的代码可以在作者的 Github 上看到 )。在这个虚拟环境中,有一个问问题的机器人 Q 和一个回答问题的机器人 A,机器人 A 能够看到由各种颜色、形状和风格组成的物体,而机器人 Q 什么也看不见,Q 只能问机器人 A 问题,然后通过 A 的回答中猜测 A 看到的到底是什么东西。

虚拟环境中,机器人 Q 和 A 的训练过程

如上图所示,机器人 A 可以看到的可能的物体(Instance)属性——形状、颜色、风格,总共4x4x4=64种。而机器人 B 可以执行的任务(Task)每次只能询问两个属性,比如“颜色和形状是什么?”,“形状和风格是什么”等。

每个回合中,机器人 Q 都会带着一个询问任务去询问 A,但对于这个询问任务 Q 与 A 都不知道是什么意思。然后 A 必须要回复一个信息给 B。A 与 B 交流时,只能使用一个特定数量的的词汇表。

机器人 Q 可以与机器人 A 交流两轮,并在最后一轮的时候猜测实际物体到底是什么。如果猜对了,那么 A 与 B 都会获得奖励;如果猜错了,那么 A 与 B 都会受到惩罚。

这个交流的轮回(看物体、交流2轮、最后猜测)会进行50-200次,使得最后猜测的准确率不断增加。最后当系统的准确率稳定之后,系统就生成了一套特定的交流沟通语言。

这个场景可以想象成是原古时候的两个人,都还没有自己的语言。但是有一个原始人 Q 掉在了一个很深的洞里出不来,而另一个原始人 A 在洞外面,外面有许多食物。这时候原始人 Q 想吃洞外的东西,比如说 Q 想吃一根香蕉,就会发出呜呜的声音尝试与 A 交流,而 A 在听到声音之后,会去猜想 Q 想要吃什么,但一开始猜不透,于是拿了一个红苹果给 Q 看,Q 一看,发现不对于是大哭。A 于是知道自己拿错了,于是又回去拿别的水果来给 Q,终于在拿对了香蕉之后,Q 大声欢呼,露出高兴的样子。这样久而久之,两只原始人就产生了对于这几种水果的描述语言,比如短呜一声就是香蕉,长呜一声就是苹果等等。

我们可以看到,机器之间的交互最后形成语言系统的文章,说明了两个或两个以上的机器人在同一认知环境中存在一种协同进化的可能,而语言就是协同进化后的最终结果,用于统一双方的认知。而且还有很重要的一点就是,形成的语言具有“组合性”,因为只有具有组合性才符合人类语言的特性,才有可能进一步进化出更复杂的语言系统。

3.3 人与机器

机器与机器之间可以通过交互试错来形成语言并达成共识,那么人与机器之间应该如何形成共识呢。ACL2016 的一篇文章中[9]设计了一个名叫 SHRDLURN的游戏(Demo/Paper/Code请访问这里)。在这个游戏中,机器并不懂人类语言,在语言不通的情况下,要人类使用自然语言,让计算机完成特定的任务——挪方块。只有人类这方可以知道方块需要达到的状态,机器是不知道的。

SHRDLURN

所以每当机器看到人类的语言时,它都会做出一些它觉得“最正确”的反应(但一开始往往有很大概率是错的),然后人类可以通过交互去教它做出正确的行为。最后机器会越来越理解人类的语言,甚至也能理解人类语言中“组合性”的存在。

4 未来的理解之路

4.1 构建虚拟的认知世界

从上面的说明中,我们可以看到不管是人还是机器,学习语言都会是一个不断尝试、共同进化的过程,语言因为交流而存在。但这要建立在双方能够有相互理解的认知世界的基础上,例如 Q、A 机器人必须要理解什么是“蓝方块”,“红圈圈”,从而能够从认知中修正语言,最后准确地传递认知;又比如说,SHRDLURN 游戏中的机器人和交互的人都需要通过同一个认知世界来理解什么是“将黄方块加在蓝方块之上”的行为和结果。

当然,一些实体、行为在机器的认知世界中能够容易地创造出来,而且以上的事实也证明了计算机有理解和表达这些实体、行为的能力,但是难点是对于一些虚拟的概念,比如“家庭”、 “社会”、“拉肚子”、“思考”,这些概念就很难在虚拟世界中构造出来,再有就是一些包含了时间这个维度的词语,“以前”、“将来”等等,如何构造一个环境能够让机器去理解它们,可能是未来需要研究的点。或许未来能够真正理解自然语言的程序会是像《模拟人生》这么一款游戏。

再有就是,机器人如何能在其认知世界中,形成推理。比如方位推理——“红色的方块在蓝色方块的上面,那么什么颜色的方块在红色方块的下面?”,时间推理——“这一周我都在公司上班,请问我周一在干什么”,这都需要认知世界的存在与基于认知世界的推理才有可能。

回头看看目前的主流自然语言处理方法中,主要使用了统计方法来形成了语言模型(Language Model)。在语言模型中,我们认为一个字的出现是与其上下文有关系的。比如用户说“我要上洗手____”,最后一个字的出现就可以被唯一确定为“间”字,因为通过统计发现99%的“上洗手”后面都会跟着一个“间”字。这被称为序列语言模型。

又比如,科大讯飞在公开声明中公布其阅读模型已经在医学实务考试中超越人类的平均分数。但是其真的与人一样具备了阅读、理解甚至推理的能力了吗?其实并没有,它只是一个使用了语言模型的概率选择填空游戏而已。

又比如,在我们法狗狗所在的法律推理领域,有些时候并不一定需要使用一个完全的认知世界模型,因为在法律中的概念都是一些联系着大量社会、文化概念的,我们无法立即模拟出来。虽然无法做到对虚拟概念的真正映射,但对于虚拟概念的推理,却有着大量的法律法规可以来去做一些法理逻辑上的推演,最后可以计算是否存在逻辑上的合理或不合理。所以对于一些狭窄的语言推理应用,并不一定需要一个庞大的 Grounded World(映射到真实的世界中)来去实现推理,可以把真实世界的模型精简精简,最后精简成一个足够完善的符号推理世界可能就能完成所有需求。

但最终,人类的理解都是落在人类对于世界的理解之上的,所以只有通过对人类文明、物理世界不断地建模,才有可能使得机器真正地理解语言。

抱歉,篇幅受限,只节选一部分,更多讨论的内容无法展示,可以到我的GitChat上面看到全文(如何构造真正理解语言的机器 )。 如何构造真正理解语言的机器

参考

[1] 人类简史 P23-P24

[2] 子非鱼,安知鱼之乐?——我们如何知道动物在想什么

[3] Dog Emotion and Cognition — Coursera

[4] 狗能听懂人说话吗?—— 像幼儿一样学话

[5] Cognitive Psychology for Deep Neural Networks: A Shape Bias Case Study

[6] Natural Language Does Not Emerge ‘Naturally’ in Multi-Agent Dialog

[7] Emergence of Grounded Compositional Language in Multi-Agent Populations

[8] Learning Cooperative Visual Dialog Agents with Deep Reinforcement Learning

[9] Learning Language Games through Interaction

如何构造真正理解语言的机器相关推荐

  1. 本周六与您相约 | 计算未来轻沙龙:让机器拥有理解语言的能力

    国庆长假转眼就过去了 你是不是死活找不回学习状态? 惊闻!有人在你畅饮肥宅快乐水之际 已经默默投出了又一篇论文-- 短短短的假期,也在不停赋能充电 怎么样,是不是有点心慌? 要是还不足以帮你克服长假综 ...

  2. [我们是这样理解语言的-2]统计语言模型

    [我们是这样理解语言的-2]统计语言模型 2015/02/28 搜索技术.自然语言处理 LM.n-gram.NLP.统计语言模型.自然语言处理.语言模型 fandywang 记得最早学习语言模型是在研 ...

  3. GPT-2仅是“反刍”知识,真正理解语言还要改弦更张

    作者 | Gary Marcus 译者 | 泓技 编辑 | 夕颜 出品 | AI科技大本营(ID:rgznai100) [导读]OpenAI的GPT-2正被广泛地讨论,无论是<纽约客>还是 ...

  4. AI 的下一个重大挑战:理解语言的细微差别

    简评:人类语言非常博大精妙,同一句话在不同的语境下,就有不同的含义.连人类有时候都不能辨别其中细微的差别,机器能吗?这就是人工智能的下一个巨大挑战:理解语言的细微差别.本文原作者是 Salesforc ...

  5. 文末送书丨深度解读,人是如何在一瞬间理解语言的?

    大家好我是崔庆才. 今天发的这篇分享是来自于我的一位指导老师同时也是我的非常好的朋友 -- 宋睿华博士在智源大会上关于<我们赖以生存的意义和超大规模多模态预训练>的报道. 宋老师是我之前在 ...

  6. 专访路彦雄:理解语言其实还是很难的

    点击关注 异步图书,置顶公众号 每天与你分享 IT好书 技术干货 职场知识 异步社区招募书评人,[异步图书微信公众号]后台回复"书评"免费读新书 路彦雄,西安电子科技大学硕士毕业, ...

  7. 【机器学习】R语言进行机器学习方法及实例

    R语言进行机器学习方法及实例 机器学习的研究领域是发明计算机算法,把数据转变为智能行为.机器学习和数据挖掘的区别可能是机器学习侧重于执行一个已知的任务,而数据发掘是在大数据中寻找有价值的东西. 机器学 ...

  8. 【学习笔记】人工智能哲学研究:《心智、语言和机器》

    关于人工智能哲学,我曾在这篇文章里 [脑洞大开]从哲学角度看人工智能:介绍徐英瑾的<心智.语言和机器> 做过介绍. 图片来源:http://product.dangdang.com/294 ...

  9. 独家 | 混乱的句子表明AI仍然不能真正理解语言

    作者:Will Douglas Heaven 翻译:王可汗 校对:和中华 本文约1200字,建议阅读8分钟 最新的研究结果表示,自然语言处理尽管在GLUE上取得好成绩,但仍然无法达到真正理解自然语言. ...

最新文章

  1. jq append添加的元素click获取不到的解决方法
  2. zz职位是有负面作用的
  3. [SOJ] connect components in undirected graph
  4. PicGo五分钟打造你的私人图床(稳定、快速、免费)
  5. python求取列表中的质数
  6. python字符串常见操作
  7. linux 系统显示很大,在Linux中可视化显示内存占用情况的方法
  8. 12009.IMU惯导传感器
  9. 你如何在PowerShell中注释掉代码?
  10. 整数实例hdu2041(超级楼梯)
  11. [转载]Yahoo!的分布式数据平台PNUTS简介及感悟
  12. oracle获取表或视图的字段名、数据类型、注释
  13. 2021年下半年信息安全工程师上午真题及答案解析
  14. 常用参考文献GB/T 7714, MLA ,APA格式区别
  15. 使用FFmpeg命令合并音视频
  16. 网页去广告服务器,使用 AdGuardHome,实现网页加速和去广告
  17. C语言编程>第二十三周 ② 请补充fun函数,该函数的功能是:交换数组a中最大和最小两个元素的位置,结果重新保存在原数组中,其它元素位置不变。注意数组a中没有相同元素。
  18. USB(九)2022-03-01
  19. 5、异步流(Asynchronous Flow)
  20. javaweb基于JSP开发辛馨墙衣壁纸企业官网宣传网站系统+全套文档+PPT 毕业设计 课程设计 大作业源码

热门文章

  1. Oracle存储过程学习
  2. 机器学习的核心概念置信度和置信区间,我用这个例子把它讲明白
  3. 我是如何建立一个Google代理搜索服务(GuSou)的
  4. (1-2)Unity3D/2D:Sprite Renderer组件详解
  5. python笔记_第三周
  6. 2021-2025年中国防火门行业市场供需与战略研究报告
  7. 解决联想710s更换nvme协议固态后重装系统出现蓝屏代码inaccessible_boot_device无限重启问题
  8. 按钮计算机,计算机按钮,counter knob,音标,读音,翻译,英文例句,英语词典
  9. KOF拳皇游戏(JS游戏)
  10. python使用scipy报错:“ImportError: DLL load failed: 找不到指定的模块”的解决方案