第五章RNN:时间领主的羊皮卷轴

第一卷:漫长的黑夜与微光:从太古宙到元古宙

1、乔姆斯基的战争堡垒

杨立昆的CNN属于计算机视觉(CV)领域,处理的是物理世界的像素,自然语言处理(NLP )处理的是人类社会产生的符号和逻辑。如果CV代替的是人类的眼睛,那NLP的目标则是取代人类的前额叶,因此它更加抽象、更难捉摸,被誉为“人工智能皇冠上的明珠”。

人类研究语言的历史,其实就是一部从“神学与哲学”走向“科学”,最终走向“计算”的进化史,乔姆斯基则是其中一个关键的节点型人物,他甚至是整个语言学领域战神级的存在。在他的四处征战之下,把语言学推到了整个认知科学领域皇冠上的明珠的位置。

最早期,人们研究语言主要是为了解读经典(如宗教经文)和教授哲学逻辑。那时候人们认为语言是神的礼物,所以亚里士多德开始对语言进行名词,动词的划分,并试图用语法来约束和规范语言。

到了19世纪,随着大航海时代的结束,欧洲人发现:“咦,怎么印度的梵语跟我们的拉丁语、希腊语这么像?”学者们发现语言是有“亲属关系”的。他们画出了巨大的“语言谱系树”。那时候的语言学研究,认为语言是一种生物,在用生物学博物志的方式进行研究。

20世纪,是现代语言学的开端,索绪尔开始对语言之间的映射关系关注了。在他看来,这种映射关系才是最关键的,正如“猫”这个声音(能指)和“猫”这个动物(所指)之间的关系是任意的。这种任意性很强的关联,就是一种人为的规则设定。作为语言,只是用来表达这种映射关系的一种约定俗成的符号。作为语言学,应该研究的是这种潜在的、社会共有的、抽象的规则系统。这就是自然语言处理NLP的哲学底层逻辑--“结构主义”。

诺姆·乔姆斯基 (Noam Chomsky)

接过结构主义大旗,并将语言学推到历史上前所未有高度的,是个希伯来语学者的儿子诺姆·乔姆斯基。希伯来语并不是一种日常口语,而是一种高度规范、严谨、具有严密逻辑结构的书面系统。当别的孩子在玩棒球时,年幼的乔姆斯基就在帮父亲校对关于中世纪希伯来语语法的书籍手稿。这种早期的学术训练,让乔姆斯基形成了一套坚定的对语言的认识:语言不仅仅是人们嘴里说出的零碎话语(言语),其背后更有一个完美的、逻辑严密的骨架(语法)。这种坚定支持着他,让他成为语言学领域著名的“人间大炮”,一生论战无数,且战绩彪炳。也正是他这种“好战”的性格,让他的理论迅速成为了符号主义的核心基石。

乔姆斯基在 1956 年提出了乔姆斯基谱系(The Chomsky Hierarchy),它是计算机科学、编译原理和理论语言学的共同基石。不夸张的说,现在我们得以使用各种类似自然语言的编程语言进行程序设计,全都拜这位倔强的老人所赐。这一理论最伟大的贡献在于:它将“语言”从一种模糊的社会现象,抽象成了一种严谨的数学对象(集合),并根据生成这些语言的“规则复杂程度”,将它们分为了四个等级。

层级 文法名称 语言名称 对应的自动机 (计算模型) 核心特征 (记忆能力) 典型应用

0型 无限制文法 递归可枚举语言 图灵机 (Turing Machine) 无限内存,全能 任何可计算程序

1型 上下文相关文法 上下文相关语言 线性有界自动机 (LBA) 有限但够用的磁带 自然语言 (部分)

2型 上下文无关文法 上下文无关语言 下推自动机 (Pushdown Automata) 栈 (Stack, 后进先出) 编程语言语法, HTML

3型 正则文法 正则语言 有限状态自动机 (DFA/NFA) 无记忆 (仅当前状态) 正则表达式, 词法分析

它用一套优雅的数学分层,统一了语言学和计算机科学的底层逻辑,也是整个计算机科学的“宪法”。这套谱系告诉了早期的编程语言设计者们:编程语言的语法应该设计在2型(上下文无关),词法应该设计在3型(正则)。如果编程语言设计成1型,编译器会慢得无法忍受,如果设计成3型,语言表达能力太弱(没法写嵌套循环),2型是表达能力与计算效率的完美平衡点。这个理论,直接引发了和行为主义的一场大战。这场战争在后世被誉为是一场关于“人类心智本质”的哲学战争。

