BERT中文翻译

BERT:语言理解的深层双向transformer的预训练

原文链接: BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding


Jacob Devlin Ming-Wei Chang Kenton Lee Kristina Toutanova

摘要:介绍了一种新的语言模型表示BERT,它代表transformer的双向编码器表示。与最近的表示模型不同(Peters等人,2018;Radford等人,2018),BERT被用来设计成通过所有层中联合调节左右上下文来预训练来自未标记文本的深层双向表示。因此,只需一个额外的输出层,就可以对预训练的BERT模型进行微调,从而为各种任务(如问题回归和语言推理)创建最先进的模型,而无需对特定任务的体系结构进行大量修改。

BERT概念简单,经验丰富。它在11项自然语言处理任务上取得了最新的技术成果,包括将GLUE分数提高到80.7%(7.7%绝对改善),多项精度至86.7%(4.6%绝对改善),SQuAD v1.1问答测试F1到93.2%(1.5%绝对改善)和SQuAD v2.0测试F1到83.1%(5.1%绝对改善)。

1.介绍

语言模型预训练已被证明对改善许多自然语言处理任务是有效的(Dai和Le,2015;Peters等人,2018;Radford等人,2018;Howard和Ruder,2018)。这些任务包括句子层次的任务,如自然语言推理(Bowman等人,2015;Williams等人,2018)和释义(Dolan和Brockett,2005),旨在预测整体句子通过分析他们之间的关系,以及标记级任务,比如命名实体识别和回答问题,模型需要产生细粒度输出在词标记级别(Tjong Kim Sang和De Meulder,2003;Rajpurkar等人,2016)。

目前有两种将先预训练好的语言表示应用于下游任务的策略:基于功能的和微调的。基于功能的方法,如ELMO(Peters等人,2018),使用特定于任务的体系结构,其中包括作为附加功能的预训练表示。微调方法,如生成式预训练Transformer(OpenAI GPT)(Radford等人,2018),引入最小的特定于任务的参数,并通过简单地微调所有预先训练的参数对下游任务进行训练。这两种方法在训练前共享相同的目标功能,即使用单向语言模型来学习一般的语言表示。

我们认为,当前的技术限制了预训练的表示的能力,特别是对于微调方法。主要的限制是标准的语言模型是单向的,这限制了在预训练可以使用的体系结构的选择。例如,在OpenAI GPT中,作者使用了从左到右大体系结构,其中每个标记只能处理Transformer(Vaswanit等人,2017)。这样的限制对于句子级的任务来说是次优的,当基于调优的方法应用于诸如回答问题之类的标记任务时可能非常有害,因为在这些任务中,从两个方向合并上下文是非常重要的。

在本文中,我们通过提出BERT:Transformer的双向编码器表示来改进基于微调的方法。Bert受完形填空任务的启发,通过使用“掩蔽语言模型”(MLM)的训练前目标,缓解了前面提到的单向性约束(Taylor,1953)。掩码语言模型随机地从输入中屏蔽掉一些标记,其目的是仅根据上下文来预测掩码的原始词汇表id。与从左到右的语言模型预训练不同,MLM目标使表示能够预训练一个深层双向的Transformer。除了蒙面语言模型之外,我们还使用了一个“下一句话预测”任务来联合预训练文本对表示。本文的贡献:

  • 我们证明了语言表征的双向预训练的重要性。不像Radford等人(2018),使用单向语言模型进行预训练,BERT使用掩蔽语言模型实现预训练的深层双向表示。这也与Peters等人形成了对比(2018),它使用了独立训练的从左到右和从右到左的LMs浅层表示。
  • 我们证明,预训练的表示减少了对许多高工程化的特定于任务的体系结构的需求。BERT是第一个基于微调的表示模型,它在大量语句级和标记级任务上实现了最先进的性能,并形成了许多特定于任务的体系结构。
  • BERT提升了11个NLP任务的技术水平,代码和预训练的模型可在https://github.com/google-research/bert获得。
2.相关工作

一般语言表示在预训练前就已有很长的历史了,我们在本节中简要回顾了最广泛使用的方法。

2.1 基于无监督特征的方法

数十年来,学习广泛适用的单词表示一直是一个活跃的研究领域,包括非神经(Brown等人,1992;Ando和Zhang,2005;Blitzer等人,2006)和神经(Mikolov等人,2013;Pennington等人,2014)的方法。预训练的词嵌入是现代NLP系统的一个组成部分,提供了重要的改进从嵌入式从零开始学习(Turian等人,2010)。为了预训练单词嵌入向量,使用了从左到右的语言建模目标(Mnih和Hinton,2009),以及在左和右上下文中区分正确和错误的单词的目标(Mikolov等人,2013)。

