另辟蹊径:统计+数据
到了20世纪70年代,人类开始尝试机器智能的另一条发展道路,即采用数据驱动和超级计算的方法,而这个尝试始于工业界而非大学。
在那个年代,IBM在全世界计算机乃至整个IT产业可以说是处于独孤求败的地位。20世纪60年代末,IBM的市值达到500亿美元,这在当时是个很大的数目,占到了美国GDP(国内生产总值)的3%以上。当时,全世界制造大型计算机的只有8家公司,它们被比喻成白雪公主和7个矮人。白雪公主是IBM,7个矮人是其他7家公司。如果将这7家公司的营业额加在一起,再加上当时生产小型机动数字设备公司DEC(美国数字设备公司)和惠普,还不如IBM多,因此IBM快被司法部进行反垄断调查了。这时,IBM考虑的不能再是如何占有更大的市场份额,而是如何让计算机变得更聪明。
1972年,康奈尔大学的教授弗雷德·贾里尼克(Fred Jelinek,1932~2010)到IBM做学术休假20,正好这时IBM想开发“聪明的计算机”,贾里尼克就“临时”负责起这个项目。至于什么是聪明的计算机,当时大家的共识是它要么能够听懂人的话,要么能将一种语言翻译成另一种语言,要么能够赢得了国际象棋的世界冠军。贾里尼克根据自己的特长和IBM的条件,选择了第一个任务,即计算机自动识别人的语音。
在贾里尼克之前,各个大学和研究所的专家们在这个问题上已经花了20多年的时间,主流的研究方法有两个特点,一个是让计算机尽可能地模拟人的发音特点和听觉特征,二是利用人工智能的方法理解人所讲的完整的语句。对于前一项研究,有时又被称为特征提取,各个研究单位都有自己的见解,采用各自不同的方法,很难比较哪一个更好,而且这些和人的发音或者听力相关的特征也很难统一到一个系统中。对于后一项研究,大家采用的方法倒是差不多,具体讲就是传统人工智能的方法,它基于语法规则和语义规则,打一个比方,有点像教大家学外语。在20世纪70年代初,语音识别这个智能问题解决到了什么水平呢?当时最好的语言识别系统大约能够识别百十来个单词,识别率只有70%左右,而且讲话时要口齿清晰,没有噪声。
贾里尼克从来不是一位人工智能专家,他是一位通信专家,因此他看待语音识别问题的角度和先前的计算机科学家们都不相同——在他看来,语音识别不是一个人工智能的问题,而是一个通信问题。
贾里尼克认为,人的大脑是一个信息源,从思考到找到合适的语句,再通过发音说出来,是一个编码的过程,经过媒介(声道、空气或者电话线、扬声器等)传播到听众耳朵里,是经过了一个长长的信道的信息传播问题,最后听话人把它听懂,是一个解码的过程。既然是一个典型的通信问题,就可以用解决通信问题的方法来解决,为此贾里尼克用两个数学模型(马尔可夫模型)分别描述信源和信道。至于计算机识别时需要从语音中提取什么特征,贾里尼克的想法很简单,数字通信采用什么特征,语音识别就采用什么特征。这样,贾里尼克就用当时已经颇为成熟的数字通信的各种技术来实现语音识别,而彻底抛开了人工智能的那一套做法。
正如我们在前面介绍的,找到了数学模型之后,下一步就是要用统计的方法“训练出”模型的参数,这在今天来讲就是机器学习。在这个过程中,需要使用大量的数据,同时要有足够的计算能力。在当时,只有IBM具备这些条件。那时不仅没有互联网上大量的内容,甚至没有很多存在计算机里的文本(又称机读文本),好在IBM有大量的电传文本,这成了IBM语音识别系统使用的最早期的数据。此外,在当时没有第二家公司有IBM那样的计算能力,当然,那时贾里尼克整个团队所拥有的计算能力还不及今天一部iPhone(苹果)手机呢!
图2.7 语音识别的通信模型
贾里尼克除了找到一条不同于传统人工智能的语音识别方法,另一个特点就是喜欢招收数学基础好的,特别是学习过理论物理的员工。出于某种原因,他不喜欢语言学家并且把他们都请出了IBM。贾里尼克的团队花了4年的时间,就开发了一个基于统计方法的语音识别系统,它的语音识别率从过去的70%左右提高到90%以上,同时语音识别的规模从几百词上升到两万多词。这样语音识别就有了本质的飞跃。我们不妨想想,如果一个语音识别系统每10个汉字就错3个,我们是无法读懂这句话的,但是如果每10个汉字只错1个,我们就能准确还原原来语句的意思。更何况,几百个英文单词只能进行类似幼儿园小孩之间的交流,而两万多个英文单词足够母语是英语的人进行各种交流了。从此,语音识别就能够从实验室走向实际应用了。
图2.8 语音识别和机器学习的先驱贾里尼克
贾里尼克和他的同事在研究语音识别时,无意中开创了一种采用统计的方法解决智能问题的途径,因为这种方法需要使用大量的数据,因此又被称为数据驱动方法。这种方法最大的好处是,随着数据量的积累,系统会变得越来越好,相比之下过去人工智能的方法很难受益于数据量的提升。
后来在IBM和Google先后担任过主管研究的副总裁艾尔弗雷德·斯伯格特(Alfred Spector)博士,20世纪80年代时是卡内基-梅隆大学的教授,据他介绍,当年卡内基-梅隆大学已经在传统的人工智能领域走得非常远了,大家遇到了很多跨不过去的障碍。后来教授们去IBM沃森实验室参观,看到那里采用数据驱动方法取得的巨大成绩,回来以后很多教授接受了这种新的方法论。李开复就是在这样的背景下,在传统的人工智能实验室里,采用基于统计的方法开展他的博士论文的工作,并且最终和洪小文一起构建了世界上第一个大词汇量、非特定人、连续语音识别系统21。按照斯伯格特的说法,如果没有李开复等人的工作,他们的论文导师瑞迪(Raj Reddy)不可能获得图灵奖。
在语音识别之后,欧洲和美国的科学家开始考虑能否用数据驱动方法解决其他智能问题。贾里尼克的同事彼得·布朗(Peter Brown)在20世纪80年代,将这种数据驱动方法用于机器翻译22。但是由于缺乏数据,最初的翻译结果并不令人满意,虽然一些学者认可这种方法,但是其他学者,尤其是早期从事这项工作的学者认为,解决机器翻译这样智能的问题,光靠基于数据的统计是不够的。从20世纪80年代初到90年代中期大约十多年的时间里,在计算机界大家一直有个争议,那就是数据驱动方法是否适用于各种领域,语音识别是否只是一个特例。简单地讲,当时无论是做语音识别、机器翻译、图像识别,还是自然语言理解的学者,分成了界限很明确的两派,一派坚持采用传统的人工智能方法解决问题,简单来讲就是模仿人,另一派在倡导数据驱动方法。这两派在不同的领域力量不一样,在语音识别和自然语言理解领域,提倡数据驱动的一派比较快地占了上风;而在图像识别和机器翻译方面,在较长时间里,数据驱动这一派处于下风。这里面主要的原因是,在图像识别和机器翻译领域,过去的数据量非常少,而这种数据的积累非常困难。图像识别就不用讲了,在互联网出现之前,没有一个实验室有上百万张图片。在机器翻译领域,所需要的数据除了一般的文本数据,还需要大量的双语(甚至是多语种)对照的数据,而在互联网出现之前,除了《圣经》和少量联合国文件,再也找不到类似的数据了。23一直到21世纪初,SYSTRAN(系统翻译)24等研究机器翻译的公司,依然在组织大量的人力编写机器翻译使用的语法规则。针对一对语言,比如英语和汉语,他们要编写几万条规则。在这几万条规则的帮助下,直到2002年,SYSTRAN公司的中英翻译系统依然是全世界做得最好的,但是进入21世纪之后,SYSTRAN很快便落伍了,因为数据驱动方法在数据量不断増加之后,它的优势便渐渐显现出来。
在20世纪90年代互联网兴起之后,数据的获取变得非常容易。从1994年到2004年的10年里,语音识别的错误率减少了一半,而机器翻译的准确性25提高了一倍,其中20%左右的贡献来自方法的改进,80%则来自数据量的提升。虽然在每一年,计算机在解决各种智能问题上的进步幅度并不大,但是十几年量的积累,最终促成了质变。