这场战争的一方是当时统治学术界的霸主——行为主义(以 B.F.斯金纳为代表);另一方是初出茅庐的挑战者——诺姆·乔姆斯基。斯金纳认为语言没有什么神秘的。语言只是一种“言语行为” (Verbal Behavior)。他的几个核心逻辑分别是:

白板:婴儿出生时大脑是一张白纸。

强化学习:儿童学说话,就像马戏团训练狗一样。

婴儿发出 “Ma” 的声音 ,妈妈很高兴,给奶喝(奖励/强化)。

婴儿学会了 "Mama" 这个词。

线性联想: 句子只是词与词之间的线性联想链条。你说 "Pen",是因为你看到了钢笔(刺激 S),或者你想写字(内部刺激),从而触发了 "Pen" 这个反应(R)。

S-R链条这种外界刺激触发反应的模型,就是行为主义最核心的假设。在行为主义的模型中,我们看到了M-P神经元和感知机的影子。当时,明斯基用异或的非线性问题打败了罗森布拉特,如今乔姆斯基祭出的是一套同样的非线性法宝。他和明斯基仿佛异口同声的说出了同样的话:“你们都太简单了,处理不了非线性的、复杂的结构。”

乔姆斯基用了三招,彻底击败了斯金纳和他身后的行为主义。

第一招是:刺激的贫乏:在斯金纳的理论下,输入决定输出。只有听过的,才能学会。但是乔姆斯基反驳的是:儿童在成长过程中,听到的句子是极其有限的,而且充满了断断续续的病句。但是,儿童却能在很短的时间内,掌握一套完美的、复杂的、无限的语法规则。所以乔姆斯基认为,输入的数据量根本不足以支撑归纳出如此复杂的规则。除非,大脑里预先装好了某种“结构”或“软件”。这是乔姆斯基在反驳“白板论”,提出了他的“天赋论”。

第二招是:语言的创造性。斯金纳认为,说话是对过去经验的重复和模仿。乔姆斯基却用一个例子来证明了人类绝大多数时候说的话,都是以前从未听过、也从未说过的全新句子。他给了一个现实中毫无意义的一个句子:“Colorless green ideas sleep furiously.”这句话不会在正常生活语境中出现过,但是我们依然能创造出来它,并且判断它在语法上是正确的。很多诗人的创造性金句也是在这种类型的创新中出现的。

第三招,也是最关键的一点是,结构的依赖性。斯金纳认为,语言是线性的词链。乔姆斯基还是用了一个例子来反驳,他认为语言操作依赖于结构,而不是线性顺序。比如要把一个句子“The man who is tall is here.”从陈述句变成疑问句,如果按照线性规则,应该是“找到第一个 is 提到最前面”,这样这句话的结果就是:“Is the man who tall is here?”。这显然是错误的,正确的方法应该是找到主句的is放在前面,也就是:“Is the man who is tall here?”乔姆斯基用一个简单的句式来提出语言有着主句和从句这种层级结构,而单纯的线性词链无法表达。这记猛击,如同当年明斯基的异或,彻底把斯金纳的行为主义打进了深渊。直到行为主义在冷宫中遇到了连接主义,并借着数据的大爆炸,才实现了逆风翻盘。

从此之后,乔姆斯基就是NLP的神,大家都认为,只要规则写得足够全,机器就能懂语言。20世纪下半叶的MIT就成为了符号主义的大本营,乔姆斯基和明斯基两尊大神坐镇之下,他们发起了认知革命,共同推动了第一次人类探索心智的计算主义运动。在当时的校园里,如果你是学语言学,哲学或者认知心理学的,那你一定会去朝拜Building 20,但是如果你是个工科学生,是对计算机,机器人或者电子工程有兴趣的,那么AI Lab则是你非去不可的圣地。但是,在一墙之隔的哈佛大学,却在培养着一个在日后执着的向着这个圣地,向着这个乔姆斯基经营了许久的学术堡垒发起冲锋的人。

2、SRNN:向乔姆斯基的语言学堡垒发起的冲锋

PDP小组的杰弗里·埃尔曼 (Jeffrey Elman)是个异类。他那温和的外表之下,也藏着一颗固执的心。如果说鲁梅尔哈特是PDP小组当之无愧的领袖CEO,辛顿是提供长远战略视角的董事长,那埃尔曼则是那个长袖善舞,温和且简单的COO,负责搭建起小组间沟通的桥梁。埃尔曼戏称,他的职责是,负责拉着PDP小组里这些才华横溢的组员们,不要真正的打起来。当鲁梅尔哈特凶巴巴的样子吓着新进来的博士生的时候,当辛顿尖酸刻薄的提问惹恼了其他教授们的时候,埃尔曼总是第一个上前缓和局面的人。作为一个PDP小组中最温和的人,谁都没想到,他居然是向当时语言学里的暴君和战神发起挑战的那一个。

