带你读论文丨8篇论文梳理BERT相关模型进展与反思

BERT 自从在 arXiv 上发表以来获得了很大的成功和关注,打开了 NLP 中 2-Stage 的潘多拉魔盒。随后涌现了一大批类似于“BERT”的预训练(pre-trained)模型,有引入 BERT 中双向上下文信息的广义自回归模型 XLNet,也有改进 BERT 训练方式和目标的 RoBERTa 和 SpanBERT,还有结合多任务以及知识蒸馏(Knowledge Distillation)强化 BERT 的 MT-DNN 等。除此之外,还有人试图探究 BERT 的原理以及其在某些任务中表现出众的真正原因。以上种种,被戏称为 BERTology。本文中,微软亚洲研究院知识计算组实习生陈永强尝试汇总上述内容,作抛砖引玉。

目录

近期 BERT 相关模型一览

XLNet 及其与 BERT 的对比

RoBERTa

SpanBERT

MT-DNN 与知识蒸馏

对 BERT 在部分 NLP 任务中表现的深入分析

BERT 在 Argument Reasoning Comprehension 任务中的表现

BERT 在 Natural Language Inference 任务中的表现

近期 BERT 相关模型一览

1. XLNet 及其与 BERT 的对比

我们的讨论从 XLNet 团队的一篇博文开始,他们想通过一个公平的比较证明最新预训练模型 XLNet 的优越性。但什么是 XLNet 呢?

bert论文 带你读论文丨8篇论文梳理BERT相关模型进展与反思

图1:XLNet 和 BERT 对比图

我们知道,BERT 是典型的自编码模型(Autoencoder),旨在从引入噪声的数据重建原数据。而 BERT 的预训练过程采用了降噪自编码(Variational Autoencoder)思想,即 MLM(Mask Language Model)机制,区别于自回归模型(Autoregressive Model),最大的贡献在于使得模型获得了双向的上下文信息,但是会存在一些问题:

1. Pretrain-finetune Discrepancy:预训练时的[MASK]在微调(fine-tuning)时并不会出现,使得两个过程不一致,这不利于 Learning。

2. Independence Assumption:每个 token 的预测是相互独立的。而类似于 New York 这样的 Entity,New 和 York 是存在关联的,这个假设则忽略了这样的情况。

自回归模型不存在第二个问题,但传统的自回归模型是单向的。XLNet 团队想做的,就是让自回归模型也获得双向上下文信息,并避免第一个问题的出现。

他们主要使用了以下三个机制:

Permutation Language Model

Two-Stream Self-Attention

Recurrence Mechanism

接下来我们将分别介绍这三种机制。

Permutation Language Model

bert论文 带你读论文丨8篇论文梳理BERT相关模型进展与反思

图2:XLNet 模型框架图

在预测某个 token 时,XLNet 使用输入的 permutation 获取双向的上下文信息,同时维持自回归模型原有的单向形式。这样的好处是可以不用改变输入顺序,只需在内部处理。

它的实现采用了一种比较巧妙的方式:使用 token 在 permutation 的位置计算上下文信息。如对于,当前有一个 2 -> 4 ->3 ->1 的排列,那么我们就取出 token_2 和 token_4 作为AR 的输入预测 token_3。不难理解,当所有 permutation 取完时,我们就能获得所有的上下文信息。

这样就得到了我们的目标公式:

bert论文 带你读论文丨8篇论文梳理BERT相关模型进展与反思

但是在原来的公式中,我们只使用了 h_θ (x_(Z<t)) 来表示当前token“上文”的 hidden representation,使得不管模型要预测哪个位置的 token,如果“上文”一致,那么输出就是一致的。因此,新的公式做出了改变,引入了要预测的 token 的位置信息。

bert论文 带你读论文丨8篇论文梳理BERT相关模型进展与反思

此外,为了降低模型的优化难度,XLNet 使用了 Partial Prediction,即只预测当前 permutation 位置 c 之后的 token,最终优化目标如下所示。

bert论文 带你读论文丨8篇论文梳理BERT相关模型进展与反思

Two-Stream Self-Attention

bert论文 带你读论文丨8篇论文梳理BERT相关模型进展与反思

图3:Two-Stream Self-Attention 机制

