在让机器「读懂」自然语言之前,人们走过哪些弯路?

摘要

让计算机理解自然语言这件事情上,人们曾经走了长达几十年的弯路。

 编者注:本文节选自《数学之美》,作者吴军曾在《后记》中说,世上最好的学者总是有办法深入浅出地把大道理讲给外行听,而不是故弄玄虚将简单的问题复杂化。所以,他写书的目的在于讲述在实际问题背后,简单而直接的数学模型。

如今但我们大谈人工智能、语音助手等不断更新的技术时,不妨从最简单、最基本的地方出发,思考各类火热的现象。以下文字摘选自《数学之美》的第二章:《自然语言处理——从规则到统计》,有删减。


1946 年,现代电子计算机出现以后,计算机在很多事情上做得比人还好。既然如此,机器能不能懂得自然语言呢? 事实上,计算机一出现,人们就开始琢磨这件事。这里面涉及到两个认知方面的问题,第一,计算机能否处理自然语言;第二,如果能,那么它处理自然语言的方法是否和人类一样,这也是本书要回答的两个问题。这里先给出简洁版的答案。对这两个问题的回答都是肯定的,Yes!

语言处理 60 多年的发展过程,基本上可以分成两个阶段。早期的 20 多年,即从 20 世纪 50 年代到 70 年代,是科学家们走弯路的阶段。全世界的科学家对计算机处理自然语言的认识都局限在人类学习语言的方式上,也就是说,用电脑模拟人脑,这 20 多年的成果近乎为零。

图灵测试.png

(图灵测试:如果人无法判断自己交流的对象是人还是机器,就说明这个机器有智能。图灵测试只是留下一个问题,而非答案)

直到 20 世纪 70 年代,一些自然语言处理的先驱开始重新认识这个问题,找到了基于数学模型和统计的方法,自然语言处理进人第二个阶段。30 多年来,这个领域取得了实质性的突破,自然语言处理也在很多产品中得到广泛应用。虽然早期自然语言处理的工作对今天没有任何指导意义,但是回顾几代科学家的认识过程,对我们了解自然语言处理的方法很有好处,同时避免重走前人的弯路。

误区:用电脑模拟人脑

最早的时候,全世界对自然语言处理的研究都陷入一个误区。

当时,学术界对人工智能和自然语言理解的普遍认为:要让机器完成翻译或者语音识别等只有人类才能做的事情,就必须先让计算机理解自然语言,而做到这一点就必须让计算机拥有类似我们人类这样的智能。(今天几乎所有的科学家都不再坚持这一点,而很多门外汉还误以为计算机是靠类似我们人类的这种智能解决了上述问题。)

为什么会有这样的认识? 是因为人类就是这么做的,道理就这么简单。对于人类来讲,一个能把英语翻译成汉语的人,必定能很好地理解这两种语言。这就是直觉的作用。在人工智能领域,包括自然语言处理领域,后来把这样的方法论称作「鸟飞派」。也就是看看鸟是怎样飞的,就能模仿鸟造出飞机,而不需要了解空气动力学。

事实上我们知道,怀特兄弟发明飞机靠的是空气动力学而不是仿生学。在这里,我们不要笑话我们前辈来自于直觉的天真想法,这是人类认识的普遍规律。今天,机器翻译和语音识别已经做得不错,并且有上亿人使用过,但是这个领域之外的大部分人依然错误地以为,这两种应用是靠计算机理解了自然语言才实现的。事实上,它们全都靠得是数学,更准确地说是靠统计。

60 年代,摆在科学家面前的问题是怎样才能理解自然语言。当时普遍的认识是首先要做好两件事,即分析语句和获取语义,这实际上又是惯性思维的结果——它受到传统语言学研究的影响。

屏幕快照 2016-04-04 下午4.31.59.png

早期对于自然语言处理的理解

从中世纪以来,语法一直是欧洲大学教授的主要课程之一,到 16 世纪,伴随着《圣经》被翻译介绍到欧洲以外的国家,这些国家的语言语法逐步得到完善。到 18、19 世纪,西方的语言学家们已经对各种自然语言进行了非常形式化的总结,这方面的论文非常多,形成了十分完备的体系,学习西方语言,都要学习语法规则 (Grammar Rules)、词性 (part of Speech) 和构词法 (Morphologie) 等。当然,应该承认这些规则是我们人类学习语言(尤其是外语)的好工具。而恰恰这些语法规则又很容易用计算机的算法描述,这就更坚定了大家对基于规则的自然语言的处理的信心。

传统自然语言分析带来的问题

那时,科学家们设计了一些非常简单的自然语句的文法分析器 (Parser),可以分析词汇表为百十来个词、同时长度为个位数的简单语句 (不能有很复杂的从句)。

科学家们原本以为随着对自然语言语法概括得越来越全面,同时计算机的计算能力的提高,这种方法可以逐步解决自然语言理解的问题。但是这种想法很快遇到了麻烦。这里面至少有两个越不过去的坎儿。首先,要想通过文法规则覆盖哪怕 20% 的真实语句,文法规则的数量 (不包括词性标注的规则)也至少是几万条。语言学家几乎已经是来不及写了,而且这些文法规则写到后来甚至会出现矛盾,为了解决这些矛盾,还要说明各个规则特定的使用环境,如果想要覆盖 50% 以上的语句,文法规则的数量最后会多到每增加一个新句子,就要加入新的文法。

这种现象不仅出现在计算机处理语言上,而且出现在人类学习和自己母语不同语系的外语时。

