NLP预训练模型的研究进展有哪些?( 二 )


BERT
本节介绍 BERT 及其实现细节 。
【NLP预训练模型的研究进展有哪些?】模型架构
BERT 的模型架构是一个多层双向 Transformer 编码器 。基于 Vaswani 等人 (2017) 描述的原始实现 。在 tensor2tensor 库中发布 。由于 Transformer 的使用最近变得很普遍 。而且我们的实现与原始版本实际相同 。我们将不再赘述模型架构的背景 。
在本文中 。我们将层数(即 Transformer 块)表示为 L 。将隐藏尺寸表示为 H、自注意力头数表示为 A 。在所有实验中 。我们将前馈/滤波器尺寸设置为 4H 。即 H=768 时为 3072 。H=1024 时为 4096 。我们主要报告在两种模型尺寸上的结果:
BERTBASE: L=12, H=768, A=12, 总参数=110M
BERTLARGE: L=24, H=1024, A=16, 总参数=340M
为了比较 。BERTBASE 的模型尺寸与 OpenAI GPT 相当 。然而 。BERT Transformer 使用双向自注意力机制 。而 GPT Transformer 使用受限的自注意力机制 。导致每个 token 只能关注其左侧的语境 。我们注意到 。双向 Transformer 在文献中通常称为「Transformer 编码器」 。而只关注左侧语境的版本则因能用于文本生成而被称为「Transformer 解码器」 。图 1 直观显示了 BERT、OpenAI GPT 和 ELMo 的比较结果 。

NLP预训练模型的研究进展有哪些?

文章插图
图 1:预训练模型架构之间的区别 。BERT 使用双向 Transformer 。OpenAI GPT 使用从左到右的 Transformer 。ELMo 使用独立训练的从左到右和从右到左 LSTM 的级联来生成下游任务的特征 。三种模型中 。只有 BERT 表征会基于所有层中的左右两侧语境 。
预训练任务
与 Peters 等人 (2018) 和 Radford 等人 (2018) 不同 。我们不使用传统的从左到右或从右到左的语言模型来预训练 BERT 。而是使用两个新型无监督预测任务 。
任务 #1:Masked LM
为了训练深度双向表征 。我们采取了一个直接的方法 。随机遮蔽输入 token 的某些部分 。然后预测被遮住的 token 。我们将这一步骤称为「masked LM」(MLM) 。不过它在文献中通常被称为 Cloze 任务 (Taylor, 1953) 。在这种情况下 。对应遮蔽 token 的最终隐藏向量会输入到 softmax 函数中 。并如标准 LM 中那样预测所有词汇的概率 。在所做的所有实验中 。我们随机遮住了每个序列中 15% 的 WordPiece token 。与去噪自编码器 (Vincent et al., 2008) 相反 。我们仅预测遮蔽单词而非重建整个输入 。
任务 #2:下一句预测
很多重要的下游任务(如问答(QA)和自然语言推断(NLI))基于对两个文本句子之间关系的理解 。这种关系并非通过语言建模直接获得 。为了训练一个理解句子关系的模型 。我们预训练了一个二值化下一句预测任务 。该任务可以从任意单语语料库中轻松生成 。具体来说 。选择句子 A 和 B 作为预训练样本:B 有 50% 的可能是 A 的下一句 。也有 50% 的可能是来自语料库的随机句子 。
实验
这部分 。我们将展示 BERT 在 11 个 NLP 任务上的微调结果 。
NLP预训练模型的研究进展有哪些?

文章插图
图 3:我们的任务特定模型是由向 BERT 添加了一个额外的输出层而形成的 。因此一小部分参数需要从头开始学习 。在众多任务中 。(a) 和 (b) 任务是序列级任务 。(c) 和 (d) 是 token 级任务 。图中 E 表示输入嵌入 。T_i 表示 token i 的语境表征 。[CLS] 是分类输出的特殊符号 。[SEP] 是分割非连续 token 序列的特殊符号 。
NLP预训练模型的研究进展有哪些?

文章插图
表 1:GLUE 测试结果 。评分由 GLUE 评估服务器得到 。每个任务下面的数字表示训练样本的数量 。「Average」列与 GLUE 官方分数略微不同 。因为我们排除了有问题的 WNLI 集 。OpenAI GPT = (L=12, H=768, A=12);BERT_BASE = (L=12, H=768, A=12);BERT_LARGE = (L=24, H=1024, A=16) 。BERT 和 OpenAI GPT 是单个模型、单个任务 。所有结果来自于以下地址:https://gluebenchmark.com/leaderboard 和 https://blog.openai. com/language-unsupervised/ 。
NLP预训练模型的研究进展有哪些?

文章插图
表 2:SQuAD 结果 。BERT 集成是使用不同预训练检查点和微调种子(fine-tuning seed)的 7x 系统 。
NLP预训练模型的研究进展有哪些?

文章插图
表 3:CoNLL-2003 命名实体识别结果 。超参数通过开发集来选择 。得出的开发和测试分数是使用这些超参数进行五次随机 restart 的平均值 。

推荐阅读