BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding

BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding

提出契机

作者指出目前的技术限制了预训练表示的潜力,尤其是对于微调方法而言。主要限制在于标准语言模型是单向的,这导致了在预训练期间可供选择的架构受到了限制。例如,在OpenAI GPT中,作者采用了左到右的架构,这意味着每个令牌只能在其Transformer的自注意力层中关注先前的令牌。这种限制对于句级任务可能不够优化,而对于像问答这样的词级任务,当需要从两个方向融合上下文时,微调方法可能会受到非常不利的影响。

本文贡献

• **强调了双向预训练在语言表示中的重要性。**与Radford等人(2018年)不同,该研究使用了单向语言模型进行预训练,而BERT则采用了遮罩语言模型,以支持深度的双向预训练表示。这与Peters等人(2018a年)的方法形成对比,他们使用了左右独立训练的浅层连接语言模型(从左到右和从右到左的语言模型)。

• **证实了预训练表示减少了对大量精心设计的任务特定架构的需求。**BERT(Bidirectional Encoder Representations from Transformers)是第一个基于微调的表示模型,它在一系列句子级和token级任务上实现了最先进的性能,超越了许多专门设计的任务架构。

方法

在这里插入图片描述
在这里插入图片描述

模型架构:

  • BERT模型结构采用的原始Transformer架构中对的编码器部分。
  • 该文设计了两种类型的模型,分别为 B E R T b a s e BERT_{base} BERTbase(L-12, H=768, A=12, 总参数=1.1亿)和 B E R T l a r g e BERT_{large} BERTlarge(L=24,H=1024, A=16, 总参数=3.4亿)。
  • 词汇表大小为30000个,分词方式为wordpiece。

预训练BERT(如图1左侧)

任务1(掩码语言模型(MLM)):

针对输入数据采用’[MASK]'这个符号对原始文本进行随机掩码,而后采用模型进行掩码还原。

  • 掩码方式:随机选择原始句子文本中15%的token进行掩码操作,但并不是直接对token进行掩码,而是针对每个选择出来的token,80%的概率用[MASK]替换,10%采用此表中的随机token进行替换,10%的概率保持不变。
  • 损失函数:采用交叉熵函数作为损失函数。
任务2(下一句预测(NSP))

输入的文本中包含两个句子 s e n t 1 sent_1 sent1 s e n t 2 sent_2 sent2,输入格式为"[CLS]sent1[SEP]sent2[SEP]"。

  • 数据构建方式:如果 s e n t 1 sent_1 sent1 s e n t 2 sent_2 sent2在原始本文中是连续的,标签为True。否则标签为False。
预训练数据:

书籍语料库(8亿字节)和英文维基百科(25亿字节)。对于维基百科,我们仅提取文本段落, 忽略列表、表格和标题。

微调任务

微调非常直接,因为Transformer中的自注意力机制使得BERT能够通过替换适当的输入和输出来处理多种下游任务,无论这些任务是涉及单个文本还是文本对。对于涉及文本对的应用,常见的模式是在独立编码文本对之前应用双向交叉注意力,例如Parikh等人(2016年)和Seo等人(2017年)。BERT则利用自注意力机制将这两个阶段统一起来,因为使用自注意力对连接的文本对进行编码实际上包含了两个句子之间的双向交叉注意力。

对于每个任务,我们只需将任务特定的输入和输出插入BERT中,并端到端微调所有参数。在输入阶段,来自预训练的句子A和B分别对应于(1)改写中的句子对,(2)蕴含中的前提-假设对,(3)问答中的问题-段落对,以及(4)文本分类或序列标注中的退化文本-空对。在输出阶段,将令牌表示馈入输出层用于令牌级任务,如序列标注或问答,而[CLS]表示则馈入输出层用于分类,如蕴含或情感分析。

消融实验

预训练任务的影响

在这里插入图片描述

