【论文阅读】BERT:Pre-training of Deep Bidirectional Transformers forLanguage Understanding
我们引入了一种新的语言表示模型BERT,它代表来自transformer的双向编码器表示。与最近的语言表示模型(Peters et al., 2018a;Radford et al., 2018)不同,BERT旨在通过在所有层中对左右上下文进行联合条件反射,从未标记的文本中预训练深度双向表示。因此,预训练的BERT模型可以通过一个额外的输出层进行微调,从而为广泛的任务(如问答和语言推理)创建最先进
abstract
我们引入了一种新的语言表示模型BERT,它代表来自transformer的双向编码器表示。与最近的语言表示模型(Peters et al., 2018a; Radford et al., 2018)不同,BERT旨在通过在所有层中对左右上下文进行联合条件反射,从未标记的文本中预训练深度双向表示。因此,预训练的BERT模型可以通过一个额外的输出层进行微调,从而为广泛的任务(如问答和语言推理)创建最先进的模型,而无需对特定于任务的架构进行大量修改。
BERT在概念上简单,经验上强大。它在11个自然语言处理任务上获得了新的最先进的结果,包括将GLUE得分提高到80.5%(绝对提高7.7%),将多项准确性提高到86.7%(绝对提高4.6%),将SQuAD v1.1问答测试F1提高到93.2(绝对提高1.5分)和SQuAD v2.0测试F1提高到83.1(绝对提高5.1分)。
1.Introduction
语言模型预训练已被证明对改善许多自然语言处理任务有效(Dai和Le, 2015; Peters等人,2018a; Radford等人,2018;Howard和Ruder, 2018)。其中包括句子级任务,如自然语言推理(Bowman等人,2015;Williams等人,2018)和解释(Dolan和Brockett, 2005),旨在通过整体分析来预测句子之间的关系,以及标记级任务,如命名实体识别和问答,其中需要模型在标记级产生细粒度输出(Tjong Kim Sang和De Meulder, 2003; Rajpurkar等人,2016)。
将预训练的语言表示应用于下游任务有两种现有策略:基于特征和微调。基于特征的方法,如ELMo (Peters等人,2018a),使用特定于任务的架构,其中包括预训练的表示作为附加特征。微调方法,如生成式预训练转换器(OpenAI GPT) (Radford等人,2018),引入了最小的任务特定参数,并通过简单地微调所有预训练参数来对下游任务进行训练。这两种方法在预训练过程中具有相同的目标函数,它们使用单向语言模型来学习一般的语言表示。
我们认为当前的技术限制了预训练表征的力量,特别是对于微调方法。主要的限制是标准语言模型是单向的,这限制了在预训练期间可以使用的体系结构的选择。例如,在OpenAI GPT中,作者使用左-右架构,其中每个token只能关注Transformer自关注层中的前一个令牌(Vaswani et al., 2017)。这种限制对于句子级任务来说是次优的,并且在将基于调优的方法应用于诸如问答之类的token级任务时可能非常有害,在这些任务中,结合两个方向的上下文是至关重要的。
在本文中,我们通过提出BERT:来自变压器的双向编码器表示来改进基于微调的方法。BERT通过使用受完形填空任务(Taylor, 1953)启发的“掩模语言模型”(MLM)预训练目标,缓解了前面提到的单向性约束。
掩码语言模型随机掩码输入中的一些标记,目标是预测被掩码的原始词汇仅基于上下文的词。与左右语言模型预训练不同,MLM目标使表示能够融合左右上下文,这允许我们预训练深度双向Transformer。除了屏蔽语言模型,我们还使用了“下一个句子预测”任务,联合预训练文本对表示。本文的贡献如下:
1.我们证明了双向预训练对语言表征的重要性。与Radford等人(2018)使用单向语言模型进行预训练不同,BERT使用掩模语言模型来实现预训练的深度双向表示。这也与Peters等人(2018a)形成对比,后者使用独立训练的从左到右和从右到左LMs的浅连接。
2.我们表明,预训练的表示减少了对许多高度工程化的任务特定架构的需求。BERT是第一个基于调优的表示模型,它在大量句子级和记号级任务上实现了最先进的性能,优于许多特定于任务的架构。
3.BERT在11个NLP任务中推进了最先进的技术。代码和预训练模型可在https://github.com/ google-research/bert上获得。
2.related work
预训练通用语言表示有很长的历史,我们在本节中简要回顾了最广泛使用的方法。
2.1 Unsupervised Feature-based Approaches
几十年来,学习广泛适用的单词表示一直是一个活跃的研究领域,包括非神经方法(Brown等人,1992;Ando和Zhang, 2005; Blitzer等人,2006)和神经方法(Mikolov等人,2013;Pennington等人,2014)。预训练词嵌入是现代NLP系统的一个组成部分,与从头开始学习的嵌入相比,它提供了显著的改进(Turian et al., 2010)。为了预训练词嵌入向量,使用了从左到右的语言建模目标(Mnih和Hinton, 2009),以及在左右上下文中区分正确和不正确单词的目标(Mikolov et al., 2013)。
这些方法已经被推广到更粗的粒度,如句子嵌入(Kiros等人,2015;Logeswaran和Lee, 2018)或段落嵌入(Le和Mikolov, 2014)。为了训练句子表示,之前的工作使用目标对候选下一个句子进行排序(Jernite等人,2017;Logeswaran和Lee, 2018),根据前一个句子的表示从左到右生成下一个句子单词(Kiros等人,2015),或者去噪自动编码器衍生的目标(Hill等人,2016)。
ELMo及其前身(Peters et al., 2017,2018a)将传统的词嵌入研究从不同的维度进行了概括。他们从从左到右和从右到左的语言模型中提取上下文敏感的特征。每个标记的上下文表示是从左到右和从右到左表示的连接。当将上下文词嵌入与现有的任务特定架构集成时,ELMo在几个主要的NLP基准(Peters等人,2018a)中推进了最先进的技术,包括问答(Rajpurkar等人,2016)、情感分析(Socher等人,2013)和命名实体识别(Tjong Kim Sang和De Meulder, 2003)。Melamud等人(2016)提出通过使用lstm从左右上下文中预测单个单词的任务来学习上下文表示。与ELMo类似,他们的模型是基于特征的,而不是深度双向的。Fedus等人(2018)表明,完形填空任务可以用来提高文本生成模型的鲁棒性。
2.2 Unsupervised Fine-tuning Approaches
与基于特征的方法一样,第一种方法只从未标记的文本中预训练词嵌入参数(Collobert和Weston, 2008)。最近,产生上下文token表示的句子或文档编码器已经从未标记的文本中进行了预训练,并对有监督的下游任务进行了微调(Dai和Le, 2015; Howard和Ruder, 2018; Radford等人,2018)。这些方法的优点是很少有参数需要从头学习。至少部分由于这一优势,OpenAI GPT (Radford et al., 2018)在GLUE基准的许多句子级任务上取得了以前最先进的结果(Wang et al., 2018a)。从左到右的语言模式和自动编码器目标已经被用于预训练这些模型。