这些方法已经被推广到更粗的粒度,例如句子嵌入(Kiros等人,2015;Logeswaran和Lee,2018)或者段落嵌入(Le和Mikolov,2014)。为了训练句子表征,之前的工作已使用目标来对候选的下一个句子进行排序(Jernite等人,2017;Logeswaran和Lee,2018),从左到右生成下一个句子单词,给出上一个句子的表示(Kiros等人),或去噪自动编码器派生的目标(Hill等人,2016)。

ELMO及其前身(Peters等人,2017)将传统的词嵌入搜索沿不同的维度进行泛化。它们从左到右和从右到左的语言模型中提取上下文敏感的特性。每个标记的上下文表示是从左到右和从右到左表示的任务连接。在将上下文相关的词嵌入与现有的特定于任务的体系结构集成时,ELMO为几个主要的NLP基准提高了技术水平(Peters等人,2018),情绪分析(Socher等人,2016)和命名实体识别(Tjong Kim Sang和De Meulder,2003)。Melamed等人(2016)提出通过使用LSTM从左到右两种语境中预测单个单词的任务来学习语境表示。与ELMO类似,它们的模型是基于特征的,不是深度双向的。Redus等人(2018)表明完形填空任务可以用来提高文本生成模型的鲁棒性。

2.2 非监督微调方法

与基于特征的方法一样,第一种方法只对来自未标记文本的预训练的词嵌入参数起作用(Collobert和Weston,2008)。
最近,产生上下文标记表示的句子或文档编码器已经从未标记的文本中进行了预训练,并针对监督的下游任务进行了微调(Dai和Le,2015;Howard和Ruder,2018;Radford等人,2018)。这些方法的优点几乎不需要从头学习参数。至少部分由于这一优势,OpenAI GPT(Radford等人,2018)在GLUE基准测试的许多句子级任务上取得了以前最先进的结果(Wang等人,2018)。从左到右的语言模型,和自动编码器的目标已用于此类模型的预训练(Howard和Ruder,2018;Radford等人,2018;Dai和Le,2015)。
图1
图1:BERT的总体预训练和微调过程。 除了输出层,相同的体系结构用于预训练和微调。 相同的预训练模型参数用于初始化不同下游任务的模型。 在微调期间,所有参数都将进行微调。 [CLS]是添加在每个输入示例前面的特殊符号,[SEP]是特殊的分隔符(例如,分隔问题/答案)。

2.3 从监督数据中转移学习

也有研究表明,从监督任务与大数据集的有效转移,如自然语言推理(Conneau等人,2017)和机器翻译(McCann等人,2017)。计算机视觉研究也证明了从大型预训练模型中转移学习的重要性,其中一个有效的方法是使用ImageNet对预训练模型进行微调(Deng等人,2009;Yosinski等人,2014)。

3 BERT

我们将在本节介绍BERT及其详细实现。在我们的框架中有两个步骤:预训练和微调。在训练前,对不同训练前任务的未标记数据进行训练。为了进行微调,首先使用预先训练的参数初始化BERT模型,然后使用来自下游任务的标记数据对所有参数进行微调。每个下游任务都有单独的经过调优的模型,即使它们是用相同的预先训练的参数初始化的。图1中的问题回答示例将作为本节的运行示例。

BERT的一个显著特征是它跨不同任务的统一框架。预训练的体系结构和最终的下游体系结构之间的差异很小。

BERT的模型结构是基于Vaswani等人(2017)描述的原始实现的多层双向Transformer编码器,并在tensor2tensor库中发布。由于Transformer的使用已经变得很普遍,并且我们的实现与最初的实现几乎完全相同,所以我们将省略对模型架构的详尽的背景描述,并向读者推荐Vaswani等人(2017)以及“The Annotated Transformer”等优秀指南。

在这项工作中,我们表示层的数量(即Transformer组)为L,隐藏尺寸为H,注意头个数为A。我们主要报告了两个模型尺寸的结果BERTBASE (L=12, H=768, A=12,总的参数=110M) and BERTLARGE (L=24, H=1024,A=16, 总的参数=340M)。
为了进行比较,选择BERTBASE的模型大小与OpenAI GPT相同。然而,关键的是,BERT Transformer使用双向的self-attention,而GPT Transformer使用约束的self-attention,其中每个标记只能注意其左边的上下文。

