语言模型:过去、现在、未来
语言模型与深度学习相结合产生的神经语言模型具有强大的表示和学习能力,代表着语言模型发展到了一个新的阶段,特别是其中的预训练语言模型已经成为当今自然语言处理的核心技术。本文回顾语言模型的历史,总结语言模型的现状,并展望语言模型的未来。
前言 …
语言模型(language model)是定义在单词序列上的概率模型,可以用来计算一个单词序列的概率。在自然语言处理中,单词序列可以是一个句子或一段文字。语言模型是基于概率论、统计学、信息论、机器学习对自然语言进行建模的重要方法。语言模型与深度学习相结合产生的神经语言模型(neural language model)具有强大的表示和学习能力,代表着语言模型发展到了一个新的阶段;特别是其中的预训练语言模型(pre-trained language model)已经成为当今自然语言处理的核心技术。本文回顾语言模型的历史,总结语言模型的现状,展望语言模型的未来。
马尔可夫与语言模型 …
人类历史上第一个对语言模型进行研究的应该是马尔可夫(Andrey Markov),虽然当初并没有“语言模型”这个术语[1]。
假设
设
为了给出具体的例子,马尔可夫于1913年将他提出的模型应用于普希金(Pushkin)的诗体小说《尤金·奥涅金》(Eugene Onegin)。去掉空格和标点符号,并将所有的俄文字母归类为元音和辅音,得到小说前2万个元音和辅音符号的序列。马尔可夫用纸和笔对该小说中出现的元音和辅音之间的跳转概率进行了统计,之后用这个数据验证了马尔可夫链的特性。
非常有趣的是,马尔可夫链最初的应用领域是语言,马尔可夫研究的例子其实是一种最简单的语言模型。
香农与语言模型 …
1948年,香农(Claude Shannon)发表了奠基性论文《通信的数学理论》,开创了信息论领域。在论文中,香农提出了熵的概念,研究了n元模型的性质[2]。
假设语言(单词序列)是由一个随机过程产生的数据,n元模型的熵的定义为:
这里p表示生成数据的真实概率分布。n元模型的交叉熵的定义为:
这里p表示真实概率分布,q表示某一个模型确定的概率分布。有关系成立
也就是说,当单词序列的长度趋于无穷的时候,可以定义语言的熵。这个熵取一个定值,可以从该语言的数据中估计得到。在之后的工作中,香农还对英语的字母级别的熵进行了估计。
熵表示一个概率分布的不确定性,交叉熵表示一个概率分布相对于另一个概率分布的不确定性。熵是交叉熵的下界。如果一个语言模型比另一个语言模型能更准确地预测单词序列数据,那么它就应该有更小的交叉熵。香农的研究为语言模型学习提供了评价工具2。
乔姆斯基与语言模型 …
乔姆斯基(Noam Chomsky)于1956年提出了著名的乔姆斯基层次结构,指出用n元模型描述自然语言存在局限性[3]。
乔姆斯基理论认为,语言由句子的有限或无限集合组成,每个句子是有限长度的单词序列,单词来自一个有限的词表,语法是能够产生这个语言所有句子的“装置”。语法有不同的复杂度,形成层次化结构。由有限状态机表示的语法称为有限状态语法。
基于马尔可夫链定义的语法是一个有限状态语法。这个语法或者任何一个有限状态语法不能生成英语的所有句子。英语的表示之间存在依存关系,比如以下的S1和S2之间、S3和S4之间。
神经语言模型 …
2003年,本吉奥(Yoshua Bengio)等提出了第一个神经语言模型,开启了语言模型的新时代[4]。
n元模型的表示和学习能力是有限的。传统的方法是从语料中统计n元模型中的条件概率,对未见过的n元组的概率通过平滑的方法估算。模型的参数个数是指数级的
式中
本吉奥等人提出神经语言模型之后,又有其他人开展了大量的工作,提出了多种词向量的学习方法和神经语言模型的学习方法,从不同侧面对其进行了改进。有代表性的模型是循环神经网络语言模型,包括长短时记忆模型(Long Short Term Memory,LSTM)。LSTM语言模型中,每个位置上的条件概率由LSTM网络决定
式中
中间层是
式中U、W、V表示权重矩阵,b表示偏置向量,tanh()是双曲正切函数,softmax()是软最大化函数3。图2显示了多层LSTM语言模型中的表示之间的关系。可以看出,LSTM语言模型已经没有马尔可夫假设,任何位置的单词依赖于之前所有位置的单词。LSTM模型中重要的概念是中间表示或状态。单词之间的依存关系通过状态之间的依存关系刻画。模型的参数在不同的位置是共享的,但得到的表示在各个位置是不同的。
语言模型可以用于语言(单词序列)的概率计算,也可以用于语言的生成。在后者的任务中,通过语言模型(如LSTM)随机抽样产生自然语言的句子或文章。从大规模数据学习到的LSTM语言模型可以生成相当自然的句子。
条件语言模型(conditional language model)是语言模型的扩展,可以计算在给定条件下一个单词序列的条件概率。如果给定条件是另一个单词序列,问题就变成了从一个单词序列到另一个单词序列的转换,即所谓序列到序列问题,例如机器翻译、文本摘要、生成式对话。如果给定的条件是一张图片,问题就变成了从一张图片到一个单词序列的转换,例如图片标题生成。
条件语言模型有更多的使用场景,特别是用于语言生成。机器翻译将一个语言的句子转化为另一个语言的句子,两者语义相同。对于对话生成,系统针对用户发话产生回复,两者形成一轮对话。文本摘要将一个长的文本转换为一个短的文本,使后者概括前者的内容。模型的条件概率分布所表示的“语义”因应用而不同,从应用的数据中学习得到。
对序列到序列模型的研究产生了大量新技术。有代表性的序列到序列模型是瓦斯瓦尼(Vaswani)等开发的Transformer[5]。Transformer模型的特点是完全基于注意力机制,使用注意力实现序列到序列模型的编码、解码,以及编码器和解码器之间的信息传递。目前几乎所有的机器翻译系统都在使用Transformer模型,机器翻译在很多应用场景中已经达到可用的水平。
预训练语言模型 …
预训练语言模型的基本想法是,基于Transformer模型的编码器或解码器实现语言模型。首先使用大规模的语料通过无监督学习的方式学习模型的参数,即进行预训练;之后将模型用于一个具体任务,使用少量的标注数据通过监督学习的方式进一步调节模型的参数,即进行微调。
Transformer模型具有强大的语言表示能力,大规模语料包含丰富的语言表达(这样的无标注数据可以较容易地获得),加之大规模深度学习的训练变得越来越高效,因此学习得到的预训练语言模型通常可以有效地表示语言的词汇、句法和语义特征。预训练语言模型,如基于Transformer的双向编码器表示模型(Bidirectional Encoder Representation from Transformers,BERT)、生成式预训练(Generative Pre-Training,GPT)等已成为当前语言理解和语言生成的核心技术。
雷德福(Radford)等提出的GPT4模型有以下结构[6]。输入是单词序列
在每个位置将最后的中间表示通过输出层转换为单词生成的概率分布。GPT的预训练与通常的语言模型学习完全一样,目标是预测单词序列的产生。对给定的单词序列
其中θ表示GPT模型的参数。
图3显示GPT模型中的表示之间的关系。在输入层的每个位置得到的输入表示由该位置的词向量和位置向量组合而成。每一层的中间表示由下一层的中间表示通过掩码多头自注意力机制组合生成得到。每一层每个位置的中间表示只依赖于下一层之前位置的中间表示。在输出层的每个位置根据该位置的最后的中间表示产生单词的生成概率分布。每一个位置的信息只依赖于之前位置的信息。可以从左到右在每个位置递归地进行单词生成概率的预测,参见式(1)(2)。也就是说,预测是一个自回归的过程(这一点与LSTM语言模型一样),所以GPT更适合于语言生成。
德夫林(Devlin)等提出的BERT模型有以下结构[7]。输入是两个合并的单词序列。首先经过输入层,产生输入表示的序列,记作矩阵H (0)。之后经过L个Transformer编码层,得到中间表示的序列,记作H (L)。
在每个位置可以将最后的中间表示再通过输出层转换为单词生成的概率分布。BERT的预训练是掩码语言模型学习5。假设单词序列
其中θ表示BERT模型的参数,δi取值1或0,表示是否对位置i的单词进行掩码处理。掩码语言模型和一般的语言模型属于不同的模型。前者的学习基于去噪自动编码原理,后者的学习基于概率系列预测原理。
图4显示BERT模型中的表示之间的关系。在输入层的每个位置得到的输入表示由该位置的词向量、位置向量等组合而成。每一层的中间表示由下一层的中间表示通过多头自注意力机制组合生成得到。每一层每个位置的中间表示依赖于下一层所有位置的中间表示。在输出层的每个掩码位置根据该位置的最后的中间表示产生单词的生成概率分布。每一个掩码位置的信息依赖于之前和之后位置的信息。在每个掩码位置独立地进行单词生成概率的预测,参见式(3)。也就是说,预测不是自回归过程,所以BERT只能用于语言理解。
对预训练语言模型的直观解释是,机器基于大量的语料做了大量的词语接龙(GPT)或词语填空(BERT)练习,捕捉到了由单词组成句子,再由句子组成文章的各种规律,并且把它们表示并记忆在模型之中。文章不是由单词和句子随机组成的,而是遵循词汇、语法、语义规则组合而成。GPT和BERT分别利用Transformer的解码器和编码器很好地实现了语言的组合性(compositionality)。也就是说,GPT和BERT获取了相当多的词汇、语法和语义知识。研究发现,BERT的各层有不同的特点。底层主要表示词汇信息,中层主要表示语法信息,上层主要表示语义信息。
预训练语言模型的应用给自然语言处理带来了极大的成功。(微调后的)BERT在语言理解任务上,比如阅读理解,准确率已超过人类;(微调后的)GPT在语言生成任务上也达到了让人惊叹的程度,比如生成的假新闻能够以假乱真,说明预训练语言模型已经能够学习和表示大量的语言知识。
未来展望 …
当代科学(脑科学和认知科学)对人类处理语言(语言理解和语言生成)的机制了解得非常有限。在可预见的未来还很难看到有重大突破,甚至永远无法突破的可能性也是存在的。另一方面,我们希望不断推进人工智能技术的发展,开发出类似人类处理语言的机器,成为对人类有用的工具。
现在看来,神经语言模型是目前为止最成功的一条路径。语言模型的本质特点(定义在包含所有单词序列的离散空间上的概率分布)一直没有改变。学习的过程就是寻找最优的模型,使得在交叉熵的意义上预测语言数据的准确率最高(见图5)。神经语言模型通过神经网络来构建语言模型,其优势是可以通过使用复杂模型、大数据、大算力,更加精确地模拟人的语言使用。从本吉奥等的最初模型到LSTM语言模型,再到GPT和BERT等预训练语言模型,神经网络的结构变得越来越复杂,预测语言的能力也越来越强大(交叉熵越来越小)。但这不等于具有和人同样的语言使用能力,其局限性也是不言而喻的。
是否有其他路径的存在?现在还不是很清楚。可以预见的是,神经语言模型这条路径还有很多机会能够取得更大的突破。现在的神经语言模型在表示能力和学习效率方面与人还有很大的差距。是否能开发出更好的模型,(在表面上)更接近人类的语言处理,是今后研究的重要方向。从脑科学有限的发现中仍然可以得到值得借鉴之处。
人的语言处理是在布洛卡区(Broca’s area)和韦尼克区(Wernicke’s area)两个脑区进行的(见图6),前者负责语法,后者负责词汇。因大脑受到伤害而患有失语症的病人有两种典型情况。布洛卡区受损的病人说话时只能吐出一个个单词,不能组织成完整的句子。韦尼克区受损的病人说出的话,语法一般是正确的,但词语表达经常让人无法理解。一个合理的假说是人的语言处理是在两个脑区并行进行的。是否有必要采用像人一样的处理机制是一个值得研究的课题。BERT等语言模型没有显式地引入语法,不能像乔姆斯基指出的那样无限地组合语言。如何体现语法在语言处理中的作用仍是需要探索的问题。
脑科学家认为,人的语言理解是在大脑中唤起相关概念的表征,在意识中产生表象的过程[9]。概念的表征有视觉、听觉、触觉等,是人在成长和学习过程中,通过自己的体验在大脑中各个部位记忆的关于概念的视觉、听觉、触觉内容。所以,对人来说语言理解(认知)是与体验(感知)密切相关的。生活中的基本概念,比如猫、狗,是从视觉、听觉、触觉等感官的输入中一起习得的。听到或看到“猫”“狗”这些词,也会让人联想到相关的视觉、听觉、触觉等的表象。能否从大量多模态数据(语言、视觉、听觉)中学到更好的模型,使机器能做出更加智能的语言、视觉、听觉处理?“多模态语言模型”是未来应该探索的一个重要课题。
预训练语言模型,如BERT,包含了一定的简单知识,微调后也可以用于一些简单的推理。这也充分体现了其能力之强大。但语言模型本身不具备推理机制,无论是人的日常推理还是严格的逻辑推理。如何实现推理能力需要今后长期的研究和探索。如何实现复杂知识的表示、学习、使用能力也是今后需要研究的重要方向。两者都超出了语言模型所能覆盖的范围,应该需要不同的理论和方法6。
结语 …
语言模型已有一百多年的历史。当年马尔可夫、香农等应该没有预见到他们所研究的模型和理论后来会有如此巨大的发展和影响,甚至对本吉奥来说,应该也是始料未及的。一百年以后的语言模型会发展成什么样子?是否还是人工智能技术的重要组成部分?这也超出了我们能够想象与预测的范围。对我们来说,能成为看到人工智能技术突飞猛进发展的第一代人,并且能参与到相关技术的研发之中,已是足够幸运的了。
致谢:徐君博士、任维络博士对本文初稿提出了宝贵意见,在此表示感谢。
脚注 …
1 不失一般性,这里用单词序列作为例子,也可以是字的序列或者符号的序列。
2 在实际应用中通常使用困惑度(perplexity)。困惑度PP和交叉熵H的关系是PP=2H。
3 软最大化函数的定义:
4 GPT之后还有GPT2、GPT3被提出,模型规模变得更大。
5 最初的BERT模型训练使用掩码语言模型和下句预测两个方法,但后来的研究发现,前者更加本质而且可以只用前者。
6 这里还涉及到神经语言模型,更一般的深度学习的恰当性、强健性、可解释性等问题。笔者的观点在《自然语言处理中的深度学习:评析与展望》[6]一文中有所阐述。
参考文献 …
[1] Hayes B. First Links in the Markov Chain[J].American Scientist, 2013, 101(2):92.
[2] Shannon C. A Mathematical Theory of Communication[J].The Bell System Technical Journal, 1948, 27(7): 379-423.
[3] Chomsky N. Three Models for the Description of Language[J].IEEE Trans. on Information Theory, 1956, 2(3): 113-124.
[4] Bengio Y, Ducharme R, Vincent P, et al.A Neural Probabilistic Language Model[J]. Journal of Machine Learning Research, 2003, 3:1137-1155.
[5] Vaswani A, Shazeer N, Parmar N, et al. Attention is all you need[C]// NIPS'17: Proceedings of the 31st International Conference on Neural Information Processing Systems. 2017: 5998-6008.
[6] Radford A, Narasimhan K, Salimans T, et al. Improving language understanding by generative pre-training[OL].(2018-06). https://s3-us-west-2. amazonaws. com/openai-assets/researchcovers/languageunsupervised/language understanding paper. pdf.
[7] Devlin J, Chang M W, Lee K, et al. BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding[C]// Proceedings of the 2019 Conference of the North American Chapter of the Association for Computational Linguistics: Human Language Technologies, Volume 1 (Long and Short Papers). 2019: 4171-4186.
[8] Bergen B. Louder Than Words: The New Science of How the Mind Makes Meaning[M]. Basic Books, 2012.
[9] 李航.智能与计算[J].中国计算机学会通讯, 2019, 15(1): 52-56.
[10] 李航.自然语言处理中的深度学习:评析与展望[J]. 中国计算机学会通讯, 2019, 15(9): 46-50.
特别声明:中国计算机学会(CCF)拥有《中国计算机学会通讯》(CCCF)所刊登内容的所有版权,未经CCF允许,不得转载本刊文字及照片,否则被视为侵权。对于侵权行为,CCF将追究其法律责任
李 航
CCF杰出会员,CCCF特邀专栏作家。字节跳动科技有限公司人工智能实验室总监(Director of AI Lab)。主要研究方向为自然语言处理、信息检索、机器学习等。lihang.lh@bytedance.com
CCF推荐
【精品文章】
点击“阅读原文”,加入CCF。