最强NLP预训练模型!谷歌BERT横扫11项NLP任务记录

2019 年 2 月 20 日 人工智能前沿讲习班

本文介绍了一种新的语言表征模型BERT——来自Transformer的双向编码器表征。与最近的语言表征模型不同,BERT旨在基于所有层的左、右语境来预训练深度双向表征。BERT是首个在大批句子层面和token层面任务中取得当前最优性能的基于微调的表征模型,其性能超越许多使用任务特定架构的系统,刷新了11项NLP任务的当前最优性能记录。

研究证明语言模型预训练可以有效改进许多自然语言处理任务,包括自然语言推断、复述(paraphrasing)等句子层面的任务,以及命名实体识别、SQuAD问答等token层面的任务。前者通过对句子进行整体分析来预测句子之间的关系,后者则要生成token级别的细粒度输出。

目前将预训练语言表征应用于下游任务存在两种策略:基于特征的策略和微调策略(fine-tuning)。基于特征的策略(如ELMo)使用将预训练表征作为额外特征的任务专用架构。微调策略(如生成预训练 Transformer (OpenAI GPT))引入了任务特定最小参数,通过简单地微调预训练参数在下游任务中进行训练。在之前的研究中,两种策略在预训练期间使用相同的目标函数,利用单向语言模型来学习通用语言表征。

本论文作者(即Google AI Language团队的研究人员)认为现有的技术严重制约了预训练表征的能力,微调策略尤其如此。其主要局限在于标准语言模型是单向的,这限制了可以在预训练期间使用的架构类型。例如,OpenAI GPT使用的是从左到右的架构,其中每个token只能注意Transformer自注意力层中的先前token。这些局限对于句子层面的任务而言不是最佳选择,对于token级任务(如SQuAD问答)则可能是毁灭性的,因为在这种任务中,结合两个方向的语境至关重要。

本文通过BERT(Bidirectional Encoder Representations from Transformers)改进了基于微调的策略。BERT提出一种新的预训练目标——遮蔽语言模型(masked language model,MLM),来克服上文提到的单向局限。MLM的灵感来自Cloze任务(Taylor, 1953)。MLM随机遮蔽输入中的一些token,,目标在于仅基于遮蔽词的语境来预测其原始词汇id。与从左到右的语言模型预训练不同,MLM目标允许表征融合左右两侧的语境,从而预训练一个深度双向Transformer。除了MLM,我们还引入了一个「下一句预测」(next sentence prediction)任务,该任务联合预训练文本对表征。


本文贡献如下


  • 展示了双向预训练语言表征的重要性。不同于Radford等人(2018)使用单向语言模型进行预训练,BERT使用 MLM预训练深度双向表征。本研究与Peters等人(2018)的研究也不同,后者使用的是独立训练的从左到右和从右到左LM的浅层级联。

  • 证明了预训练表征可以消除对许多精心设计的任务特定架构的需求。BERT是首个在大批句子层面和token层面任务中取得当前最优性能的基于微调的表征模型,其性能超越许多使用任务特定架构的系统。

  • BERT刷新了11项NLP任务的当前最优性能记录。本论文还报告了BERT的模型简化测试(ablation study),证明该模型的双向特性是最重要的一项新贡献。代码和预训练模型将发布在goo.gl/language/bert。


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

论文地址:https://arxiv.org/pdf/1810.04805.pdf


摘要


本文介绍了一种新的语言表征模型BERT,意为来自Transformer的双向编码器表征(Bidirectional Encoder Representations from Transformers)。与最近的语言表征模型(Peters et al., 2018; Radford et al., 2018)不同,BERT旨在基于所有层的左、右语境来预训练深度双向表征。因此,预训练的BERT表征可以仅用一个额外的输出层进行微调,进而为很多任务(如问答和语言推断任务)创建当前最优模型,无需对任务特定架构做出大量修改。