图1:BERT的整体预训练和微调过程。除了输出层,在预训练和微调中也使用了相同的架构。使用相同的预训练模型参数来初始化不同下游任务的模型。在微调期间,对所有参数进行微调。[CLS]是添加在每个输入示例前面的特殊符号,[SEP]是一个特殊的分隔符号(例如,分隔问题/答案)。
2.3 Transfer Learning from Supervised Data
也有研究表明,从大型数据集的监督任务中有效地转移,例如自然语言推理(Conneau等人,2017)和机器翻译(McCann等人,2017)。计算机视觉研究也证明了从大型预训练模型迁移学习的重要性,其中一个有效的方法是对使用ImageNet预训练的模型进行微调。
3 BERT
我们将在本节中介绍BERT及其详细实现。在我们的框架中有两个步骤:预训练和微调。在预训练过程中,模型在不同的预训练任务上对未标记数据进行训练。对于微调,首先使用预训练的参数初始化BERT模型,然后使用来自下游任务的标记数据对所有参数进行微调。每个下游任务都有单独的微调模型,即使它们是用相同的预训练参数初始化的。图1中的问答示例将作为本节的运行示例。
BERT的一个显著特征是其跨不同任务的统一架构。预训练的体系结构和最终的下游体系结构之间的差别很小。BERT的模型架构是一个多层双向transfomer编码器,基于Vaswani等人(2017)描述的原始实现,并在tensor2tensor库中发布由于Transformer的使用已经变得很普遍,我们的实现几乎与原始版本相同,因此我们将省略对模型架构的详尽背景描述,并将读者推荐给Vaswani等人(2017)以及优秀的指南,如“the Annotated Transformer”
在这项工作中,我们表示层数(即tranfomer块)为L,隐藏大小为H,自注意头的数量为A。我们主要报告两种模型尺寸的结果:BERTBASE (L=12, H=768, A=12, Total Parameters=110M)和BERTLARGE (L=24, H=1024, A=16, Total Parameters=340M)。
为了进行比较,选择BERTBASE与OpenAI GPT具有相同的模型大小。然而,关键的是,BERT Transformer使用双向自关注,而GPT Transformer使用约束自关注,其中每个token只能关注其左侧的上下文
输入/输出表示 为了使BERT处理各种下游任务,我们的输入表示能够在一个token序列中明确地表token示单个句子和一对句子(例如,Question, Answer)。在整个工作中,一个“句子”可以是一个连续文本的任意跨度,而不是一个实际的语言句子。“序列”指的是BERT的输入token序列,它可以是一个句子或两个句子组合在一起。
我们使用WordPiece嵌入(Wu et al., 2016)和30,000个标记词汇表。每个序列的第一个标记总是一个特殊的分类标记([CLS])。与此token对应的最终隐藏状态用作分类任务的聚合序列表示。句子对被打包成一个单一的序列。我们用两种方法区分句子。首先,我们用一个特殊的token([SEP])将它们分开。其次,我们为每一个标记添加一个学习嵌入,表明它属于句子a还是句子b。如图1所示,我们将输入嵌入表示为E,特殊[CLS]标记的最终隐藏向量表示为C∈RH,第i个输入标记的最终隐藏向量表示为Ti∈RH。
对于给定的标记,其输入表示是通过将相应的标记、段和位置嵌入相加来构建的。图2显示了该结构的可视化。
3.1 Pre-training BERT
与Peters等人(2018a)和Radford等人(2018)不同,我们不使用传统的从左到右或从右到左的语言模型来预训练BERT。相反,我们使用本节中描述的两个无监督任务来预训练BERT。此步骤如图1的左侧所示。
任务#1:ma'skedLM 直观地,我们有理由相信深度双向模型比从左到右的模型或从左到右和从右到左的浅连接模型更强大。不幸的是,标准条件语言模型只能从左到右或从右到左进行训练,因为双向条件反射将允许每个单词间接“看到自己”,并且该模型可以在多层上下文中轻松预测目标单词。
为了训练深度双向表示,我们只是随机屏蔽一定比例的输入token,然后预测这些被屏蔽的token。我们将这一过程称为“mased LM”(MLM),尽管在文献中它通常被称为完形填空任务(Taylor, 1953)。在这种情况下,与掩码token相对应的最终隐藏向量被输入到词汇表上的输出softmax中,就像在标准LM中一样。在我们所有的实验中,我们随机屏蔽了每个序列中15%的WordPiecetoken。与去噪自编码器(Vincent et al., 2008)相比,我们只预测被屏蔽的单词,而不是重建整个输入。
虽然这允许我们获得双向预训练模型,但缺点是我们正在创建预训练和微调之间的不匹配,因为[MASK]token在微调期间没有出现。为了减轻这种情况,我们并不总是用实际的[MASK]token替换“被屏蔽”的单词。训练数据生成器随机选择15%的标记位置进行预测。如果选择了第i个令牌,我们用(1)80%的时间使用[MASK]token(2)10%的时间使用随机token(3)10%的时间使用未更改的第i个token替换第i个令牌。然后,利用Ti来预测具有交叉熵损失的原始token。我们在附录C.2中比较了这个过程的变化。
任务#2:下一个句子预测(NSP)许多重要的下游任务,如问答(QA)和自然语言推理(NLI),都是基于理解两个句子之间的关系,这不是语言建模直接捕获的。为了训练一个理解句子关系的模型,我们对一个二值化的下一个句子预测任务进行了预训练,该任务可以从任何单语语料库中轻松生成。具体来说,当为每个预训练示例选择句子A和B时,50%的时间B是A之后的下一个句子(标记为IsNext), 50%的时间B是语料库中的随机句子(标记为NotNext)。如图1所示,C用于下一个句子预测(NSP)尽管它很简单,但我们在5.1节中演示了针对该任务的预训练对QA和NLI都非常有益。

