【中文版 | 论文原文】BERT:语言理解的深度双向变换器预训练 (3)

  选择的BERTBASE模型尺寸等同于OpenAIGPT模型尺寸,以进行比较。然而,重要的是,BERT变换器使用双向自注意,而GPT变换器使用受限自注意,每个词块只能注意其左侧语境。我们注意到,在文献中,双向变换器通常指称为“变换器编码器”,而其左侧语境版本被称为“变换器解码器”,因为它可用于文本生成。BERT,OpenAIGPT和ELMo之间的比较如图1所示。

【中文版 | 论文原文】BERT:语言理解的深度双向变换器预训练

图1:预训练模型架构间差异。BERT使用双向变换器,OpenAI GPT使用从左到右的变换器,ELMo使用独立训练的从左到右和从右到左LSTM级联来生成下游任务的特征。三种模型中只有BERT表征基于所有层左右两侧语境。 

3.2 输入表征

  我们的输入表征(input representation)能在一个词块序列中明确地表征单个文本句子或一对文本句子(例如,[问题,答案][Question,Answer])。(注:在整个这项工作中,“句子”可以是连续文本的任意跨度,而不是实际的语言句子。“序列”指BERT的输入词块序列,其可以是单个句子或两个句子打包在一起。)对于给定词块,输入表征通过对相应词块的词块嵌入段嵌入位嵌入求和来构造。图2给出了我们的输入表征的直观表征。

【中文版 | 论文原文】BERT:语言理解的深度双向变换器预训练

图2:BERT输入表征。输入嵌入是词块嵌入、段嵌入和位嵌入的总和。

具体是:

我们使用WordPiece嵌入(Wu等,2016)30,000个词块表。我们用##表征分词

我们使用学习的位置嵌入,支持的序列长度最多为512词块

每个序列的第一个词块始终是特殊分类嵌入([CLS])。对应该词块的最终隐藏状态(即,变换器输出)被用作分类任务的聚合序列表征。对于非分类任务,将忽略此向量。

句子对被打包成单个序列。我们以两种方式区分句子。首先,我们用特殊词块([SEP])将它们分开。其次,我们添加一个学习句子A嵌入到第一个句子的每个词块中,一个句子B嵌入到第二个句子的每个词块中。

对于单句输入,我们只使用句子A嵌入。

3.3 预训练任务

  与Peters等人(2018)Radford等人(2018)不同,我们不使用传统的从左到右或从右到左的语言模型来预训练BERT。相反,我们使用两个新型无监督预测任务对BERT进行预训练,如本节所述。

3.3.1 任务#1:遮蔽语言模型

  直观地说,有理由相信深度双向模型左向右模型从左到右和右到左模型的浅层连接更严格。遗憾的是,标准条件语言模型只能从左到右或从右到左进行训练,因为双向调节将允许每个单词在多层语境中间接地“看到自己”。

  为了训练深度双向表征,我们采用一种直接方法,随机遮蔽输入词块的某些部分,然后仅预测那些被遮蔽词块。我们将这个过程称为“遮蔽LM(MLM),尽管它在文献中通常被称为Cloze完形任务(Taylor, 1953)。在这种情况下,对应于遮蔽词块的最终隐藏向量被馈送到词汇表上的输出softmax函数中,如在标准LM中那样预测所有词汇的概率。在我们所有实验中,我们随机地遮蔽蔽每个序列中所有WordPiece词块的15%。与去噪自动编码器(Vincent等,2008)相反,我们只预测遮蔽单词而不是重建整个输入。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wpssjz.html