计算机能否真正理解人类语言?目前还无法理解语言的原因是什么?

本题已收录至知乎圆桌:机器之能 X 语言之美,更多「人工智能」相关话题欢迎关注讨论。理论上最终能理解,但现在缺乏理论创新?
关注者
294
被浏览
28,366

44 个回答

收录于 编辑推荐知乎圆桌 ·

“理解”是一个很空泛的定义,事实上“人类是否能够真正理解人类语言”这个问题都很难回答。举个例子,诘屈聱牙的尚书中有四个字“曰若稽古” (曰若稽古帝尧曰放勋, 尚书 尧典)。到底这是什么意思?是“顺从古代人的意思”,还是“从古籍中查考”?据说有人写了三万字来解释这四个字。信息从发言者的大脑中经过编码,书写,传递,阅读,其实是一个有损的过程。用文字完整地表达一个意思是极其困难的,更不用说理解了。理解一句话往往需要大量的背景知识和当时的环境知识,上下文知识等等。比如,“把书包放回去”,这一句简单的话,我们需要知道场景中有几个书包,如果有几个书包,那么说话者是对谁说的?“回”是回到哪里去?这些都是通过上下文,背景知识与环境知识才能够解答的问题。因此,为了执行这一个特定任务,就需要各种知识的表示——目前人类的计算机水平还没有达到能够全面表示这些知识并加以利用的地步。


如果我们从“完成任务”这个角度看这个问题,那么计算机是否理解人类语言的评价标准就应该是计算机是否能够从语言中获得完成任务所需要的信息并正确地执行这个任务。在这个标准下,理解就是任务相关的——理解到什么程度,需要多少世界知识等,都是由任务的特性决定的。例如,心理咨询与控制空调这两个任务其需求大不相同。计算机恐怕无法理解心理咨询中的语言,但是控制空调这个任务下,计算机理解人类语言绰绰有余。一些通用的任务,例如对话系统,对语言理解的要求很高。另一些任务,例如机器翻译,往往不需要太深入的语言理解就能够达到较好的效果。

收录于 知乎圆桌 ·

语言是人类交流的重要方式。通过语言,我们可以向他人传达信息,表达自己的想法 ,或者让别人做些什么。正因为语言,我们才拥有抽象思考和推理的能力。因此,自然语言与我们的认知和情感过程密切相关。

对于某些任务,计算机表面上可以完成的和人类一样好。但事实上,它们处理信息的方式,和我们截然不同。对计算机而言,理解人类语言是一个需要额外学习才能处理的任务,而不是计算矩阵这种,它们天生就擅长的东西。整个自然语言处理领域在做的事情,就是用算法结构(或近几年来开始流行的机器学习)的角度,解析语句结构、分析句子的情绪,或翻译为其他语言等。

计算机理解自然语言最大的一个障碍,就是自然语言缺乏“精确定义的结构”。当然, 每种语言都有自己的语法规范,但人类的日常对话非常复杂,难以严格定义。我们有数不清的方式,来表达同一件事情。用计算机可以理解的严格规则,将所有这些方式都记录下来,几乎是不可能的任务。

更具体地说,要理解人类语言,需要事先储备很多背景信息,并且经常需要用到常识。举个例子,这句话:

“The sofa didn't fit through the door because it was too narrow.” “这个沙发过不去这扇门,因为它太窄了。”

这里,我们知道“it”(它)指的是门,是门太窄了。但如果我们稍稍改变一下说法,只替换一个词:

“The sofa didn't fit through the door because it was too wide.” “这个沙发过不去这扇门,因为它太宽了。”

在这句话中,“it”(它)则指的是沙发,而不是门。哪怕是这样一个简单的句子,要理解它,我们也用到了有关物体大小的物理知识:也就是更宽的东西不能穿过更窄的东西。要让计算机理解这一点,我们需要把这个常识编码到它的“脑袋”里,而且它能在恰当的时候使用。但我们还没有很好的办法。因此,要让计算机正确理解任意一个句子,是非常困难的。

既然理解人类语言这么难,那么计算机可以做些什么?首先,我们需要回过头去想想 ,“理解一个句子的含义”,到底是指什么?我们常常会把“含义”这个词,理解成一个有 标准答案的东西。但实际上,一句话对于我们的含义,与我们的自身经历,以及我们 如何把新概念与自己已知的概念相类比密切相关。例如,我们会把“derivative(导数)”想成一个函数在某一点的斜率;或者把“Atom”(原子)想成一个圆形的粒子,很多更小的粒子绕着它运动。有些类比较为准确,有些则不那么准确,但说到底,它们都是模型。所以,理解一句话的含义的过程,也可以被认为是构建模型的过程。

这个模型不需要很完美,只需要对眼前的使用场景足够精确就可以了。我们可以把自然语言处理的过程,仍然看成一个普通的计算任务,只需要定义一个模型,然后用机器学习算法,迭代地训练计算机来执行该任务。例如,识别垃圾邮件就可以被当作一 个分类任务。其中,邮件是输入,“是垃圾邮件”或“不是垃圾邮件”的标签是输出;再例如,机器翻译可以被当作一个序列到序列预测任务;而语言的情绪分析,则需要同时用到分类和回归。

但使用这种方式有一个缺点,就是我们无法知道计算机得到最终结果的具体步骤,也就无法知道它是否真地理解了句子。大多数情况下,人们更在乎结果的准确率,不在乎计算机是否真地理解。但一些研究者也开始设计一些工具,可以更好地分析机器学习(入门)系统,分析算法在训练/学习过程中是如何构建结构和模型的。