图2:BERT输入表示。输入嵌入是标记嵌入、分割嵌入和位置嵌入的总和。
NSP任务与Jernite等人(2017)和Logeswaran和Lee(2018)中使用的表征学习目标密切相关。然而,在之前的工作中,只有句子嵌入被转移到下游任务中,BERT将所有参数转移到下游任务中以初始化任务端模型参数。
预训练的数据 预训练过程在很大程度上遵循了已有的语言模型预训练文献。对于预训练语料库,我们使用BooksCorpus(800万字)(Zhu et al., 2015)和英语维基百科(2500万字)。对于维基百科,我们只提取文本段落,而忽略列表、表格和标题。为了提取长连续序列,使用文档级语料库而不是像十亿词基准(Chelba et al., 2013)这样的打乱句子级语料库是至关重要的。
3.2 Fine-tuning BERT
微调是直接的,因为Transformer中的自注意机制允许BERT对许多下游任务建模——无论它们涉及单个文本还是文本对——通过交换适当的输入和输出。对于涉及文本对的应用程序,常见的模式是在应用双向交叉注意之前对文本对进行独立编码,如Parikh等人(2016);Seo等人(2017)。BERT使用自注意机制来统一这两个阶段,因为用自注意编码一个连接的文本对有效地包括两个句子之间的双向交叉注意。
对于每个任务,我们只需将特定于任务的输入和输出插入到BERT中,并对所有参数进行端到端的微调。在输入端,预训练的句子A和句子B类似于(1)释义中的句子对,(2)蕴涵中的假设-前提对,(3)问答中的问题-段落对,(4)文本分类或序列标注中的退化文本-∅对。在输出端,令牌表示被输入输出层用于令牌级任务,如序列标记或问题回答,而[CLS]表示被输入输出层用于分类,如蕴意或情感分析。
与预训练相比,微调相对便宜。从完全相同的预训练模型开始,论文中的所有结果可以在单个Cloud TPU上最多1小时内复制,或者在GPU上复制几个小时我们将在第4节的相应小节中描述特定于任务的细节。详情见附录A.5。
4 Experiments
在本节中,我们介绍了11个NLP任务的BERT微调结果。
4.1 GLUE
通用语言理解评估(GLUE)基准(Wang et al., 2018a)是多种自然语言理解任务的集合。GLUE数据集的详细描述见附录B.1。
为了对GLUE进行微调,我们按照第3节的描述表示输入序列(单句或句子对),并使用与第一个输入token([CLS])对应的最终隐藏向量C∈Rh作为聚合表示。在微调过程中引入的唯一新参数是分类层权值W∈,其中k为标签的数量。我们用C和W计算一个标准的分类损失,即log(softmax(
)。

表1:GLUE测试结果,由评估服务器(https://gluebenchmark.com/leaderboard)评分。每个任务下面的数字表示训练样例的数量。“平均”一栏与GLUE的官方得分略有不同,因为我们排除了有问题的WNLI集。BERT和OpenAI GPT是单模型、单任务。QQP和MRPC报告F1分数,STS-B报告Spearman相关性,其他任务报告准确性分数。我们排除了使用BERT作为其组件之一的条目。
我们使用32个批处理大小,并对所有GLUE任务的数据进行3次微调。对于每个任务,我们在Dev集中选择了最佳的微调学习率(在5e-5、4e-5、3e-5和2e-5之间)。此外,对于BERTLARGE,我们发现微调有时在小数据集上不稳定,所以我们运行了几次随机重启并选择了Dev集上的最佳模型。对于随机重启,我们使用相同的预训练检查点,但执行不同的微调数据洗牌和分类器层初始化。
结果如表1所示。BERTBASE和BERTLARGE在所有任务上的表现都大大超过了所有系统,与现有技术相比,平均精度分别提高了4.5%和7.0%。注意,BERTBASE和OpenAI GPT除了注意屏蔽之外,在模型架构方面几乎是相同的。对于最大和最广泛报道的GLUE任务MNLI, BERT获得了4.6%的绝对精度提高。在GLUE的官方排行榜上,BERTLARGE获得了80.5分,而OpenAI GPT在撰写本文时获得了72.8分。
我们发现BERTLARGE在所有任务上都明显优于BERTBASE,特别是那些训练数据很少的任务。模型大小的影响将在5.2节中进行更深入的探讨。
4.2 SQuAD v1.1
斯坦福问答数据集(SQuAD v1.1)是10万个众包问题/答案对的集合(Rajpurkar et al., 2016)。给出一个问题和一段文章来自维基百科包含答案,任务是预测答案在文章中的文本跨度。
如图1所示,在问答任务中,我们将输入的问题和文章表示为单个打包序列,其中问题使用a嵌入,文章使用B嵌入。我们在微调时只引入一个起始向量S∈和一个结束向量E∈
。单词i作为答案区间开始的概率是通过Ti和S之间的点积计算的,然后是段落中所有单词的软最大值:Pi =
。类似的公式用于回答区间的末尾。从位置i到位置j的候选跨度的得分定义为S·Ti·E·Tj,并以j≥i的最大得分跨度作为预测。训练目标是正确起始位置和结束位置的对数似然之和。我们微调了3个epoch,学习率为5e-5,批大小为32。
表2显示了顶级排行榜条目以及来自顶级发布系统的结果(Seo等人,2017;Clark和Gardner, 2018; Peters等人,2018a; Hu等人,2018)。来自SQuAD排行榜的顶级结果没有最新的公共系统描述,并且允许在训练他们的系统时使用任何公共数据。因此,在对SQuAD进行微调之前,我们首先对TriviaQA进行微调(Joshi等人,2017),从而在系统中使用适度的数据增强。
我们的最佳系统在综合性能上比顶级排行榜系统高出1.5倍,作为单一系统高出1.3倍。事实上,我们的单一BERT模型在F1得分方面优于顶级集成系统。没有TriviaQA很好

表2:SQuAD 1.1结果。BERT集合是7x系统,使用不同的预训练检查点和微调种子。

表3:SQuAD 2.0结果。我们排除了使用BERT作为其组件之一的条目。
调优数据时,我们只损失了0.1-0.4 F1,仍然远远优于所有现有系统。
4.3 SQuAD v2.0
SQuAD 2.0任务扩展了SQuAD 1.1问题定义,允许在所提供的段落中不存在简短答案的可能性,从而使问题更加现实。
我们使用一种简单的方法来扩展SQuAD v1.1 BERT模型来完成此任务。我们将没有答案的问题视为具有以[CLS]token开始和结束的答案跨度的问题。开始和结束回答跨度位置的概率空间被扩展为包括[CLS]token的位置。对于预测,我们将无答案跨度的得分:snull = S·C E·C与最佳非零跨度的得分进行比较。

表4:SWAG开发和测试精度。†如SWAG论文所述,人类的表现是用100个样本来测量的。
s i,j = maxj≥iS·Ti E·Tj。我们预测当δ si,j > snull τ时非空答案,其中在开发集上选择阈值τ以使F1最大化。我们没有在这个模型中使用TriviaQA的数据。我们微调了2个epoch,学习率为5e-5,批大小为48。与之前的排行榜条目和顶级发表作品(Sun et al., 2018; Wang et al., 2018b)相比,结果如表3所示,不包括使用BERT作为其组件之一的系统。与之前的最佳系统相比,我们观察到5.1 F1的改进。
4.4 SWAG
对抗世代情境(SWAG)数据集包含113k个句子对补全示例,用于评估基于常识的推理(Zellers等人,2018)。给定一个句子,任务是从四个选项中选出最合理的延续。在对SWAG数据集进行微调时,我们构建了四个输入序列,每个序列包含给定句子(句子A)和可能的延续(句子B)的连接。引入的唯一特定于任务的参数是一个向量,它与[CLS]标记表示C的点积表示每个选择的分数,该分数用softmax层规范化。我们对模型进行了3次微调,学习率为25 -5,批量大小为16。结果如表4所示。BERTLARGE比作者的基线ESIM ELMo系统高27.1%,比OpenAI GPT系统高8.3%。
5 Ablation Studies
在本节中,我们对BERT的许多方面进行消融实验,以便更好地理解它们的相对重要性。

表5:使用BERTBASE架构对预训练任务的消融。“No NSP”是在没有下一个句子预测任务的情况下训练的。“LTR & No NSP”被训练成一个从左到右的LM,没有下一个句子的预测,就像OpenAI GPT一样。“BiLSTM”在微调过程中在“LTR No NSP”模型之上添加了一个随机初始化的BiLSTM。
5.1 Effect of Pre-training Tasks
我们通过使用与BERTBASE完全相同的预训练数据、微调方案和超参数来评估两个预训练目标,证明了BERT深度双向性的重要性:无NSP:使用“掩模LM”(MLM)训练的双向模型,但没有“下一句话预测”(NSP)任务。LTR&No NSP:使用标准的从左到右(LTR) LM而不是MLM训练的仅左上下文模型。仅留约束也适用于微调,因为去除它会导致预训练/微调不匹配,从而降低下游性能。此外,该模型在没有NSP任务的情况下进行了预训练。这直接与OpenAI GPT相比较,但是使用了我们更大的训练数据集、我们的输入表示和我们的微调方案。
我们首先考察NSP任务带来的影响。在表5中,我们展示了去除NSP对QNLI、MNLI和SQuAD 1.1的性能有显著影响。接下来,我们通过比较“无NSP”和“LTR & No NSP”来评估训练双向表示的影响。LTR模型在所有任务上的表现都比MLM模型差,在MRPC和SQuAD上有很大的下降。
对于SQuAD来说,很明显LTR模型在令牌预测方面表现不佳,因为令牌级别的隐藏状态没有右侧上下文。为了真诚地尝试加强LTR系统,我们在上面添加了一个随机初始化的BiLSTM。这大大提高了SQuAD的成绩,但结果仍然比预训练的双向模型差得多。BiLSTM损害了GLUE任务的性能。我们认识到,也可以训练单独的LTR和RTL模型,并将每个标记表示为两个模型的连接,就像ELMo所做的那样。然而:(a)这比单一的双向模型贵两倍;(b)对于像QA这样的任务来说,这是不直观的,因为RTL模型将无法根据问题来决定答案;(c)严格来说,它比深度双向模型更弱,因为它可以在每一层使用左右上下文。
5.2 Effect of Model Size
在本节中,我们将探讨模型大小对微调任务精度的影响。我们训练了许多具有不同层数、隐藏单元和注意头的bert模型,同时使用与前面描述的相同的超参数和训练过程。
所选GLUE任务的结果如表6所示。在这个表中,我们报告了5次随机重启微调的Dev Set平均精度。我们可以看到,更大的模型在所有四个数据集上都有严格的准确性提高,即使对于MRPC来说,它只有3600个标记的训练示例,并且与预训练任务有很大的不同。也许令人惊讶的是,我们能够在相对于现有文献已经相当大的模型之上实现如此重大的改进。例如,Vaswani等人(2017)研究的最大变压器是(L=6, H=1024, A=16),编码器参数为100M,我们在文献中发现的最大变压器是(L=64, H=512, A=2),参数为235M (al - rfou等人,2018)。而BERTBASE包含110M个参数,BERTLARGE包含340M个参数。
关于将预训练的bi-LM大小从两层增加到四层的下游任务影响的结果好坏参半,Melamud等人(2016)顺便提到将隐藏维度大小从200增加到600有帮助,但进一步增加到1000并没有带来进一步的改善。这两项先前的工作都使用了基于特征的方法——我们假设,当模型直接在下游任务上进行微调,并且只使用非常少量的随机初始化附加参数时,特定于任务的模型可以从更大、更有表现力的预训练表征中受益,即使下游任务数据非常小。
5.3 Feature-based Approach with BERT
到目前为止,所有BERT结果都使用了微调方法,即在预训练模型中添加一个简单的分类层,并在下游任务上对所有参数进行联合微调。然而,基于特征的方法,即从预训练的模型中提取固定的特征,具有一定的优势。首先,并不是所有的任务都可以很容易地用Transformer编码器体系结构表示,因此需要添加特定于任务的模型体系结构。其次,预先计算一次昂贵的训练数据表示,然后在这个表示的基础上用更便宜的模型运行许多实验,这在计算上有很大的好处。在本节中,我们通过将BERT应用于CoNLL-2003命名实体识别(NER)任务来比较两种方法(Tjong Kim Sang和De Meulder, 2003)。在BERT的输入中,我们使用了保留大小写的WordPiece模型,并包含了数据提供的最大文档上下文。按照标准实践,我们将其表述为标记任务,但不使用CRF

表6:消融对BERT模型尺寸的影响。#L =层数;#H =隐藏大小;#A =注意头数。“LM (ppl)”是被遮挡的训练数据的LM困惑。

表7:CoNLL-2003命名实体识别结果。使用Dev集选择超参数。报告的Dev和Test分数在使用这些超参数的5次随机重启中平均。
层中的输出。我们使用第一个子令牌的表示作为NER标签集上令牌级分类器的输入。为了消除微调方法,我们采用基于特征的方法,从一个或多个层中提取激活,而不微调BERT的任何参数。这些上下文嵌入被用作在分类层之前随机初始化的两层768维BiLSTM的输入。结果如表7所示。BERTLARGE采用最先进的方法,具有竞争力。性能最好的方法将来自预训练的Transformer的前四个隐藏层的令牌表示连接起来,这只比微调整个模型落后0.3 F1。这表明BERT对于微调和基于特征的方法都是有效的。
6 Conclusion
最近由于语言模型迁移学习的经验改进表明,丰富的无监督预训练是许多语言理解系统的组成部分。特别是,这些结果使低资源任务也能从深度单向架构中受益。我们的主要贡献是进一步将这些发现推广到深度双向架构,允许相同的预训练模型成功地处理广泛的NLP任务。
更多推荐

所有评论(0)