历史说明
正如第 3 章所讨论的,最早的语言模型是 n 元语言模型,它们大约在同一时期由两方各自独立开发:一方是 IBM Thomas J. Watson 研究中心的 Fred Jelinek 及其同事,另一方是 CMU 的 James Baker。最早用“语言模型”这一术语指称各种语言属性(语法、语义、语篇、说话者特征)如何影响词序列概率的模型,正是 Jelinek 和 IBM 团队(Jelinek et al., 1975)。他们将语言模型与 声学模型(acoustic model)区分开来,后者负责捕捉音素序列的声学/语音特征。
此后 40 年间,n 元语言模型广泛用于语音识别、机器翻译等各种 NLP 任务,并且往往是模型的多个组件之一。这些 n 元模型的上下文逐渐变长;高效的语言模型工具包普遍使用 5 元模型(Stolcke, 2002; Heafield, 2011)。
神经大语言模型有多个思想源头。其中之一,是 20 世纪 90 年代仍在 IBM 研究院 Jelinek 团队中开展的工作:把判别式分类器应用于语言模型。Roni Rosenfeld 在其博士论文(Rosenfeld, 1994)中首次于该 IBM 实验室把逻辑回归应用于语言建模,当时使用的名称是最大熵模型(maximum entropy model,简称 maxent model);之后,他在 Rosenfeld (1996) 中发表了更为完整的版本。该模型在一个逻辑回归预测器中整合了多种信息,既包括 n 元信息,也包括上下文中的其他特征,例如远距离 n 元组,以及称为触发词对(trigger pair)的相关词对。Rosenfeld 的模型已经预示了现代语言模型:它是一个以自监督方式训练的统计词语预测器,只需学习预测语料库中的后续词语即可。
另一个源头,是在 LSA/LSI 模型中首次使用预训练嵌入来建模词义(Deerwester et al., 1988)。回顾第 5 章的历史说明:在 LSA(潜在语义分析)中,先在语料库上训练一个词项—文档矩阵,再执行奇异值分解,并使用前 300 个维度作为表示词语的向量嵌入。Landauer et al. (1997) 首次使用了“embedding”一词。除了发展预训练与嵌入的思想之外,LSA 社群还开发了把 LSA 嵌入与 n 元模型结合成统一语言模型的方法(Bellegarda, 1997; Coccaro and Jurafsky, 1998)。
Yoshua Bengio 及其同事在一系列影响深远、发展神经语言模型思想的论文中(Bengio et al. 2000; Bengio et al. 2003; Bengio et al. 2006),吸收了上述两条自监督语言建模研究路线的核心思想:判别式训练的词语预测器与预训练嵌入。与 Rosenfeld 的最大熵模型一样,Bengio 的模型把连续文本中的下一词作为监督信号;与 LSA 模型一样,它也学习嵌入,但不同之处在于,这种学习发生在语言建模过程中。Bengio et al. (2003) 的模型是一个神经语言模型:它是一个根据先前词语学习预测下一词的神经网络,并且把嵌入学习作为预测过程的一部分。
此后的多年间,神经语言模型得到了多种扩展,其中或许最重要的是 Mikolov et al. (2010) 和 Mikolov et al. (2011) 提出的 RNN 语言模型。RNN 语言模型或许是第一个准确到足以超越传统 5 元语言模型性能的神经模型。
不久之后,Mikolov et al. (2013a) 和 Mikolov et al. (2013b) 提出简化这些神经网络语言模型的隐藏层,从而创建预训练的 word2vec 词嵌入。
LSA 和 word2vec 等静态嵌入模型体现了一种特定的预训练范式:先在预训练数据集上训练一种表示,再把这些表示用于后续任务。Dai and Le (2015) 与 Peters et al. (2018) 重新构想了这一思路,他们提出的模型先以语言模型目标进行预训练,之后同一个模型既可以冻结并直接用于语言建模,也可以继续使用语言模型目标进行微调。例如,ELMo 使用 biLSTM,在大型预训练数据集上以语言模型目标进行自监督学习;随后在特定领域的数据集上微调,再冻结权重并添加任务专用模型头。ELMo 的工作影响尤其深远;它的出现或许标志着研究社群终于明确认识到,语言模型可以作为 NLP 问题的一种通用解决方案。
Transformer 最初被用作编码器—解码器(Vaswani et al., 2017),随后用于掩码语言建模(Devlin et al., 2019)(第 13 章和第 9 章将分别介绍)。之后,Radford et al. (2019) 表明,基于 Transformer 的自回归语言模型 GPT-2 能够以零样本方式执行摘要、问答等多种 NLP 任务。
语言模型所用的技术也可以应用于其他领域和任务,例如视觉、语音和遗传学。当我们所计算的元素不一定是词语时,基础模型(foundation model)有时被用作一个更宽泛的术语,泛指把大语言模型技术用于不同领域和范围的做法。Bommasani et al. (2021) 是一篇内容广泛的综述,它勾勒了基础模型的机遇与风险,并特别关注大语言模型。
Transformer(Vaswani et al., 2017)的开发借鉴了两条先前研究路线:自注意力与记忆网络。
编码器—解码器注意力(encoder-decoder attention)是这样一种思想:对输入词语的编码进行软加权,以向生成式解码器提供信息(见第 13 章)。Graves (2013) 在手写生成的语境中发展了这一思想,Bahdanau et al. (2015) 则将其用于机器翻译。研究者后来取消了对彼此独立的编码序列与解码序列的要求,把注意力视为一种在收集从低层向高层传递的信息时对词元加权的方法,由此将该思想扩展为自注意力(Ling et al., 2015; Cheng et al., 2016; Liu et al., 2016)。
Transformer 的其他方面,包括键、查询和值这些术语,都来自记忆网络。记忆网络是一种为网络加入外部读写存储器的机制:它使用查询的嵌入,与代表联想记忆中内容的键进行匹配(Sukhbaatar et al., 2015; Weston et al., 2015; Graves et al., 2014)。
[更多 Transformer 历史将在下一稿中补充。]