开始之前先说一句:这是一篇立场文章。我会摆出事实,也会说出我对这些事实之间如何关联的看法,但并不是在断言这些关联一定成立。
结构的迁移
和大多数在中国长大的人一样,英语是我的第一门外语,跟着学校的进度按部就班学下来的。不寻常的是后面发生的事:我迷上了继续往下学,法语、德语、西班牙语,然后又换了个完全不同的方向,日语和韩语。
让我坚持下去的不是某一门具体的语言,而是我已经学到的东西,能有多少延续到新的语言里。刚开始学英语的时候,最让我困惑的是拼写和发音之间的关系,还有那套看不出什么道理的动词变化。直到后来学法语,学了差不多两年,到了 B2 水平,我才第一次意识到:动词变位不是任意的,而是一套非常规整的系统,这种规整正是印欧语系的一个重要特征。英语确实也是印欧语言,可它的变位系统早就磨损得所剩无几,跟其他欧洲语言比起来弱得多。学完法语之后,德语和西班牙语一下子就变得容易上手了。后来我甚至去摸了摸梵语,发现它几乎可以算是印欧语系里最古老、保留最完整的一支血脉。
某个时刻,我不再满足于单词表和语法表格,我想弄清楚语言为什么会是这个样子,而不只是知道怎么用它们。正是这种好奇心,把我带到了 Fromkin、Rodman 和 Hyams 的《An Introduction to Language》[1][1] V. Fromkin, R. Rodman, and N. Hyams, An Introduction to Language, 11th ed. Cengage Learning, 2017.。也正是从这本书开始,语言学在我脑子里不再只是”让我成为更好的多语者”的工具,而是变成了一门独立的科学。
那时我还不是计算机专业的学生。但如今回头看,学了几年计算机科学和数学之后,我一再注意到:当年把我拉向语言学的东西,和今天把我拉向 AI 与数学的东西,其实一直都是同一回事,只是我当时没意识到。
一、抽象与谱系分类
最先打动我的,是语言谱系的组织方式。印欧语系分出日耳曼语族、罗曼语族、斯拉夫语族等等,每个语族又再分出具体的语言。这是一种抽象层级,就像计算机科学里的类型层级或分类系统一样:顶层是宽泛的类别,底层是具体的实例,而真正有意思的地方,恰恰在于每一层选择保留什么、舍弃什么。
(图中标出了我自己学过的语言,按真实语系分布。日语和韩语被故意画在两棵独立的树上:这两种语言类型上很相似,都是黏着语,都是 SOV 语序1SOV 指主语-宾语-谓语(Subject-Object-Verb),是语言排列句子核心成分的一种方式。日语和韩语是 SOV 语序;英语则是它更常见的”表亲”SVO(主语-谓语-宾语),更接近”I eat rice(我 吃 米饭)“,而不是”I rice eat(我 米饭 吃)”。 ,但彼此并没有像法语和西班牙语那样的谱系亲缘关系。)
自然语言是文明演化出来的产物,没有谁自上而下设计过它,是数千年的使用一点点积累出来的。计算机语言则正相反:都是刻意设计、版本化、写进文档规范里的。然而两者却表现出同一种内部多样性。语言类型学按照语言”打包”意义的方式来分类,有分析语、综合语和黏着语2分析语,比如汉语,依靠语序和独立的虚词来表达语法关系,而不是改变词本身。综合语则把这些信息打包进词本身:靠词尾变化、词内变化,或者在黏着语的情况下,靠一串叠加在词干上的词缀。 之分;编程范式做的事,在结构上是类似的:命令式、函数式和逻辑式编程,是表达同一类计算的不同策略。这两种情形里,同样的表达能力都能用不止一种方式编码,而这些方式之间的差异并非任意,是权衡取舍的结果。
这个类比还有更深的一层,让我难以轻易放下。语言在某种意义上,是我们生活的这个世界的一种低维投影:音位3音位是一种语言中能够改变意义的最小语音单位。bat 和 pat 之间的差异,正好就是一个音位。 数量有限,词汇有限,语法规则也有限。可在另一种意义上,它的表达力却超出了这个世界本身。语言学家专门为此命名:Hockett 称之为移位性和能产性4移位性指的是谈论此时此地不在场的事物的能力:过去、未来、从未去过的地方、并不存在的事物。能产性指的是运用一套有限的规则,去产生和理解从未被说过的句子的能力。 ,这是让人类语言区别于其他交流系统的设计特征之一 [2][2] C. F. Hockett, “The Origin of Speech,” Scientific American, vol. 203, no. 3, pp. 88–96, 1960.。洪堡特把这背后的想法称为”以有限的手段实现无限的运用”[3][3] W. von Humboldt, On Language: The Diversity of Human Language-Structure and Its Influence on the Mental Development of Mankind. Cambridge University Press, 1988. Translated by Peter Heath. Originally published as Über die Verschiedenheit des menschlichen Sprachbaues, Berlin, 1836..,这句话后来被乔姆斯基借用,成了生成语法的核心 [4][4] N. Chomsky, Aspects of the Theory of Syntax. MIT Press, 1965. The phrase "infinite use of finite means," credited to Humboldt, appears on p. 8..。一套压缩到这个程度的语法,本不该能表达这么多内容,但事实是,它偏偏做到了。而这一点,正是下一节要用递归来做机制性解释的。
这究竟是人类智能区别于其他动物的根本原因,还是只是一幅更大图景里的一块拼图(这幅图景还包括共享意向性和累积性文化),在认知科学里仍然是个悬而未决的问题。我个人倾向于认为它很重要,但我也清楚,这只是一种立场,不是盖棺定论的事实。
二、共享的机制:句法树
我开始给自然语言的句子画句法树以后,很快发现它和我见过的另一样东西像得没法忽视。
左边的树,是用可追溯到乔姆斯基的生成语法传统,对 the cat sat on the mat(猫坐在垫子上)这句话做的短语结构分析 [5][5] N. Chomsky, Syntactic Structures. Mouton, 1957.。右边的树,是编译器为 x = a + b * c 构建的抽象语法树。字母表不同,规则不同,形状却是一样的。两者都是递归的:一个短语可以包含另一个短语,一个表达式可以包含另一个表达式,而正是这种递归,让一套微小、有限的语法能够生成无穷多的合法句子或程序。
这不只是一种松散的相似。乔姆斯基本人早期的工作,就是按规则的生成能力给语法分类,排出了一套如今被称为”乔姆斯基谱系”的阶梯,从简单的正则语法一直排到无限制语法 [5][5] N. Chomsky, Syntactic Structures. Mouton, 1957.。编程语言的句法,和自然语言句法里的很大一部分,恰好落在这个阶梯的同一级上。
一个上下文无关文法是一个四元组 ,其中 是非终结符的有限集合, 是与 不相交的终结符有限集合, 是形如 的产生式规则的有限集合(其中 ,), 是起始符号。从 出发,反复按照 中的某条规则重写某个非终结符,直到不再含有非终结符为止,由此生成一个字符串。由于每条规则只重写单个符号,且不依赖它所处的上下文,规则可以无限制地嵌套使用,这正是一个有限的 能生成无穷语言的原因。
从形式上说,编程语言的解析器和自然语言句子的解析器,识别的都是同一类文法生成出来的字符串。
在”语言学”和”计算机科学”这两个标签底下,真正起作用的其实是递归和层级结构。这首先是个数学概念,其次才轮到语言学或计算机科学。
三、底层的代数
这里我想坦白说明:我没有受过这个领域的专业训练,接下来要讲的,与其说是我能深入辩护的立场,不如说是我想去探索的方向。但这是把整篇文章拉向纯数学最远的一条线索,所以哪怕还很粗糙,也值得在这里占一席之地。
组合范畴语法(Combinatory Categorial Grammar)给每个词分配一个句法类型,并根据相邻类型如何组合来推导句子结构 [6][6] M. Steedman, The Syntactic Process. MIT Press, 2000.。
范畴的集合是递归定义的:一个有限的原子范畴集合(例如 、、、)都是范畴,并且如果 和 是范畴,那么复合范畴 和 也是范畴。相邻的范畴通过两条规则组合:
像 sat(坐)这样的及物动词被赋予范畴 :与右侧的一个 做前向应用,得到 ;再与左侧的一个 对这个结果做后向应用,就得到句子 。
这不是对代数的比喻:这就是代数,因为组合在这里就是类型上的函数应用。其数学根源可以追溯到 Joachim Lambek:他的 Lambek 演算把这些范畴建模成一个偏序的剩余幺半群, 和 正是拼接运算的剩余算子 [7][7] J. Lambek, “The Mathematics of Sentence Structure,” The American Mathematical Monthly, vol. 65, no. 3, pp. 154–170, 1958. https://doi.org/10.2307/2310058。
我并不是特意按”先学范畴语法、再学 lambda 演算”这个顺序来的。我是在读语言学的时候,接触到 CCG 把句法看成函数应用的这套视角的,那时我还没受过任何正式的计算机科学训练。直到后来上 Monash 大学的 FIT2102(编程范式)课,我才发现它和 lambda 演算的相似之处,那门课把 lambda 演算当成函数式编程底层的数学核心来讲。两门课,两个系,没有共用的阅读清单,然而同一个操作,也就是应用(application),却在不同的名字下反复出现。
从这里往下,这条线索通向一个让我真正兴奋的地方:Curry-Howard 同构 [8][8] W. A. Howard, “The Formulae-as-Types Notion of Construction,” To H.B. Curry: Essays on Combinatory Logic, Lambda Calculus and Formalism, pp. 479–490, 1980. Circulated as an unpublished manuscript since 1969.. https://www.cs.cmu.edu/~crary/819-f09/Howard80.pdf。
对简单类型 lambda 演算配对的直觉主义命题逻辑来说,两个系统之间存在一个保结构的对应关系:命题对应类型,一个命题的证明对应相应类型的项,而证明的归约(消去多余的绕行步骤)对应于相应项的 -归约。在这个对应关系下,构造一个证明和写出一个良类型的程序,是用两套词汇表述的同一件事。
这把逻辑、计算,以及(通过范畴语法)语言本身,都编织进了同一幅代数图景。蒙塔古语法补上了这个故事的语义那一半:把句子的意义看作通过 lambda 演算组合式地构建起来的一个函数 [9][9] R. Montague, “English as a Formal Language,” Formal Philosophy: Selected Papers of Richard Montague, pp. 188–221, 1974. Originally published 1970, in Linguaggi nella Società e nella Tecnica, Edizioni di Comunità, Milan.., [10][10] R. Montague, “The Proper Treatment of Quantification in Ordinary English,” Approaches to Natural Language, pp. 221–242, 1973.。我目前还没有足够的正式训练去精确地论证这一点,但我对这个轮廓已经有足够的信心,愿意把它叫做我目前找到的、从语言学通向纯数学最实在的一座桥,也有足够的理由沿着它继续走下去。
插曲:语言学家是如何被 AI “解雇”的
这段历史并不是一条通向”平反”的直线。二十世纪的大部分时间里,计算语言学的方法都是语言学家手写语法和规则搭建起来的。然后,从 1980 年代末开始,在数据上训练出来的统计方法开始超越它们:先是在语音识别和机器翻译领域,后来几乎所有领域都是如此。据 Jurafsky 和 Martin 的记述 [11][11] D. Jurafsky and J. H. Martin, Speech and Language Processing, 2nd ed. Prentice Hall, 2009. Recounts Frederick Jelinek's remark, often quoted as "every time I fire a linguist, the performance of the recognizer goes up" (p. 83, may shift slightly by printing)..,Frederick Jelinek 据说说过,他每解雇一个语言学家,识别器的性能就会提升。这句话更像是坊间传说而非确凿引文,确切出处至今仍相当模糊,但它描述的转变确实发生过,而且这个趋势一直延续到了今天:现在的神经网络模型往往直接从原始数据里学习,完全没人告诉它任何显式的语法结构。
如果故事到这里就结束,那会是个干净利落的叙事:结构输了,统计赢了。但故事并没有在这里结束。有研究探究 BERT 等 Transformer 模型内部究竟表征了什么,结果发现,它们从没被要求构建句法树,却还是隐式地编码出了一种和句法树结构很相似的东西 [12][12] J. Hewitt and C. D. Manning, “A Structural Probe for Finding Syntax in Word Representations,” Proceedings of NAACL-HLT 2019, pp. 4129–4138, 2019. https://aclanthology.org/N19-1419, [13][13] I. Tenney, D. Das, and E. Pavlick, “BERT Rediscovers the Classical NLP Pipeline,” arXiv:1905.05950, 2019. ACL 2019, pp. 4593--4601.. https://arxiv.org/abs/1905.05950, [14][14] G. Jawahar, B. Sagot, and D. Seddah, “What Does BERT Learn about the Structure of Language?,” Proceedings of the 57th Annual Meeting of the Association for Computational Linguistics, 2019. https://aclanthology.org/P19-1356。结构并没有消失,只是从人工设计,变成了被隐式地重新发现,成了”学会把文本预测好”这件事的一个副产品。
这场争论还有一个更古老、更棘手的版本,至今都没有真正了结。Fodor 和 Pylyshyn 曾论证,联结主义模型从根本上缺乏真正的组合性5组合性指的是这样一种想法:一个整体表达式的意义,是由其各部分的意义以及它们的组合方式系统性地构建出来的,而不是整个被死记硬背下来的。 :它们可以近似出结构化的行为,却并未像符号系统那样真正表征结构 [15][15] J. A. Fodor and Z. W. Pylyshyn, “Connectionism and Cognitive Architecture: A Critical Analysis,” Cognition, vol. 28, no. 1-2, pp. 3–71, 1988.。近年关于系统性泛化的研究,本质上是在向今天的序列模型问同一个问题:它们的泛化方式,究竟像一个组合式系统那样,还是只是碰巧在训练数据上表现得相似 [16][16] B. M. Lake and M. Baroni, “Generalization without Systematicity: On the Compositional Skills of Sequence-to-Sequence Recurrent Networks,” arXiv:1711.00350, 2018. ICML 2018.. https://arxiv.org/abs/1711.00350。我不认为这个问题已经有定论,凭我们现在所处的位置,能不能解决这个问题,我都说不准。
收尾:共同的概念
作为抽象的谱系分类、语言学与编译器共享的句法树、作为代数的范畴语法、符号结构与统计学习之间旷日持久的争论:在所有这些东西之下,我一再发现同一个想法。用模式为结构建模,是一个数学概念,而语言学和计算机科学都是建立在它之上的应用领域,不是它的源头。
我想,这也是为什么第一节里提到的”语言那种低维却无界”的特性,不只是一句漂亮的说法。这个特性点出的,恰恰是表征学习今天向一个模型提出的同一个问题:一个有限的、低维的表示,怎么还能撑起一个由各不相同的意义构成的空间,这个空间常常组合式地巨大,往往还是无界的。对离散、无界的组合性做连续近似,正是今天的稠密向量模型想要做到的事。在我看来,这不是巧合,是同一种好奇心指向了不同的载体,而这也是为什么语言学从未真正离开过我对 AI 与数学的学习,它只是安静了一阵子。
就像我在开头说的:这些是我觉得值得认真对待的类比,不是在断言语言学在字面意义上就等同于计算机科学或数学。我还不确定这个类比能走多远,但我打算继续沿着它走下去。
参考文献
- [1] V. Fromkin, R. Rodman, and N. Hyams, An Introduction to Language, 11th ed. Cengage Learning, 2017. ↩
- [2] C. F. Hockett, “The Origin of Speech,” Scientific American, vol. 203, no. 3, pp. 88–96, 1960. ↩
- [3] W. von Humboldt, On Language: The Diversity of Human Language-Structure and Its Influence on the Mental Development of Mankind. Cambridge University Press, 1988. Translated by Peter Heath. Originally published as Über die Verschiedenheit des menschlichen Sprachbaues, Berlin, 1836.. ↩
- [4] N. Chomsky, Aspects of the Theory of Syntax. MIT Press, 1965. The phrase "infinite use of finite means," credited to Humboldt, appears on p. 8.. ↩
- [5] N. Chomsky, Syntactic Structures. Mouton, 1957. a b
- [6] M. Steedman, The Syntactic Process. MIT Press, 2000. ↩
- [7] J. Lambek, “The Mathematics of Sentence Structure,” The American Mathematical Monthly, vol. 65, no. 3, pp. 154–170, 1958. https://doi.org/10.2307/2310058 ↩
- [8] W. A. Howard, “The Formulae-as-Types Notion of Construction,” To H.B. Curry: Essays on Combinatory Logic, Lambda Calculus and Formalism, pp. 479–490, 1980. Circulated as an unpublished manuscript since 1969.. https://www.cs.cmu.edu/~crary/819-f09/Howard80.pdf ↩
- [9] R. Montague, “English as a Formal Language,” Formal Philosophy: Selected Papers of Richard Montague, pp. 188–221, 1974. Originally published 1970, in Linguaggi nella Società e nella Tecnica, Edizioni di Comunità, Milan.. ↩
- [10] R. Montague, “The Proper Treatment of Quantification in Ordinary English,” Approaches to Natural Language, pp. 221–242, 1973. ↩
- [11] D. Jurafsky and J. H. Martin, Speech and Language Processing, 2nd ed. Prentice Hall, 2009. Recounts Frederick Jelinek's remark, often quoted as "every time I fire a linguist, the performance of the recognizer goes up" (p. 83, may shift slightly by printing).. ↩
- [12] J. Hewitt and C. D. Manning, “A Structural Probe for Finding Syntax in Word Representations,” Proceedings of NAACL-HLT 2019, pp. 4129–4138, 2019. https://aclanthology.org/N19-1419 ↩
- [13] I. Tenney, D. Das, and E. Pavlick, “BERT Rediscovers the Classical NLP Pipeline,” arXiv:1905.05950, 2019. ACL 2019, pp. 4593--4601.. https://arxiv.org/abs/1905.05950 ↩
- [14] G. Jawahar, B. Sagot, and D. Seddah, “What Does BERT Learn about the Structure of Language?,” Proceedings of the 57th Annual Meeting of the Association for Computational Linguistics, 2019. https://aclanthology.org/P19-1356 ↩
- [15] J. A. Fodor and Z. W. Pylyshyn, “Connectionism and Cognitive Architecture: A Critical Analysis,” Cognition, vol. 28, no. 1-2, pp. 3–71, 1988. ↩
- [16] B. M. Lake and M. Baroni, “Generalization without Systematicity: On the Compositional Skills of Sequence-to-Sequence Recurrent Networks,” arXiv:1711.00350, 2018. ICML 2018.. https://arxiv.org/abs/1711.00350 ↩
脚注
-
SOV 指主语-宾语-谓语(Subject-Object-Verb),是语言排列句子核心成分的一种方式。日语和韩语是 SOV 语序;英语则是它更常见的”表亲”SVO(主语-谓语-宾语),更接近”I eat rice(我 吃 米饭)“,而不是”I rice eat(我 米饭 吃)”。 ↩
-
分析语,比如汉语,依靠语序和独立的虚词来表达语法关系,而不是改变词本身。综合语则把这些信息打包进词本身:靠词尾变化、词内变化,或者在黏着语的情况下,靠一串叠加在词干上的词缀。 ↩
-
音位是一种语言中能够改变意义的最小语音单位。bat 和 pat 之间的差异,正好就是一个音位。 ↩
-
移位性指的是谈论此时此地不在场的事物的能力:过去、未来、从未去过的地方、并不存在的事物。能产性指的是运用一套有限的规则,去产生和理解从未被说过的句子的能力。 ↩
-
组合性指的是这样一种想法:一个整体表达式的意义,是由其各部分的意义以及它们的组合方式系统性地构建出来的,而不是整个被死记硬背下来的。 ↩
评论