输入/输出表示:为了使BERT能够处理各种下游任务,我们的输入表示能够清楚地表示一个句子和两个句子(例如,<问题,回答>)在一个标记标记序列中。在此工作中,一个“句子”可以是任意一段连续的文本,而不是一个实际的语言句子。“序列”是指BERT的输入标记序列,它可以是一个句子,也可以是两个句子组合在一起。

我们使用单词嵌入法(Wu等人,2016),拥有30000个象征性词汇。每个序列的第一个标记总是一个特殊的分类标记([CLS])。与此标记对应的最终隐藏状态用作分类任务的聚合序列表示。句子对被打包成一个单独的序列,我们用两种方法区分这些句子。首先,我们用一个特殊的标记将它们分开,。其次,我们在每个标记中加入一个学习嵌入,表明它是属于句子A还是句子B。如图1所示,我们将输入嵌入记为E,专用[CLS]标记的最终隐藏向量记为C∈RH,第i个输入标记的最终隐藏向量记为Ti∈RH。

对于给定的标记,其输入表示是通过对相应的标记、段和位置嵌入求和来构造的。这种结构的可视化结果可以在图2中看到。

3.1 预训练的BERT

不像Peters等人(2018)和Radford等人(2018),我们没有使用传统的从左到右或从右到左的语言模型来预训练BERT。相反,我们使用两个非监督任务对BERT进行预训练,如本节所示。此步骤在图1的左侧部分中显示。

任务#1:直观地隐蔽LM,我们有理由相信深度双向模型比从左到右的模型或者从右到左的模型的浅层连接更强大。不幸的是,标准的条件语言模型只能训练从左到右或从右到左,因为双向条件作用可让每个单词间接的“看到自己”,而且该模型可以在多层的上下文中轻松地预测目标单词。

为了训练一个深层的双向表示,我们简单地随机屏蔽掉一些百分比的输入标记,然后预测那些屏蔽的标记。我们把这个过程称为“蒙面LM”(MLM),尽管文献中它经常被称为完形填空任务(Taylor,1953)。在这种情况下,掩码标记对应的最终隐藏向量通过词汇表被输入到输出softmax中,就像在标准LM中一样。在我们所有的实验中,我们随机屏蔽了每个序列中15%的单词标记。相对于去噪的自动编码器(Vincent等人,2008),我们只预测掩蔽词,而不是重建整个输入。

虽然这允许我们获得双向的预训练模型,但缺点是我们在预训练和微调之间产生了不匹配,因为在微调期间不会出现[MASK]标记。为了缓解这种情况,我们并不总是使用实际的[MASK]标记来替换“掩蔽”单词。训练数据生成器随机选择15%的标记位置进行预测。如果选择了第i个标记,我们将第i个标记替换为:
(1)80%的时间是[MASK]标记
(2)10%的时间是一个随机标记
(3)10%的时间是不变的第i个标记
然后利用Ti来预测具有交叉熵的原始标记。我们在附录C.2中比较这个过程的变化。

任务#2:下一个句子预测(NSP),许多重要的下游任务,如问答(QA)和自然语言推理(NLI),都是建立在理解两个句子之间的关系的基础上的,而语言建模并不能直接捕获这些关系。为了训练一个理解句子关系的,模型,我们训练了一个二值化的下一个句子预测任务,这个任务可以从任何单语语料库中轻松生成。具体来说,在为每个训练前的例子选择A和B两个句子时,50%的时间是B是A后面的下一个句子(标记为IsBext),50%的时间B是语料库中的一个随机句子(标记为NotNext)。如图1所示,C用于下一个句子预测(NSP)。尽管它很简单,但我们将在第5节中进行演示,针对这项任务的预训练对QA和NLI都非常有益。
图2
图2:BERT输入表示。 输入的嵌入是标记嵌入,分段的总和嵌入和位置嵌入。

NSP任务与Jernite等人(2017)、Logeswaran和Lee(2018)使用的表征学习目标密切相关。然而,在以前的工作中,只有语句嵌入被传输到下游任务,在那里BERT传输所有的参数来初始化最终任务模型参数。

训练前的数据,预训练前的程序很大程度上遵循了现有文献关于语言模型的预训练。对于预训练的语料库,我们使用BooksCorpus(8亿单词(Zhu等人,2015))和英文维基百科(2500万字)。对于Wikipedia,我们只提取文本段落,而忽略列表、表格和标题。关键是要使用文档级的语料库,而不是句子级的语料库,比如十亿词基准(Chelba等人,2013)为了提取长连续序列。