今天 30 岁以上的人会有这种体会,无论在中学和大学英语考试成绩多么好,也来必能考好 GRE,更谈不上看懂英文的电影。原因就是我们即使学了 10 年的英语语法,也不能涵盖全部的英语。

其次,即使能够写出涵盖所有自然语言现象的语法规则集合,也很难用算机来解析。描述自然语言的文法和计算机高级程序语言的文法不同。

自然语言在演变过程中,产生了词义和上下文相关的特性。因此,它的文法是比较复杂的上下文有关文法 (Context Dependent Grammar),而程序语言是我们人为设计的、便于计算机解码的上下文无关文法(Context Independent Grammar),相比自然语言简单得多。理解两者的计算量不可同日而语。

在计算机科学中,图灵奖得主高德纳 (Donald Knuth) 提出了用计算复杂度来衡量算法的耗时。对于上下文无关文法,算法的复杂度基本上是语句长度的二次方;而对于上下文有关文法,计算复杂度基本上是语句长度的六次方。也就是说,长度同为 10 的程序语言的语句和自然语言的语句,计算机对它们进行文法分析 (Syntactic Parsing) 的计算量,后者是前者的一万倍。而且随着句子长度的增长,二者计算时间的差异会以非常快的速度扩大。即使今天,有了很快的计算机 (英特尔 i7 四核处理器),分析上面这个二三十个词的句子也需要两分钟的时间。因此,在 20 世纪 70 年代,即使是制造大型机的 IBM 公司,也不可能采用规则的方法分析一些真实的语句。

上个世纪 70 年代,基于规则的语句分析 (包括文法分析或者语义分析)就走到了尽头。而对于语义的处理则遇到了更大的麻烦。

首先,自然语言中词的多义性很难用规则来描述,而是严重依赖于上下文,甚至是常识。1966 年,著名人工智能专家明斯基 (前文提到的达特茅斯会议的发起者之一) 举了一个简单的反例,说明计算机处理语言的难处。「The pen is in the box,The box is in the pen 」中两个 pen 的区别。第一句话很好理解,学过半年英语的学生都懂。但是第二句话则会让外国人很困惑,为什么盒子可以装到钢笔里? 其实,第二句话对于英语是母语的人来讲很简单,因为这里 pen 是围栏的意思。整句话翻译成中文就是:盒子在围栏里。这里面 pen 是指钢笔还是围栏,通过上下文已经不能解决,需要常识,具体来说就是「钢笔可以放到盒子里,但是盒子比钢笔大,所以不能放到钢笔里。」这是一个很简单的例子,但清晰地说明了当时自然语言处理研究方法上存在的问题。

1966 年的明斯基已经不是十年前那个默默无名的年轻人了,而是当时世界上数一数二的人工智能专家。他的意见对美国政府的科技决策部门产生了重大影响,自然科学基金会等部门对传统的自然语言处理研究非常失望,以至于在较长时间里对这方面的研究资助大大减少。可以说,利用计算机处理自然语言的努力直到 20 世纪 70 年代初是相当失败的。

统计使自然语言处理获得新生

1970 年以后统计语言学的出现使得自然语言处理重获新生,并取得了今天的非凡成就。推动这个技术路线转变的关键人物是弗里德里克·贸里尼克 (Frederick Jelinek) 和他领导的 IBM 华生实验室(T.J.Watson)。最初,他们也没有想解决整个自然语言处理的各种问题,而只是希望解决语音识别的问题。采用基于统计的方法,IBM 将当时的语音识别率从 70% 提升到 90%,同时语音识别的规模从几百单词上升到几万单词,这样语音识别就有了从实验室走向实际应用的可能。

IBM 华生实验室的方法和成就在自然语言处理界引发了巨大震动。后来成为 IBM 和 Google 主管研究的副总裁阿尔弗雷德·斯伯格特 (AlfredSpector) 博士,当时还是卡内基梅隆大学教授,他 2008 年到 Google 上任后第一次和我单独面谈时,聊起当年这个转变的过程。他说,当年卡内基梅隆大学已经在传统的人工智能领域走得非常远了,大家遇到了很多跨不过去的障碍,后来他去 IBM 华生实验室参观,看到那里基于统计的方法取得的巨大成绩,连他一个做系统出身的教授也能感受到今后在这个领域研究方法一定要变化。李开复修过他的课,算是他的学生,也是卡内基梅隆大学最早从传统自然语言处理方法转到基于统计方法的研究者。李开复和洪小文出色的工作,帮助他们的论文导师拉杰·雷迪 (Raj Reddy) 获得了图灵奖。

作为世界上两个顶尖公司的研究部门第一把手的斯伯格特,对未来研究方向的判断非常敏锐,当时能看出这一点并不奇怪。但是,并非所有的研究者都认可这个方向。基于规则的自然语言处理和基于统计的自然语言处理的争执后来还持续了 15 年左右,直到上个世纪 90 年代初。这期间,两路人马各自组织和召开自己的会议。如果在共同的会议上,则在各自的分会场开小会。到 90 年代以后,坚持前一例方法的研究人员越来越少,参会人数自然也越来越少,而后者却越来越多。这样,自然语言处理从规则到统计的过渡就完成了。

15 年,对于一个学者来讲是一段非常长的时间,如果哪个人从做博士开始就选错了方向并且坚持错误,到 15 年后发现时,基本上这一辈子可能就一事无成了。

最新文章

极客公园

用极客视角,追踪你最不可错过的科技圈。

极客之选

新鲜、有趣的硬件产品,第一时间为你呈现。

顶楼

关注前沿科技,发表最具科技的商业洞见。