实验结果如上表所示:

  • 移除NSP任务在几个任务上的效果都出现下降(表明了NSP任务的有效性)
  • 采用LTE & No NSP的效果明显不如双向的BERT在下游任务上的表现好。在所有任务中,左到右(LTR)模型的性能都低于掩码语言模型(MLM)模型,尤其在MRPC和SQuAD上的下降更为显著。对于SQuAD任务而言,直观上,LTR模型在令牌预测上表现不佳,因为它缺乏右侧上下文的隐藏状态。为了尽可能增强LTR系统,我们尝试添加了一个随机初始化的双向LSTM。这确实显著提高了SQuAD的结果,但仍然远远落后于预训练的双向模型。然而,双向LSTM对GLUE任务的表现产生了负面影响。

预训练模型参数量对模型效果的影响

在这里插入图片描述

实验结果如上表所示。

  • 在同等预训练数据量的前提下,更大的模型在下游任务上的表现更好。
  • 随着模型的增大,模型的困惑度也在逐渐变小,表明模型的回答越来越自信。
  • 同等参数量下,注意力头数的增加模型效果出现了微弱的提升。

基于特征的方法

在这里插入图片描述
在本节中,我们通过将BERT应用于CoNLL-2003命名实体识别(NER)任务(Tjong Kim Sang and De Meulder, 2003)来比较这两种方法。在BERT的输入中,我们使用保持大小写一致的WordPiece模型,并包含数据提供的最大文档上下文。遵循标准做法,我们将此任务形式化为标记任务,但不使用条件随机场(CRF)层作为输出。我们使用第一个子词的表示作为NER标签集的令牌级分类器的输入。

为了消除微调方法,我们采用基于特征的方法,从一个或多个层中提取激活,而无需微调BERT的任何参数。这些上下文嵌入作为随机初始化的两层768维双向长短期记忆网络(BiLSTM)的输入,然后再连接到分类层。结果见表7。BERTlarge的表现与最先进的方法相当。表现最好的方法是将预训练Transformer的顶层四个隐藏层的令牌表示进行连接,这仅落后于微调整个模型0.3 F1。这表明BERT在微调和基于特征的方法中都表现出效果。

不同的掩码方式对预训练模型效果的影响

在这里插入图片描述

以下是一个研究不同掩码策略效果的消融实验。需要注意的是,掩码策略的目的是减小预训练和微调之间的不匹配,因为在微调阶段永远不会出现 ‘[MASK]’ 符号。我们报告了 MNLI 和 NER 的开发集结果。对于 NER,我们同时报告了微调和特征基方法,因为我们预期这种不匹配对于特征基方法会加剧,因为模型将没有机会调整表示。实验结果见表 8。在表格中,掩码表示我们在 MLM 预训练中将目标 token 替换为 ‘[MASK]’ 符号;同样表示保留目标 token;随机表示用另一个随机 token 替换目标 token。表左侧的数字表示预训练期间特定策略使用的概率(BERT 分别使用 80%、10%、10%)。右侧列是 Dev 集的性能。对于基于特征的方法,我们合并 BERT 的最后 4 层作为特征,这在第 5.3 节中已被证明是最好的方法。从表格中可以看出,微调对不同的掩码策略表现出惊人的鲁棒性。然而,正如预期的那样,仅使用掩码策略在将基于特征的方法应用于 NER 时存在问题。有趣的是,仅使用随机策略的表现也远不如我们的策略。

***# 总结
最后我们最本论文中的一些结果进行总结

  • 通过MLM和NSP预训练任务进行预训练,能够有效提升下游任务的微调效果
  • NSP任务和MLM任务能够对预训练模型有叠加效果,移除NSP任务会导致效果下降
  • 同等训练数据下,模型的参数量越大,模型的下游任务微调效果越好
  • 同等参数量下,注意力头数的增加对导致模型的效果出现微弱提升
  • 模型参数量越大模型的混淆度也在逐渐变小
  • 在15掩码的前提下,采用80%[MASK]替换,10%保持不变,10%采用词表中的随机词替换的防范进行掩码,总体效果最好。
  • 最后四层的BERT输出的特征具备非常好的特征效果。***
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值