BERT的概念很简单,但实验效果很强大。它刷新了11个NLP任务的当前最优结果,包括将GLUE基准提升至80.4%(7.6%的绝对改进)、将MultiNLI的准确率提高到 86.7%(5.6%的绝对改进),以及将SQuAD v1.1的问答测试F1得分提高至93.2分(提高1.5分)——比人类表现还高出2分。


模型架构


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的比较结果。

图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任务上的微调结果。

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

表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/。

表2:SQuAD结果。BERT集成是使用不同预训练检查点和微调种子(fine-tuning seed)的7x系统。

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


@机器之心

版权声明

本文版权归《机器之心》,转载请自行联系。


点击下方阅读原文了解课程详情


历史文章推荐:

重磅 |《模式识别与机器学习》资源大礼包

从Word Embedding到Bert模型—自然语言处理中的预训练技术发展史

SFFAI分享 | 曹杰:Rotating is Believing

SFFAI分享 | 黄怀波 :自省变分自编码器理论及其在图像生成上的应用

AI综述专栏 | 深度神经网络加速与压缩

SFFAI分享 | 田正坤 :Seq2Seq模型在语音识别中的应用

SFFAI 分享 | 王克欣 : 详解记忆增强神经网络

SFFAI报告 | 常建龙 :深度卷积网络中的卷积算子研究进展

SFFAI 分享 | 李宏扬 :二阶信息在图像分类中的应用



点击下方阅读原文了解课程详情↓↓


若您觉得此篇推文不错,麻烦点点好看↓↓

登录查看更多
0

相关内容

在搭建网络模型时,需要随机初始化参数,然后开始训练网络,不断调整直到网络的损失越来越小。在训练的过程中,一开始初始化的参数会不断变化。当参数训练到比较好的时候就可以将训练模型的参数保存下来,以便训练好的模型可以在下次执行类似任务时获得较好的结果。
深度学习自然语言处理概述,216页ppt,Jindřich Helcl
专知会员服务
209+阅读 · 2020年4月26日
Transformer文本分类代码
专知会员服务
116+阅读 · 2020年2月3日
BERT进展2019四篇必读论文
专知会员服务
64+阅读 · 2020年1月2日
多项NLP任务新SOTA,Facebook提出预训练模型BART
机器之心
22+阅读 · 2019年11月4日
一文读懂最强中文NLP预训练模型ERNIE
AINLP
24+阅读 · 2019年10月22日
中文版-BERT-预训练的深度双向Transformer语言模型-详细介绍
3分钟看懂史上最强NLP模型BERT
新智元
22+阅读 · 2019年2月27日
详解谷歌最强NLP模型BERT(理论+实战)
AI100
11+阅读 · 2019年1月18日
NLP预训练模型大集合!
机器之心
21+阅读 · 2018年12月28日
详细解读谷歌新模型 BERT 为什么嗨翻 AI 圈
人工智能头条
10+阅读 · 2018年10月25日
Arxiv
6+阅读 · 2019年8月22日
Arxiv
11+阅读 · 2019年6月19日
Arxiv
10+阅读 · 2018年3月22日
VIP会员
相关资讯
多项NLP任务新SOTA,Facebook提出预训练模型BART
机器之心
22+阅读 · 2019年11月4日
一文读懂最强中文NLP预训练模型ERNIE
AINLP
24+阅读 · 2019年10月22日
中文版-BERT-预训练的深度双向Transformer语言模型-详细介绍
3分钟看懂史上最强NLP模型BERT
新智元
22+阅读 · 2019年2月27日
详解谷歌最强NLP模型BERT(理论+实战)
AI100
11+阅读 · 2019年1月18日
NLP预训练模型大集合!
机器之心
21+阅读 · 2018年12月28日
详细解读谷歌新模型 BERT 为什么嗨翻 AI 圈
人工智能头条
10+阅读 · 2018年10月25日
Top
微信扫码咨询专知VIP会员