该机制所要解决的问题是,当我们获得了 g_θ (x_{Z<t},z_t) 后,我们只有该位置信息以及“上文”的信息,不足以去预测该位置后的 token;而原来的 h_θ (x_{Z<t}) 则因为获取不到位置信息,依然不足以去预测。因此,XLNet 引入了 Two-Stream Self-Attention 机制,将两者结合起来。

Recurrence Mechanism

bert论文 带你读论文丨8篇论文梳理BERT相关模型进展与反思

图4:Recurrence Mechanism 机制

该机制来自 Transformer-XL,即在处理下一个 segment 时结合上个 segment 的 hidden representation,使得模型能够获得更长距离的上下文信息。而在 XLNet 中,虽然在前端采用相对位置编码,但在表示 h_θ (x_{Z<t}) 的时候,涉及到的处理与permutation 独立,因此还可以沿用这个机制。该机制使得 XLNet 在处理长文档时具有较好的优势。

XLNet 与 BERT 的区别示例

bert论文 带你读论文丨8篇论文梳理BERT相关模型进展与反思

图5:XLNet 与 BERT 的区别示例

为了说明 XLNet 与 BERT 的区别,作者举了一个处理“New York is a city”的例子。这个可以直接通过两个模型的公式得到。假设我们要处理 New York 这个单词,BERT 将直接 mask 这两个 tokens,使用“is a city”作为上下文进行预测,这样的处理忽略了 New 和 York 之间的关联;而 XLNet 则通过 permutation 的形式,可以使得模型获得更多如 York | New, is a city 这样的信息。

公平地比较 XLNet 与 BERT

为了更好地说明 XLNet 的优越性,XLNet 团队发表了开头提到的博文“A Fair Comparison Study of XLNet and BERT”。

在这篇博文中,XLNet 团队控制 XLNet 的训练数据、超参数(Hyperparameter)以及网格搜索空间(Grid Search Space)等与 BERT 一致,同时还给出了三个版本的 BERT 进行比较。BERT 一方则使用以下三个模型中表现最好的模型。

bert论文 带你读论文丨8篇论文梳理BERT相关模型进展与反思

实验结果如下。

bert论文 带你读论文丨8篇论文梳理BERT相关模型进展与反思

表1:XLNet 与 BERT 实验结果对比

从中可以看出,在相同设定情况下,XLNet 完胜 BERT。但有趣的是:

XLNet 在使用 Wikibooks 数据集时,在MRPC(Microsoft Research Paraphrase Corpus: 句子对来源于对同一条新闻的评论,判断这一对句子在语义上是否相同)和 QQP(Quora Question Pairs: 这是一个二分类数据集。目的是判断两个来自于 Quora 的问题句子在语义上是否是等价的)任务上获得了不弱于原版 XLNet 的表现;

BERT-WWM 模型普遍表现都优于原 BERT;

去掉 NSP(Next Sentence Prediction)的 BERT 在某些任务中表现会更好;

除了 XLNet,还有其他模型提出基于 BERT 的改进,让 BERT 发挥更大的潜能。

2. RoBERTa: A Robustly Optimized BERT Pretraining Approach

bert论文 带你读论文丨8篇论文梳理BERT相关模型进展与反思

表2:RoBERTa 在 GLUE 中的实验结果

RoBERTa 是最近 Facebook AI 联合 UW 发布的 BERT 预训练模型,其改进主要是如图所示几点,除了调参外,还引入了 Dynamically Change Mask Pattern 并移除 Next Sentence Prediction,使得模型在 GLUE Benchmark 排名第一。作者的观点是:BERT is significantly undertrained。

bert论文 带你读论文丨8篇论文梳理BERT相关模型进展与反思

表3:RoBERTa 各个机制的效果比较实验

不同于原有的 BERT 的 MLM 机制,作者在总共40个 epoch 中使用10种不同的 Mask Pattern,即每种 Mask Pattern 训练4代,作为 static 策略;作者还引入了 dynamic masking 策略,即每输入一个 sequence 就为其生成一个 mask pattern。最终发现,新策略都比原 BERT 好,而 dynamic 总体上比 static 策略要好一些,并且可以用于训练更大的数据集以及更长的训练步数,因此最终选用 dynamic masking pattern。