杰弗里·埃尔曼 (Jeffrey Elman)

1948年出生于洛杉矶的埃尔曼,从少年时代开始就对语言和声音有着近乎痴迷的直觉。他并不是那种躲在地下室拆解收音机的小孩,而是一个对“人们如何交流”感到好奇的孩子。在南加州,西班牙语和英语并不是平行存在的两条线,而是高度融合的。在街道上,市场上,经常会看到人们交流时的上一句还在使用英语,下一句就无缝切换到西班牙语了。大家都操着各种各样的口音,对同一个词进行诠释,而又完全没有交流的障碍。这让他从小就认识到,语言不仅是书本上的规则,更是一种流动的、充满变化的生理和物理过程。

他在哈佛大学攻读语言学。当埃尔曼步入哈佛校门时,他面对的正是一场认知科学领域的世纪之战的战后硝烟期以及胜利者诺姆·乔姆斯基对斯金纳发起的全面“思想肃清”阶段。所以当时的埃尔曼,在呼吸间都是“符号与规则”。

乔姆斯基在语言学上的努力,和明斯基在 MIT 的 AI 实验室的工作,本质上都在做同一件事:将人类智能公式化。这两位参加过AI诞生的那个著名的达特茅斯会议的大佬,将当时的MIT变成了符号主义的大本营。和MIT仅有一墙之隔的哈佛,也深受符号主义的影响。埃尔曼发现,自己深爱的语言,在哈佛这个最顶尖的学府里,被剥离了生命力和时间感,变成了一具冰冷的逻辑标本。所以,他依然决然的选择了逃离,奔向更加包容、更强调“并行分布处理(PDP)”的西海岸 UCSD。

作为语言学家,埃尔曼对乔姆斯基那种“冷冻”语言的方式感到极度不满。乔姆斯基把语言看作是一张静态的语法树图,但埃尔曼认为语言的本质是过程。他想证明,理解语言并不需要一个预先存在的“规则仓库”,而需要一个能感知先后顺序的动力系统。他希望建立一种模型,这种模型不是“看”完整的句子,而是像人耳一样,在听到第 1 个词、第 2 个词时,能够产生对第 3 个词的期待。这种“期待(Prediction)”就是他心中智能的底色。埃尔曼是最早将“预测下一个词”作为模型的目标的人,但是他当时并未想到,这个看似简单的目标居然造就了三十多年后生成式 AI的百花齐放。

此时的UCSD,霍普菲尔德的理论已经为大家知晓。在这位物理大师的精神支持下,各位PDP小组的成员敢于用网络搭建各种环路,不再担心网络最终无法收敛了。因此在一段时间里,PDP小组里有着好多试验性的网络在同时搭建。埃尔曼的切入点是帮助鲁梅尔哈特的博士生迈克尔乔丹,优化他的乔丹网络。乔丹网络的目标是给网络增加时间感,让网络能够像人类肌肉一样,产生连续、“平滑”的动作轨迹。乔丹网络的创举是,在输入层和输出层之间,增加了一个名为“状态空间”的隐藏层。这个隐藏层就是将上一次的状态保存下来,作为下一次运算的参考。这在序列性的动作中,非常有价值,能极大的改善下一次动作的预测准确度。比如,在一个控制机械臂的运动序列中,告诉网络当前机械臂的位置,才能要求网络在当前的位置基础上进行连续动作。这个状态空间是非常有意义的。

埃尔曼的改动,是为了让乔丹网络适配语言处理的,他只是将隐藏层的数据来源从输出层输出之后,变到了输出之前。这里面唯一的差异就是,隐藏层在输出之前,是一个高维的向量,而语言处理输出层输出的结果则是一个具体的离散的值,一个具体的“字”。这个具体的字的信息太少了,预测下一个字所需的上下文信息需要的是更丰富的隐藏层的那个完整的向量,那个向量才包含了所有的可能的词的概率。

乔丹网络和埃尔曼网络的结构

让我们用一个实际的例子来解释一下这个改动。假设这样一个场景,网络要预测 I want to eat ...

隐藏层的状态,网络可能非常纠结。它内部的激活值显示:

Apple: 49.9% 概率

Banana: 49.8% 概率

Car: 0.001% 概率

隐藏层清楚地知道,“苹果”和“香蕉”都是水果,都可以吃,且概率极度接近。这种“水果属性”的知识就蕴含在概率分布中。输出层的结果是:经过选择后,它输出了 Apple。

如果我们采用乔丹网络的方式,把输出层的结果传回去,我们只能把 Apple 反馈回输入端。此时“Banana 差点就赢了”的信息就全丢了。网络在下一步根本不知道刚才其实有个“香蕉”也是备选项。这就是埃尔曼作出修改,要在输出层输出之前传递隐藏层数据的核心原因。

事实证明,这样的修改成为了点睛之笔。在此之前的乔丹网络只是一个复读机,它只能根据刚才发出的声音,惯性地滑向下一个声音。它适合处理平滑的、无歧义的物理轨迹。埃尔曼网络像是一个同声传译员,它虽然嘴上说着当前的词,脑子里却构建着整个句子的语法树。它适合处理复杂的、有层次的逻辑结构。

这就是RNN网络的雏形,被称为Simple Recurrent Neural Network(简单循环神经网络),是1990年埃尔曼的奠基性论文《Finding Structure in Time》(在时间中寻找结构)中最核心的内容。这也是埃尔曼对乔姆斯基的语言学堡垒力度最大的一次进攻。

3、狠人乔姆斯基的致命反击

当时的乔姆斯基和他的学术堡垒,刚经历了一次由内部发起的“叛乱”。乔姆斯基并没有意识到,这是整个符号主义堤坝上的一丝裂痕。从这条缝隙中,会有一束光照进来,带着炙热的温度,将笼罩在神经网络周围的寒冰融化掉。

具体说来,明斯基和乔姆斯基的符号主义终于也遇到了“复杂度”这座难以逾越的大山。还记得他们当时嘲笑行为主义的话吗?他们认为行为主义和联结主义那么简单的模型,根本无法适配一个复杂的非线性世界,但是现在这枚回旋镖迅速的打到了他们的脸上。事实上,符号主义也低估了用规则来描述这个复杂世界的难度。从20世纪80年代开始,随着算力提升和语料库出现,NLP 工程师发现乔姆斯基那套规则太完美、太干净了,根本处理不了现实中充满歧义和错误的“脏数据”。有过写正则表达式经验的朋友们一定能体会到那种痛苦滋味,于是,有一部分NLP 工程师转向了统计学。这群“叛军”的首领是IBM 华生实验室 的 弗雷德·贾里尼克 (Fred Jelinek)。

故事缘起于20世纪的70-80年代,乔姆斯基的理论体系正值如日中天之时。DARPA(美国国防部)资助了大量的语音识别项目,大都基于乔姆斯基的语言学规则。效果极差,识别率极低。IBM作为大量项目的承包方,被甲方训的焦头烂额。当时IBM语音组的负责人是同样来自MIT的弗雷德·贾里尼克(Fred Jelinek)。

弗雷德·贾里尼克(Fred Jelinek)

和乔姆斯基不同,贾里尼克的背景和杨立昆类似,都是学电机工程出身的。在 MIT,贾里尼克接受了彻底的信息论洗礼。他学会了从“熵”、“信道容量”和“编码”的角度看世界,而不是从“语法”或“意义”的角度。当时的语音识别领域被语言学家把持,他们试图教计算机音标和语法,效果极差。贾里尼克说:“让我们忘掉语言学,把它当成数学题来做。”于是,贾里尼克的团队引入了 当时被乔姆斯基骂得极惨的隐马尔可夫模型HMM 和 N-gram(统计模型)。他们不雇佣语言学家,而是收集大量的文本数据,让计算机自己算概率,结果效果出奇的好。在一次访谈中,贾里尼克说出了那句让乔姆斯基派气得发抖的话:"Every time I fire a linguist, the performance of the speech recognizer goes up."(我每开除一个语言学家,语音识别系统的性能就提高一点。)