3.2 微调BERT

微调是很简单的,因为Transformer中的自我注意力机制(self-attention mechanism)将替换掉适当的输入和输出,从而对许多下游任务(无论是单个文本还是文本对)进行建模。对于涉及文本对的应用程序,一种常见的模式是在应用双向交叉注意(如Parikh等人,2016;Seo等人,2017)对文本进行独立编码。BERT使用了自我注意力机制来统一这两个阶段,因为自我注意力编码一个连接的文本对有效地包含了两个句子之间的双向交叉注意。

对于每个任务,我们只需将特定于任务的输入和输出输入到BERT中,并对所有参数进行端到端的微调。在输入端,来自预训练的句子A和句子B类似于(1)释义的句子对(2)引申义的假设-前提对(3)问答中的问题-短文对,以及(4)文本分类或序列标注中出现退化文本对。在输出中,标记表现形式被输入到一个输出层,用于标记级别的任务,如序列标记或问题回答,而[CLS]表现形式被输入到一个输出层用于分类,例如需求或情感分析。

与预训练相比,微调相对便宜。本文中所有的结果都可以在一个单一的云TPU上最多一个小时内复制,或者在GPU上最多几个小时,从完全相同的预训练模型开始。我们在第4节的相应小节中描述了特定于任务的细节。

4.实验

在本节中,我们将展示11个NLP任务的BERT微调结果。

4.1 GLUE

一般语言理解评价(GLUE)基准(Wang等人,2018)是一个集合了多种自然语言理解任务的集合。GLUE的数据集详细描述包含在附录B.1中。

为了对GLUE进行微调,我们按照第3节的描述表示输入序列(对单个句子或句子对),并使用第一个输入标记对应的最终隐藏向量C∈RH([CLS])作为聚合表示。微调过程中引入的唯一新参数是分类层权值W∈K×H,其中K为标签数。我们用C和W计算标准分类损失,即log(softmax(CWT))。
表1
表1:由评估服务(https://gluebenchmark.com/leaderboard)评分的GLUE测试结果。每个任务下面的数字表示培训示例的数量。 “平均”列略有不同比官方GLUE得分要高,因为我们排除了有问题的WNLI集。8BERT和OpenAI GPT是单一模
型,单项任务。 报告QQP和MRPC的F1得分,报告STS-B的Spearman相关性,以及报告其他任务的准确性得分。 我们排除使用BERT作为其组件之一的条目。

我们对所有的粘合任务使用32的批大小和3个时间段的数据调优。对于每个任务,我们选择了开发集上最佳微调学习率(5e-5, 4e-5, 3e-5,和2e-5)。此外,对于BERTLARGE,我们发现微调有时在小型数据集上是不稳定的,因此我们运行了几个随机重启,并在开发集上选择了最好的模型。对于随机重新启动,我们使用相同的预训练的检查点,但是执行不同的微调数据变换和分类器层初始化。

结果见表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)是一个收集了100k个众包的问题/答案对(Rajpurkar等人,2016)。给出一个问题和一段话包括答案的Wikipedia,其任务是预测文章中答案的文本跨度。

如图1所示,在问答任务中,我们将输入的问题和短文表示为单个压缩序列,其中问题使用A嵌入,短文使用B嵌入。微调时,我们只引入起始向量S∈RH和结束向量E∈RH。单词i作为答案空间大开始的概率被计算为Ti和S之间的点积,在段落所有单词后面跟着一个softmax:Pi = e^(S_(T_i ) )/(∑_j▒〖eS^(T_j ) 〗)。类似的公式用于回答跨度的末端。定义从位置i到位置j的候选跨度分为S·Ti + E·Tj,以j≥i作为预测的最大得分跨度。训练目标是正确的开始和结束位置的概率之和。我们进行了3个轮次的微调,学习速率为5e-5和批处理大小为32。
表2显示了顶级排行榜条目以及顶级发布系统的结果(Seo等人,2017;Clark和Gardner,2018;Peters等人,2018;Hu等人,2018)。排行榜靠前的SQuAD没有最新的公共系统描述。因此,我们首先对TriviaQA进行微调(Joshi等人,2017),然后在SQuAD上进行微调,从而在系统中使用适度的数据增强。