作者还通过替换 NSP 任务进行预训练。虽然 BERT 中已经做了尝试去掉 NSP 后的对比,结果在很多任务中表现会下降,但是包括前文 XLNet 团队所做的实验都在质疑这一结论。

选用的新策略包括:

Sentence-Pair+NSP Loss:与原 BERT 相同;

Segment-Pair+NSP Loss:输入完整的一对包含多个句子的片段,这些片段可以来自同一个文档,也可以来自不同的文档;

Full-Sentences:输入是一系列完整的句子,可以是来自同一个文档也可以是不同的文档;

Doc-Sentences:输入是一系列完整的句子,来自同一个文档;

结果发现完整句子会更好,来自同一个文档的会比来自不同文档的好一些,最终选用 Doc-Sentences 策略。

bert论文 带你读论文丨8篇论文梳理BERT相关模型进展与反思

表4:RoBERTa 在更多训练数据和更久训练时间下的实验结果

作者还尝试了更多的训练数据以及更久的训练时间,发现都能提升模型的表现。

这种思路一定程度上与 OpenAI 前段时间放出的 GPT2.0 暴力扩充数据方法有点类似,但是需要消耗大量的计算资源。

3. SpanBERT: Improving Pre-training by Representing and Predicting Spans

bert论文 带你读论文丨8篇论文梳理BERT相关模型进展与反思

图6:SpanBER模型框架以及在 GLUE 中的实验结果

不同于 RoBERTa,SpanBERT 通过修改模型的预训练任务和目标使模型达到更好的效果。其修改主要是三个方面:

Span Masking:这个方法与之前 BERT 团队放出WWM(Whole Word Masking)类似,即在 mask 时 mask 一整个单词的 token 而非原来单个token。每次 mask 前,从一个几何分布中采样得到需要 mask 的 span 的长度,并等概率地对输入中为该长度的 span 进行 mask,直到 mask 完15%的输入。

Span Boundary Object:使用 span 前一个 token 和末尾后一个 token 以及 token 位置的 fixed-representation 表示 span 内部的一个 token。并以此来预测该 token,使用交叉熵作为新的 loss 加入到最终的 loss 函数中。该机制使得模型在 Span-Level 的任务种能获得更好的表现。

Single-Sequence Training:直接输入一整段连续的 sequence,这样可以使得模型获得更长的上下文信息。

在这三个机制下,SpanBERT 使用与 BERT 相同的语料进行训练,最终在 GLUE 中获得82.8的表现,高于原版 Google BERT 2.4%,高于他们调参后的 BERT 1%,同时在 Coreference Resolution 上将最好结果提高了6.6%。

4. MT-DNN 与知识蒸馏

Multi-Task Deep Neural Networks for Natural Language Understanding

这篇论文旨在将 Multi-Task 与 BERT 结合起来,使得模型能在更多的数据上进行训练的同时还能获得更好的迁移能力(Transfer Ability)。

bert论文 带你读论文丨8篇论文梳理BERT相关模型进展与反思

图7:MT-DNN 模型框架以及训练算法

模型架构如上图所示,在输入以及 Transformer 层,采用与 BERT 相同的机制,但是在后续处理不同任务数据时使用不同的任务参数与输出的表示做点积(Dot Production),用不同的激活函数(Activation Function)和损失函数(Loss Function)进行训练。

bert论文 带你读论文丨8篇论文梳理BERT相关模型进展与反思

图8:MT-DNN 在不同任务之间的迁移能力

MT-DNN 具有不错的迁移能力。如上图所示,MT-DNN 只需要23个任务样本就可以在 SNLI 中获得82%的准确率!尤其是 BERT 在一些小数据集上微调可能存在无法收敛表现很差的情况,MT-DNN 就可以比较好地解决这一问题,同时节省了新任务上标注数据以及长时间微调的成本。

Improving Multi-Task Deep Neural Networks via Knowledge Distillation for Natural Language Understanding

bert论文 带你读论文丨8篇论文梳理BERT相关模型进展与反思

图9:使用知识蒸馏对 MT-DNN 模型进行优化

由于 MT-DNN 可以看作一个 ensemble 过程,所以就可以用知识蒸馏(Knowledge Distillation)进行优化,该方法能提升很多 ensemble 模型的表现,感兴趣的读者可以自行了解相关内容。

