计算机能否真正理解人类语言？目前还无法理解语言的原因是什么？
在讨论机器是否“理解”语言之前，我们可以内省一下自己是如何学习和理解自己的母语的？“大漠孤烟直，长河落日圆” 简单的一句话，描绘了一幅苍茫的大漠晚霞，却引起了人们对社会、国家、民族的无限瑕想，语言到底是什么，为何能简短地表达出如此多的内容？ 许多生物都会使用身体语言（行为、声音、光）来向第三方表达自己的认知状态。一头狼在发现猎物时，会用嚎叫的方式呼唤同伴；一条狗在看到主人归来的时候，会欢快地摇摆尾巴表达内心的兴奋。蚂蚁与蜜蜂会有一套极其精密沟通方式，来相互获知食物的所在; 一些近似于人类的动物如青猴[1]，也可以使用与人类类似的方式——喊叫来发声提醒同伴区分到底是老鹰还是狮子来袭。 这些动物似乎都在一定程度上拥有自己的交流能力，但人类的语言却是有别于这些动物的，因为人类的语言能够更高效、更灵活、更精确地表达认知。人类的语言能够自由地组合，精确地描述某一种状态，如“门前的大桥的桥洞下有十只鸭子”，表示的就是门前的大桥下的桥洞下游过鸭子的景象。这种语言能力是目前其他动物难以具备，也难以理解的。 如果说我们看不到现在有哪台机器可以真正地理解人的语言，那么其他的拥有完美大脑的生物是否能理解人类的语言呢？ 罗马广场上有一座著名的雕像，描述的是一个传说。两个孪生兄弟被残暴的国王叔叔下令仆人把他们扔到河里杀死，仆人把他们挂在河边的树上想要把他们淹死，但却被一只母狼救下，用自己的奶喂养他们长大，最后被一位牧人发现并带回了家。最后兄弟俩成长之后，复仇并建立起了自己的国家——罗马。 这两兄弟是幸运的，在与狼生活了一段时间以后，仍然能够回归人类文明。但并非所有的狼孩都能像这两位孩子那般幸运，许多狼孩从小与狼生活在一起，长大以后却无法再习得人类的语言，也无法理解人类的社会。同样，曾经有一位名叫吉妮的美国儿童出生后的第20个月起，即被父亲单独囚禁起来，与世隔绝。吉妮于13岁半被人解救出来以后重新学习语言（英语），但至今尚未完全习得。 这说明了，即使是拥有完全一样的生理条件，但是缺少后天的学习和不能适时地学习语言，都会导致“狼孩们”失去习得人类语言的机会。所以，人类的基因中只有学习语言的能力，但本身并不附带任何具体语言的内容。所以每个人从生下来都一样，需要重新去学习语言。但反过来思考，只要具备合适的条件和恰当的学习，那么理解语言是存在可能的。 作为人类最好的朋友，狗一直以有灵性著称。特别是从小与主人一起长大的小狗，更是聪明灵俐，对于主人的命令、动作都能理解得非常到位。但这是不是真实的呢？因为心理学史上有一匹著名的很聪明的马，叫做汉斯，它经过训练，可以计算十以内的加减法。但后续的研究表明，汉斯并不是真的会算术，而是通过观察主人的反应，知道跺脚到第几下停止。 同样也有一条小狗 Rico 懂得200多个名词，包括各种物品的名称，也包括颜色、形状等等词汇。但实验表明小狗Rico 是真的能够听懂那些词并且可以通过推断来学习新词。例如，把一个新的黄球和它已经认识的红球和橘色球放在一起，对它说：“把黄球拿过来。”Rico虽然不懂黄球是什么，但它发现，这堆东西中混入了个奇怪的从没见过的东西，因此它推断出，这个大概就是黄球了，于是把它捡了出来，并且在新单词和物品之间建立起联系[4]。 这是因为狗是最早（大概在14000年到16000年前）被人类进行驯化的动物，所以在被驯养期间，它们的生存环境、饮食情况都与人类有非常相近的地方，而且狗从小就会与人进行交互，所以狗的认知体系会与人类有很大部分的重合。在这种情况下，狗做出的一些行为也更容易被人理解，人的一些行为也有可能会被狗理解。 狗的语言学习能力是在众多的动物中独特存在的，它们与人类学习单词时的方式极为相似，即使是人类的近亲—— 猿、猩猩等灵长类，虽然也可以学会很多单词，但它们的学习方式却与人类相差很远，无法用一种被称为“快速映射”的方法进行学习。 所以以上狗的例子说明了，动物如果要理解人类的语言，有了强大的脑子，还不能光在田里奔跑，它需要融入到人类的社会，与人类有直接、强烈的交互，最后才有可能产生像人类一样理解事物、理解语言的认知结构。 2017年上映的电影《降临》讲的是一群外星生物来到地球，想要给可爱的人类送一份来自未来的礼物，但发现无法与人类沟通，所以一不小心把“礼物”表达成了“武器”，与人类产生了极大误会，最后差点毁掉了人类未来。 但电影的最后还是给出了一个好的结局，两个物种之间实现了文化互通，最后相互拯救。但我觉得电影还是表达得太过于乐观了，在现实中我觉得两个星球之间交流应该会比电影里描述得要更加复杂，因为两种生物在不同的物理条件之下，会有极大的初始条件和发展路径的不同，这种情况下演变出来的社会和文化，会与地球上有极大的不同。这其中的差距恐怕比人与狗之间的差距还要大得多得多吧。 但也不是完全没有可能，我们要在沟通时抓住一些宇宙间的共识。比如宇宙中的生命都需要能量，生命都需要生存，双方都有身体的存在必要性等。基于共识的基础去沟通和交流，才有可能产生理解。 这就像来自不同地区的人类，想要相互理解对方，也要从各自的认知体系进行入手。比如对于一个施行天葬的藏族同胞来说，他看到文字“老王拿着锄头要埋葬他的宠物”，就会感觉到奇怪，埋葬一具动物的尸体为什么要拿着锄头。而你需要告诉他的是，土葬也是一种处理死亡尸体的方法，而这种方法需要把尸体放在地下，所以需要拿着锄头去挖出坑来。 只有通过对方之前就能理解的事实来去解释另外一个事实，才能让不同文化的人去真正地理解一个他们之前从来没有遇到过的事实。 所以这也表明了，理解人类的一句话是需要调用自己大量之前学习到的生活常识的。有共同的常识基础，可以帮助人更快地理解语言表达的场景。一旦缺乏更多的上下文辅助、缺乏常识，会使得这个场景很迷糊，只有通过摄入足够多的辅助性事实才可以帮助人越来越精确地理解场景。 以上说了各种人、狗、兽、外星人，那么计算机到底能不能理解语言呢？ 我认为“理解”是指两个或两个以上的人对同一事物形成了共识。比如有一张被许多人认为上面是小猫的照片，而另外一个人 A 也认为这是一张小猫的照片。那么我们可以说，A 理解了这张照片的内容。 如果要从一个更具体的角度来讲就是，几个人看了同一个东西，能激活相类似的大脑区域就算是理解了。 对于人，我们可以用脑部 fMRI 图来进行理解，那么对于其他物种我们怎么去理解“共识”？当人与狗同时看到一只球的时候，我们怎么定义它们都知道的是同一个东西？ 上图中人脑、狗脑、电脑，三种脑看到一只篮球后，产生的大脑激活图像和映射成的一串数字，他们之间到底是否可能存在着等价关系？这也就是说，狗和电脑是否能在看到篮球之后，真正地与人类一样理解眼前圆乎乎的是一个什么东西，是否能理解它是一只用牛皮制作的拍打能跳起来的物体？ 但我只能说这三样东西都跟目前的神经网络一样，是一个不折不扣的黑箱。没有人知道其中一个部位亮起来会怎么样，也没有人知道其中的一段数字10010101意味着什么。所以很遗憾，我们无法直接比较他们之间的等价关系，无法判断两者之间是否真的产生了共识。  如果我们无法从两个系统的内部状态来推知其等价性，那么只有可能从外部探究系统的等价性了。 DeepMind 的文章[5]中提出了使用认知科学的方法来探究神经网络黑箱的方法。对于一个已有的物体识别神经网络，作者设计了许多图形探测物（Probe），用于测试神经网络在图像识别上的偏好。 如上图所示，数据包含三列，第一列是颜色匹配（Colour Matching）图像，第二列是形状匹配（Shape Matching）图像，第三列是探测物图像（Probe）。通过计算探针图像被神经网络识别成哪一类，我们可以用来测算神经网络在识别时，对于图像特征的识别偏好。根据测试，当神经网络被测试了10-20万次之后，会有大约80%的几率会将探测物图像分类到“形状匹配”这一列中。 从这个测试中，我们可以看到，训练好的神经网络更倾向于使用形状这个维度去识别物体，而不是倾向于使用纹理及颜色。 所以图像识别的黑箱可以被图像的探测物来探究系统内部识别物体的原理，当然我们也有可能使用语言问题作为探测物去探究系统内部的样子。 在一篇文章[6]中，作者建立了一个虚拟的游戏环境（Task & Talk）和训练了一个神经网络系统用于识别物体和产生语言（训练、测试、可视化的代码可以在作者的 Github 上看到 ）。在这个虚拟环境中，有一个问问题的机器人 Q 和一个回答问题的机器人 A，机器人 A 能够看到由各种颜色、形状和风格组成的物体，而机器人 Q 什么也看不见，Q 只能问机器人 A 问题，然后通过 A 的回答中猜测 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 大声欢呼，露出高兴的样子。这样久而久之，两只原始人就产生了对于这几种水果的描述语言，比如短呜一声就是香蕉，长呜一声就是苹果等等。 我们可以看到，机器之间的交互最后形成语言系统的文章，说明了两个或两个以上的机器人在同一认知环境中存在一种协同进化的可能，而语言就是协同进化后的最终结果，用于统一双方的认知。而且还有很重要的一点就是，形成的语言具有“组合性”，因为只有具有组合性才符合人类语言的特性，才有可能进一步进化出更复杂的语言系统。 机器与机器之间可以通过交互试错来形成语言并达成共识，那么人与机器之间应该如何形成共识呢。ACL2016 的一篇文章中[9]设计了一个名叫 SHRDLURN的游戏（Demo/Paper/Code请访问这里)。在这个游戏中，机器并不懂人类语言，在语言不通的情况下，要人类使用自然语言，让计算机完成特定的任务——挪方块。只有人类这方可以知道方块需要达到的状态，机器是不知道的。  所以每当机器看到人类的语言时，它都会做出一些它觉得“最正确”的反应（但一开始往往有很大概率是错的），然后人类可以通过交互去教它做出正确的行为。最后机器会越来越理解人类的语言，甚至也能理解人类语言中“组合性”的存在。 从上面的说明中，我们可以看到不管是人还是机器，学习语言都会是一个不断尝试、共同进化的过程，语言因为交流而存在。但这要建立在双方能够有相互理解的认知世界的基础上，例如 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 