bert模型原理详解:带你读论文8篇论文梳理BERT相关模型进展与反思
bert模型原理详解:带你读论文8篇论文梳理BERT相关模型进展与反思可以看出,只输入 w 模型就获得了71%的峰值表现,而输入(R,W)则能增加4%,输入(C,W)则能增加2%,正好71% 4% 2%=77%,这是一个很强的证据。A Cue's Coverage:这个 cue 在所有数据点中出现的次数。这样的 cue 有很多,如 not、are 等。如上图表一所示是 not 的出现情况,可以看出 not 在64%的数据点中都有出现,并且模型只要选择有 not 出现的 warrant,正确的概率是61%。作者怀疑模型学到的是这样的信息。如果推论成立,只需输入 warrant,模型就能获得很好的表现。因此作者也做了上图表二所示的实验。
表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%,这是一个很强的证据。
图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)任务中表现的探讨。
图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 信息。
图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.