本文的知识蒸馏过程即对于不同的任务,使用相同的结构在对应的数据集上进行微调,这就可以看作每个任务的 Teacher,他们分别擅长解决对应的问题。

Student 则去拟合 target Q,并且使用 soft 交叉熵损失(Cross Entropy Loss)。为什么使用 soft 交叉熵损失呢?因为有些句子的意思可能并不是绝对的,比如“I really enjoyed the conversation with Tom"有一定概率说的是反语,而不是100%的积极意思。这样能让 Student 学到更多的信息。

采用知识蒸馏后,模型在 GLUE 中的表现增长了1%,目前排名前三。我们还可以期待 MT-DNN 机制在 XLNet 上等其他预训练模型中的表现。

对 BERT 在部分 NLP 任务中 表现的深入分析

上文的 BERT 在 NLP 许多任务中都取得了耀眼的成绩,甚至有人认为 BERT 几乎解决了 NLP 领域的问题,但接下来的两篇文章则给人们浇了一盆冷水。

1. BERT 在 Argument Reasoning Comprehension 任务中的表现

Probing Neural Network Comprehension of Natural Language Argument s

bert论文 带你读论文丨8篇论文梳理BERT相关模型进展与反思

表5:BERT 在 Argument Reasoning Comprehension 任务中的表现

该文主要探究 BERT 在 ARCT(Argument Reasoning Comprehension)任务中取得惊人表现的真正原因。

首先,ARCT 任务是 Habernal 等人在 NACCL 2018 中提出的,即在给定的前提(premise)下,对于某个陈述(claim),相反的两个依据(warrant0,warrant1)哪个能支持前提到陈述的推理。

他们还在 SemEval-2018 中指出,这个任务不仅需要模型理解推理的结构,还需要一定的外部知识。在本例中,这个外部知识可以是“Sport Leagues 是一个和 Sport 相关的某组织”。

该任务中表现最好的模型是 GIST,这里不详细展开,有兴趣的读者可以关注该论文。

bert论文 带你读论文丨8篇论文梳理BERT相关模型进展与反思

图10:模型框架与实验结果

作者尝试使用 BERT 处理该任务,调整输入为[CLS,Claim,Reason,SEP,Warrant ],通过共用的 linear layer 获得一个 logit(类似于逻辑回归),分别用 warrant0 和 warrant1 做一次,通过 softmax 归一化成两个概率,优化目标是使得答案对应的概率最大。

最终该模型在测试集中获得最高77%的准确率。需要说明的是,因为 ARCT 数据集过小,仅有1210条训练样本,使得 BERT 在微调时容易产生不稳定的表现。因此作者进行了20次实验,去掉了退化(Degeneration,即在训练集上的结果非常差)的实验结果,统计得到上述表格。

bert论文 带你读论文丨8篇论文梳理BERT相关模型进展与反思

表6:作者的探索性实验(Probing Experiments)

虽然实验结果非常好,但作者怀疑:这究竟是 BERT 学到了需要的语义信息,还是只是过度利用了数据中的统计信息,因此作者提出了关于 cue 的一些概念:

A Cue's Applicability:在某个数据点 i,label 为 j 的 warrant 中出现但在另一个 warrant 中不出现的 cue 的个数。

A Cue's Productivity:在某个数据点 i,label 为 j 的 warrant 中出现但在另一个 warrant 中不出现,且这个数据点的正确 label 是 j,占所有上一种 cue 的比例。直观来说就是这个 cue 能被模型利用的价值,只要这个数据大于50%,那么我们就可以认为模型使用这个 cue 是有价值的。

A Cue's Coverage:这个 cue 在所有数据点中出现的次数。

这样的 cue 有很多,如 not、are 等。如上图表一所示是 not 的出现情况,可以看出 not 在64%的数据点中都有出现,并且模型只要选择有 not 出现的 warrant,正确的概率是61%。

作者怀疑模型学到的是这样的信息。如果推论成立,只需输入 warrant,模型就能获得很好的表现。因此作者也做了上图表二所示的实验。

可以看出,只输入 w 模型就获得了71%的峰值表现,而输入(R,W)则能增加4%,输入(C,W)则能增加2%,正好71%+4%+2%=77%,这是一个很强的证据。