乔姆斯基对 HMM 极其鄙视。在 2011 年的一次会议上,他依然批评这种统计方法。他认为:这种模型并没有这就语言的本质。它就像是研究蜜蜂,不研究生物学原理,只是拿摄像机拍蜜蜂飞行的轨迹,然后统计它下一秒出现在哪里的概率。这不是科学,这是推土机式的工程。这种说法,到现在为止,业界也有大量的科学家认可。一些AI知名的绰号,例如:“随机鹦鹉” (Stochastic Parrots)、“高科技剽窃” (High-tech Plagiarism)、“被美化的自动补全” (Glorified Autocomplete),全都脱胎于乔姆斯基的原始想法。虽然本质上HMM并非是神经网络的一种,但是从思路的本质上却同样秉承着经验主义,乔姆斯基从其中窥到了维特根斯坦的灵魂。在他看来,无论是HMM还是神经网络,都是行为主义的一种变体,他们和维特根斯坦的“意义即使用”,是在把语言和科学往歧路之上引导,只关注“外在的使用”而忽略“内在的认知结构”,是偷懒的反科学态度。

但是实用主义的现实却迅速倒向了统计学派。大家发现:在解决实际问题时,鲁棒的概率模型比精致的逻辑规则好用一万倍。特别是在有了GPU这样一个计算大杀器之后。在这之后,大家基本上放弃了设计和编写复杂规则上的努力,开始转头向着用自下而上的方法用大量的数据复现规则和总结规则。符号主义的堡垒在HMM的不断攻击下,开始不断的产生裂纹。

埃尔曼的SRNN就是在这样的背景下,和贾里尼克的HMM叛军们一起,向着乔姆斯基的城堡发起了冲锋。历史的荒诞之处在于,埃尔曼当时的身份,正是贾里尼克所说的应该被开除的“语言学家”。

即便如此,乔姆斯基这样一尊大神,面对埃尔曼这样的无名小卒,也还是不屑出手的。在他看来,神经网络就是“穿着计算机外衣的行为主义”,对他的学术理论的威胁甚至还比不上HMM。乔姆斯基并没有专门写一篇论文去拆解 SRNN 的权重矩阵,他只需要把原来针对行为主义的三招拿出来,同样对埃尔曼的SRNN造成了沉重的打击。

除此之外,乔姆斯基也对SRNN提出了针对性的点评。他通过弟子平克和普林斯的论证指出,神经网络在数学本质上属于有限状态机,无法处理无限递归,因此它是一个结构上有缺陷的模型,而不仅仅是哲学上的错误。

在这一点上,埃尔曼是颇为不服气的。埃尔曼认为,SRNN 不是有限状态机(FSM)。因为 FSM 的状态是离散的(比如 1, 2, 3...),而 SRNN 的隐藏层是连续的实数向量(比如 [0.3333..., 0.7812...])。SRNN可以利用实数的无限可分性,让状态趋向于无限。当平克提出计算机的精度有限时,埃尔曼试图用工程学的Good-Enough来解释,虽然计算机无法实现数学上的真正无限,但是以现在的算力之下的精度,也是足以解决实际问题的。

但是可惜的是,埃尔曼迅速撞上了梯度消失这面叹息之墙。当埃尔曼试图训练 SRNN 处理稍微深一点的递归,比如三层嵌套时,模型就彻底失败了。这给了乔姆斯基派极好的口实:“看吧,我们早就从数学上证明了这玩意儿不行,现在事实证明它确实不行。”

埃尔曼只能无奈地解释为“这是模拟了人类记忆力的局限”,但这在数学严谨的乔姆斯基派看来,简直就是“丧事喜办”的狡辩。

至此,埃尔曼的第一次面对乔姆斯基的堡垒的进攻,以完败告终。他和RNN真正的反攻,要等到辛顿彻底推倒梯度消失之墙的那一天。但在此刻,符号主义的败相已然呈现。

让我们回过头来,仔细想想这场符号主义打败连接主义,再到连接主义借助HMM的叛乱和SRNN一起反杀回来的战斗,其实在本质上都是“软约束”取代“硬约束” 的过程。最早符号主义用更软的非线性来挑战感知机的线性规则,后来规则层面,HMM用概率这种灰度结果来挑战规则的非黑即白。这是贝叶斯对布尔的胜利,也是经验主义目前占了理性主义的上风,也是现实工程维度上鲁棒性优先于确定性的取舍。

从此,赌徒的视角代替追求全知全能的上帝视角,开始成为人类认知世界的主流范式。在符号主义大坝的缝隙中,和煦的春风和温暖的阳光透了进来,神经网络的冬天终于要过去了。随着春天的来临,太古宙和元古宙这两个寂静的时代过去了,整个行业迎来了“寒武纪大爆发”。

此刻,RNN还处于它的幼年时期,时间领主的羊皮卷轴还并没有完全展开。和CNN一样,它们面前还有着梯度消失这样一面坚不可摧的墙壁。它们还在等待,等待着圣剑骑士辛顿的那一招天外飞仙。