我们的最佳性能系统在整体表现上领先+1.5 F1,而在整体系统方面则优于+1.3 F1。实际上,就F1分数而言,我们的单个BERT模型优于顶级集成系统。没有TriviaQA的微调,我们只损失0.1-0.4 F1,仍然远远胜过所有现有系统。

表2
表2:SQuAD 1.1结果。 BERT合奏是使用不同的预训练检查点的7x系统和微调因子。
表3
表3:SQuAD 2.0结果。 我们排除以下条目使用BERT作为其组件之一。
表4
表4:SWAG开发和测试精度。 人的表现用100个样品测量,如SWAG文件

4.3 SQuAD v2.0

SQuAD 2.0任务通过允许在提供的段落中不存在简短答案的可能性扩展了SQuAD 1.1问题定义,从而使问题更加实际。
我们使用一种简单的方法来扩展SQuAD v1.1 BERT模型以完成此任务。我们将没有答案的问题视为答案范围以[CLS]标记开头和结尾。起始和终止答案跨度位置的概率空间已扩展为包括[CLS]标记的位置。为了进行预测,我们比较了无答案范围的得分:snull = S·C + E·C到最佳非空跨度的分数s_(j≥i)^^= 〖max〗(j≥i) S·Ti + E·Tj。当s(j≥i)^^ > s_null+ τ时,我们预测一个非空答案,其中在开发集上选择阈值以最大化F1。我们没有为此模型使用TriviaQA数据。我们微调了2个时期,学习率为5e-5,批量大小为48。

表3中显示了与先前排行榜条目和排名靠前的作品(Sun等人,2018; Wang等人,2018b)相比的结果,其中不包括使用BERT作为其组件之一的系统。与之前的最佳系统相比,我们观察到+1 F1的改进。

4.4 SWAG

对抗生成代的情境(SWAG)数据集包含113k个句子对完成示例,用于评估扎实的常识推理(Zellers等人,2018)。给定一个句子,任务是在四个选择中选择最合理的延续。
在SWAG数据集上进行微调时,我们构造了四个输入序列,每个输入序列都包含给定句子(句子A)和可能的延续词(句子B)的串联。引入的唯一特定于任务的参数是矢量,其矢量与[CLS]标记表示C的点积表示每个选择的得分,并使用softmax层对其进行归一化。
我们对模型进行了3个时期的微调,学习率为2e-5,批处理大小为16。结果如表4所示。BERTLARGE优于作者的基线ESIM + ELMo系统+ 27.1%,OpenAI GPT优于8.3 %。

5. 消融研究

在本节中,我们将对BERT的多个方面进行消融实验,以更好地了解它们的相对重要性。额外地,消融研究可在附录C中找到
表5

表5:使用BERTBASE体系结构。 没有培训“无NSP”下一个句子的预测任务。 “ LTR&No NSP”是训练为从左到右的LM,无需下一句预测,例如OpenAI GPT。
“ + BiLSTM”随机添加在“ LTR + No”之上初始化BiLSTMNSP”模型在微调期间。

5.1 预训练任务的效果

通过使用与BERTBASE完全相同的预训练数据,微调方案和超参数来评估两个预训练目标,我们证明了BERT双向深度的重要性:
No NSP:使用“掩盖的LM”(MLM)训练但没有“下一句预测”(NSP)任务的双向模型。

LTR&No NSP: 使用标准的从左到右(LTR)LM(而不是MLM)训练的仅左上下文模型。左约束也应用于微调,因为删除它会引入预训练/微调不匹配,从而降低下游性能。此外,该模型无需NSP任务即可进行预训练。这可以直接与OpenAI GPT相提并论,但要使用更大的训练数据集,输入表示形式和微调方案。

我们首先研究NSP任务带来的影响。在表5中,我们显示删除NSP会严重损害QNLI,MNLI和SQuAD 1.1的性能。接下来,我们通过比较“无NSP”与“ LTR和无NSP”来评估训练双向表示的影响。在所有任务上,LTR模型的性能都比MLM模型差,而MRPC和SQuAD的性能下降很大。

对于SQuAD,直观上很清楚,因为标记级别的隐藏状态没有右侧上下文,所以LTR模型在标记预测时的性能会很差。为了增强LTR系统的可靠性,我们在顶部添加了一个随机初始化的BiLSTM。这确实可以显着改善SQuAD的结果,但是这个结果仍然远比预训练的双向模型差。 BiLSTM损害了GLUE任务的性能。