bert论文 带你读论文丨8篇论文梳理BERT相关模型进展与反思

图11:对抗数据集以及在对抗数据集上的实验结果

为了充分证明推论的正确性,作者构造了对抗数据集(Adversarial Dataset),如上图例子所示,对于原来的结构:R and W -> C,变换成:Rand !W -> !C(这里为了方便,用!表示取反)

作者首先让模型在原 ARCT 数据集微调并在对抗数据集评测(Evaluation),结果比随机还要糟糕。后来又在对抗数据集微调并在对抗数据集评测,获得表现如上图第二个表所示。

从实验结果来看,对抗数据集基本上消除了 cue 带来的影响,让 BERT 真实地展现了其在该任务上的能力,与作者的猜想一致。

虽然实验稍显不足(如未充分说明模型是否收敛,其他模型在对抗数据集中的表现如何等),但本文给 BERT 的火热浇了一盆冷水,充分说明了 BERT 并不是万能的,我们必须冷静思考 BERT 如今取得惊人表现的真正原因。

2. BERT 在 Natural Language Inference 任务中的表现

Right for the Wrong Reasons: Diagnosing Syntactic Heuristics in Natural Language

这是另一篇对 BERT 等模型在自然语言推理(Natural Language Inference,NLI)任务中表现的探讨。

bert论文 带你读论文丨8篇论文梳理BERT相关模型进展与反思

图12:NLI 任务中 Heuristic 示意图

作者首先假设在 NLI 中表现好的模型可能利用了三种 Heuristic,而所谓的 Heuristic 即在 Premise 中就给了模型一些提示,有如下三种:

Lexical Overlap:对应的 Hypothesis 是 Premise 的子序列

Subsequence:对应的 Hypothesis 是 Premise 的子串

Constituent:Premise 的语法树会覆盖所有的 Hypothesis

基于这个假设,作者也做了实验并观察到,MNLI 训练集中许多数据点都存在这样的 Heuristic,且对应的选项是正确的数量远多于不正确。针对这种情况,作者构造了 HANS 数据集,均衡两种类型样本的分布,并且标记了 premise 是否 entail 上述几种 Heuristic。

实验时模型在 MNLI 数据集微调,在 HANS 数据集评测,结果 entailment 类型的数据点中模型都表现不错,而在 non-entailment 类型中模型表现欠佳。这一实验结果支持了作者的假设:模型过度利用了 Heuristic 信息。

bert论文 带你读论文丨8篇论文梳理BERT相关模型进展与反思

图13:模型在 HANS 数据集上的结果分析

但是作者并不十分确定这种实验结果是什么原因导致的,并提出如下猜想:

HANS 数据集太难了?不。作者让人类进行测试,发现人类在两种类型的数据中准确率分别为77%和75%,远高于模型。

是模型缺乏足够的表示能力吗?不。ICLR 2019《RNNs implicitly implement tensor-product representations》给出了一定的证据,表示 RNN 足够在 SNLI 任务中已经学到一定的关于结构的信息。

那就是 MNLI 数据集并不好,缺乏足够的信号让模型学会 NLI。

因此作者在训练集中加入了一定的 HANS 数据,构造了 MNL+数据集,让模型在该数据集微调,最终获得了如上图所示的结果。为了证明 HANS 对模型学到 NLI 的贡献,作者还让在 MNL+上微调的模型在另一个数据集中做了评测,模型表现都有提升。

总结

本文总结了 BERT 提出以来一些最新的发展。

BERT 是一个优秀的预训练模型,它的预训练思想可以用来改进其他模型。BERT 可以更好 ,我们可以设置新的训练方式和目标,让其发挥更大的潜能。

BERT 并没有想象中的那么好 ,我们必须冷静对待 BERT 在一些任务中取得不错表现的原因——究竟是因为 BERT 真正学到了对应的语义信息,还是因为数据集中数据的不平衡导致 BERT 过度使用了这样的信号。

参考文献:

[1] XLNet: Generalized Autoregressive Pretraining for Language Understanding. Yang et al.CoRR abs/1906.08237.

[2] A Fair Comparison Study of XLNet and BERT. XLNet Team.

https://medium.com/@xlnet.team/a-fair-comparison-study-of-xlnet-and-bert-with-large-models-5a4257f59dc0

[3] Probing Neural Network Comprehension of Natural Language Arguments. Niven et al. ACL2019.

[4] Right for the Wrong Reasons: Diagnosing Syntactic Heuristics in Natural Language Inference. McCoy el al. Corr abs/1902.01007.

[5] RoBERTa: A Robustly Optimized BERT Pretraining Approach. Liu et al. CoRR abs/190.11692.

[6] SpanBERT: Improving Pre-training by Representing and Predicting Spans. Joshi et al. CoRRabs/1907.10529.

[7] Multi-Task Deep Neural Networks for Natural Language Understanding. Liu et al. CoRR abs/1901.11504.

[8] Improving Multi-Task Deep Neural Networks via Knowledge Distillation for Natural Language Understanding. Liu et al. CoRR abs/1904.09482.

首篇严肃的“BERT学”研究,40+ 论文对比,解读 BERT 工作原理

bert论文 带你读论文丨8篇论文梳理BERT相关模型进展与反思

作者 | 张景俊

编辑 | 丛 末

目前,不管是工业界还是学术界,基于 Transformer 的模型已经广泛应用于自然语言处理(NLP)任务中,然而很多人依然对这些模型的内部工作机制知之甚少。

bert论文 带你读论文丨8篇论文梳理BERT相关模型进展与反思

论文链接:https://arxiv.org/abs/2002.12327

基于此背景,Anna Rogers等人对当前霸占各大NLP任务榜单的 BERT 模型进行了论述,分析了BERT模型工作机理,包括pre-training和fine-turning阶段。并且提出了一些改善BERT模型训练性能的新方法,此外,对未来BERT在NLP任务中的研究方向也进行了探索。

AI 科技评论对这篇文章内容作以简介,抛砖引玉。

1、简 介

自2017年Transformers提出以来,便迅速席卷了整个NLP领域,在众多Transformer-based模型中,毫无疑问最著名的非BERT莫属。本文是一篇综述性文章,概述了目前学术界对BERT已取得的研究成果,并且对后续的研究也进行了展望。

2、BERT 架构

BERT是基于multiple “heads”多头组成的Transformer编码器,它的全连接层采用了self-attention机制,其中每一个头部都用于进行key、value、query的计算。

BERT的常规工作流程分为两个阶段:预训练pre-training和微调fine-tuning。其中预训练使用两个半监督任务:MLM模型和NSP模型,对于MLM模型而言,他主要的作用是预测被随机mask的输入token,对于NSP模型而言,他主要的作用是用于,预测两个输入句子是否彼此相邻、是否为前后句关系。相比预训练阶段,微调fine-tuning主要是针对下游应用,在fine-tuning时是通常需要一层或多层全连接层来添加到最终编码器层的顶部,如图1所示:

bert论文 带你读论文丨8篇论文梳理BERT相关模型进展与反思

目前,工业界主流的BERT分为基础版和大型版,差异具体体现在模型网络层数的不同、hidden size的大小和不同数量的attention heads。图2给出了Hewitt等人利用BERT进行NLP任务时的解析树。

bert论文 带你读论文丨8篇论文梳理BERT相关模型进展与反思

3、BERT 嵌入

对于BERT embeddings的介绍,作者引述了这方面的相关研究成果进行论述。其中Mikolov和Pennington等人对BERT embeddings与传统的static embeddings之间的区别提出了新的见解,他们认为BERT的embeddings过程是取决于上下文关系的,即每个输入的token都是依赖于特定上下文的向量;而Wiedemann等人于认为BERT的embeddings是通过上下文嵌入与词语聚类来实现的;Mickus等人认为注意力相同单词之间的embedding通过依赖于他们在句子中的位置实现的。

4、BERT学到的是什么知识?

在这一部分,作者主要就目前对BERT中的knowledge进行了阐述,具体包括:句法知识(Syntactic knowledge)、语义知识(Semantic knowledge)和知识库(World knowledge)。对于Syntactic knowledge而言,学术界认为BERT对于格式错误的输入信息其实并不敏感,主要表现在它的预测不因改变单词顺序、句子截断、主语和宾语被删除而受影响。