我们认识到,像ELMo一样,也有可能训练单独的LTR和RTL模型并将每个标记表示为两个模型的串联。但是:(a)这是单个双向模型的两倍昂贵;(b)对于QA这样的任务,这是不直观的,因为RTL模型将无法确定问题的答案;(c)这绝对不像深度双向模型那么强大,因为它可以在每一层使用左右上下文。

5.2模型大小的影响

在本节中,我们探索模型大小对微调任务准确性的影响。我们训练了许多具有不同层数、隐藏单元和注意头的BERT模型,而其他方面则使用了与之前所述相同的超参数和训练过程。
表6列出了选定的GLUE任务的结果。在此表中,我们报告了5次随机微调重新启动后的平均Dev Set精度。我们可以看到,即使对于只有3,600个带标签的训练示例的MRPC,它与预训练任务也大不相同,较大的模型会导致所有四个数据集的准确性都得到严格提高。我们能够在相对于现有文献而言已经相当大的模型的基础上实现如此显着的改进,这也许也令人惊讶。例如,在Vaswani等人中探索的最大的Transformer(2017)是(L=6,H=1024,A=16),编码器的参数为100M,而我们在文献中发现的最大的Transformer是(L=64,H=512,A=2和235M参数(Al-Rfou等人,2018)。相比之下,BERTBASE包含110M参数,而BERTLARGE包含340M参数。

众所周知,增加模型的大小将导致对诸如机器翻译和语言建模之类的大规模任务的持续改进,表6所示的持久性训练数据的LM困惑证明了这一点。但是,我们认为,这是第一个有说服力的证明,只要模型已经过充分的预训练,按比例缩放到极端的模型大小也将导致非常小的规模任务的重大改进。Peters等人(2018b)对于将预训练的Bi-LM尺寸从两层增加到四层对下游任务的影响提出了不同的结果,Melamud等人(2016年)顺便提到了将隐藏尺寸从200增加到600有所帮助,但进一步增加到1000并没有带来进一步的改进。这两个先前的工作都使用基于特征的方法-我们假设,当直接在下游任务上对模型进行微调并且仅使用很少数量的随机初始化的附加参数时,特定于任务的模型可以从更大,更具表达力的模型中受益训练的表示形式,即使下游任务数据非常小也是如此。

5.3 BERT的基于特征的方法

到目前为止提出的所有BERT结果都使用了微调方法,其中在预训练模型中添加了一个简单的分类层,并且在下游任务上共同对所有参数进行了微调。但是,从预训练模型中提取固定特征的基于特征的方法具有某些优势。首先,并非所有任务都可以由Transformer编码器体系结构轻松表示,因此需要添加特定于任务的模型体系结构。其次,预先计算出训练数据的昂贵表示形式,然后在此表示形式之上使用较便宜的模型运行许多实验,这具有很大的计算优势。

在本节中,我们通过将BERT应用于CoNLL-2003命名实体识别(NER)任务来比较这两种方法(Tjong Kim Sang和De Meulder,2003年)。在BERT的输入中,我们使用了一个区分大小写的WordPiece模型,并且包括了数据提供的最大文档上下文。按照标准惯例,我们将其公式化为标记任务但部在输出中使用CRF层。我们使用第一个子标记的表示作为NER标签集上标记级别分类器的输入。
表6
表6:BERT模型尺寸的消融。 #L =的层数; #H =隐藏尺寸; #A =注意次数头 “ LM(ppl)”是掩盖的LM困惑保留的培训数据。

为了消除微调方法,我们通过从一个或多个层中提取激活来应用基于特征的方法,而无需微调BERT的任何参数。这些上下文嵌入用作分类层之前随机初始化的两层768维BiLSTM的输入。
表7
表7:CoNLL-2003命名实体识别结果。使用Dev选择超参数
组。 报告的开发和测试分数是使用这些超参数随机重启5次。
结果显示在表7中。BERTLARGE用最新技术具有竞争力。效果最好的方法将来自预训练的Transformer的顶部四个隐藏层的标记表示连接起来,这仅比微调整个模型低0.3 F1。这表明BERT对于微调和基于特征的方法均有效。

6 结论

由于使用语言模型进行了转移学习,最近的经验改进表明,丰富的,无监督的预培训是许多语言理解系统不可或缺的一部分。尤其是,这些结果使即使是资源匮乏的任务也可以从深度单向架构中受益。我们的主要贡献是将这些发现进一步推广到深层次的双向体系结构,从而使相同的经过预训练的模型能够成功解决各种NLP任务。

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值