然而,对于Semantic knowledge的研究学术论文相对较少,但是不乏如Tenney等人的研究,他们主要对BERT编码与语义知识之间的关系进行了研究。对于World knowledge的研究主要是Petroni等人,他们于2019发表了有关vanilla BERT与World knowledge在关系型任务中的工作原理论文。

5、Localizing linguistic knowledge

这一部分,作者主要从两个角度来进行阐述,分别为:Self-attention heads和BERT layers。

1)Self-attention heads

目前,许多学者认为研究注意力对于理解Transformer模型很有帮助,因此针对attention heads学术界进行了大量的研究。2019年,Kovaleva等人对Self-attentionheads的研究表明,Self-attention heads不会直接编码任何普通的语言信息,这是因为它们中有不足一半的是“heterogeneous”模式。同年,Clark等人对[CLS]和[SEP]在注意力机制中的作用进行了相关研究,它们假设用[CLS]和[SEP]来代替句号和逗号,并且让模型学会依赖他们。他们还假定[SEP]的功能就是是“no-op”,通俗的理解就是一旦模式不适用于当前情况,其头部信息是完全可以忽略的。

2)BERT layers

针对BERT的网络结构,作者主要从BERT layers的首层、中间层、最末层三部分进行阐述。对于first layer而言,可以接收由token、segment和positional embeddings三种组合后的输入,所以作者认为他的lower layers具有线性的词序信息。对于BERT的middle layer, Liu等人认为这一层主要用于处理句法信息,通过实验表明,跨任务转移在transform中间层上表现最佳。对于BERT的最末层网络而言,它主要是用于处理具体场景下的任务,这一点在fine-tuning阶段得到了很好地应用。

6、Training BERT

预训练和微调是BERT中的两个重要的任务。在预训练阶段,许多学者针对下一句预测(NSP)和屏蔽语言模型提出了改善BERT性能的一些方法,诸如删除NSP任务、dynamic masking、句子 masking 、实体 masking以及Conditional MLM等等。我们以删除NSP任务为例说明,作者列举了Liu 、Joshi、Clinchant等人的研究成果,研究表明删除NSP任务不但不会损害BERT任务的性能,相反甚至会提升BERT的工作性能,这一情况尤其是在跨语言模型中将NSP替换为预测当前的前后句子表现的更为明显。

对于微调阶段,学术界也进行了多项试验来改善BERT的微调性能,包括 yang等人于2019年提出的加入更多层的网络、Phang等人提出的采用two-stage的方法来提升预训练和微调的中间监督训练等一系列实验探索。

7、How big should BERT be?

当BERT来解决复杂的NLP任务,大家通常都是采用增加模型的复杂度来提升模型的准确度,然而Voita等人通过实验表明,这一做法往往会使得一部分NLP任务因为模型过于复杂反而而造成模型性能的下降。

作者给出了Michel等人在2019年发表论文,阐述了增加BERT模型复杂度对下游任务造成的损害,实践表明通过禁用部分多余的头不但没有造成性能的下降,反而给机器翻译任务带来了性能上的提升,同样的,对于GLUE任务,也有相同的实验结果。至于为什么出现这种情况,Clark等人认为可能是由于在dropout部分attention时,会将训练过程中的注意力权重归零的缘故造成的。

基于此背景,学术界诞生了很多BERT compression的研究,随之作者列举了有关于压缩后的BERT模型性能,并进行了比较,如表1所示。

bert论文 带你读论文丨8篇论文梳理BERT相关模型进展与反思

Table1: Comparison of BERT compression studies

表中的speedup是针对BERTbase而言,各模型中的下标数字代表的是层数,可以发现压缩后的BERT,优点不仅体现在运行速度的提升,而且performance也大幅提升,典型的代表模型如TinyBERT、Albert等。

8、Multilingual BERT

这一部分作者主要对Multilingual BERT模型进行了介绍,其中多语言BERT指的是利用Wikipedia上已有的104种语言,进行了二次抽样或者使用指数平滑进行超级采样后,最终训练好的模型,图7给出了mBERT均值池的语言云图。针对多语言BERT模型,Wu 和 Dredze等人认为它在zero-shot 转移任务中表现极为出色,这是由于该模型通过学习大量的高质量跨语言单词,辅助open-class结构语言,从而极大地提升了模型的质量。当然多语言BERT模型也有很多需要改进的地方,作者罗列了业界主要的改进方法,具体如下:

1、通过freezing 底层的网络来提升多语言数据集的fine-tuning;

2、在fine-tuning任务上改进单词的对齐;

3、通过translation language模型来改善预训练时被屏蔽的目标单词或句子对;

bert论文 带你读论文丨8篇论文梳理BERT相关模型进展与反思

Figure 7:Language centroids of themean-pooled mBERT representations

9、讨论

通过上面的分析介绍,我们会发现,相比其他NLP模型,BERT模型拥有惊人数量的句法、语义以及world knowledge。然而,对于这些惊人数量的句法、语义以及world knowledge,学术界并没有阐述BERT任务中探测分类器是如何根据它们学习以及应用于下游任务的。

除此之外,有关于探针复杂度与检验假设的问题也没有得到合理地解释,这些都需要我们进一步对原模型进行探索。在此背景下,作者给出了未来关于BERT的三个研究方向,分别为:需要推理能力的benchmarks、开发新方法用于“teach” reasoning以及有效的学习推理过程。

10、结论

在短短一年多的时间里,BERT已成为NLP领域众多分析模型的首选,并且很多人也基于BERT进行了各版本的改进,本论文主要是用于阐述目前BERT的研究成果以及工作原理,希望读者能够通读这份文献深入了解BERT,并对以后BERT的研究提出自己的观点与意见。

bert论文 带你读论文丨8篇论文梳理BERT相关模型进展与反思

戳戳,更有料!

【CVPR 2020专题】

相关问答

谷歌的AI技术有多牛?

在当地时间周三在OpenReview.net上发表的一篇论文中,谷歌AI和芝加哥丰田科技机构(ToyotatechnologyInstituteofChicago)宣布,他们的新AIALBE...

体育世界记录有最终的极限吗?

打破世界纪录正变得越来越困难。人类已经接近了自己的生理极限,国际田径联合会又严止兴奋剂的使用。Berthelot是两篇与此内容相关的论文的作者,他的两篇论文...

为什么说自然语言处理是人工智能的核心?

非科班出身,自学撸出中文分词库HanLP,在GitHub标星1.5万,成为最受欢迎的自然语言处理项目。他将学习经验总结成书《自然语言处理入门》,帮助小白快速入门NLP...(...

自学编程需要看哪些书?

本文从以下几个方面给大家分享几本高价值书单,并不一定全面,欢迎读者补充,希望能对你有帮助。1关于编码与重构1.1代码整洁之道英文名《Cleancode》,该...

自然语言处理的学习路径是什么?它在哪些领域有所应用?未来的前景又会怎样?

个人意见1.先说前景吧:随着人工智能的发展,人机交互方式革新必然是发展趋势。人最为习惯的的莫非人类语言。让机器理解人的语言将成为新的,近期最可能去实现...

世界排名前十的生物学家?

...DennisSmith,辉瑞全球研发中心药代动力学研究室前负责人,药物代谢方面的专家,致力于研发更安全更有效的药物。他参与研发了8种美国FDA批准的全新化学...

如何预防“癌老大”肺癌?

现在癌症的确已经成为切切实实的癌老大,其病死率和发病率在城市人口当中都是癌中之最,在乡镇也已经上升到了第二位,随着农村环境污染和吸烟问题的进一步加重,...

这一波人工智能泡沫将会怎么破灭?

我国的人工智能才刚起步,最多只能说做了一些基础性工作,如语言识别,智能机器人、无人驾驶、深度学习、计算机视觉等等,远没达到预期目标,与日本、美国等西方...

gpt1到gpt4用了多久?

用了五年时间,2018年6月发布了gpt1,2023年发布了gpt4。GPT到底是什么?随着1956年“达特茅斯会议”上创造“人工智能”这个术语,全球迎来了AI技术发...1.GPT...

有做机器学习的吗?要具备哪些技能?本科生可以担任什么职位?

机器学习岗位这几年都很热门,人工智能技术得到大众的广泛认同,希望学习机器学习的人越来越多了,那么如果从事机器学习我们需要具备哪些知识体系呢?我从事机...