bert模型原理详解:带你读论文8篇论文梳理BERT相关模型进展与反思
bert模型原理详解:带你读论文8篇论文梳理BERT相关模型进展与反思BERT 在 Argument Reasoning Comprehension 任务中的表现对 BERT 在部分 NLP 任务中表现的深入分析RoBERTaSpanBERTMT-DNN 与知识蒸馏
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 呢?
图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
图2:XLNet 模型框架图
在预测某个 token 时,XLNet 使用输入的 permutation 获取双向的上下文信息,同时维持自回归模型原有的单向形式。这样的好处是可以不用改变输入顺序,只需在内部处理。
它的实现采用了一种比较巧妙的方式:使用 token 在 permutation 的位置计算上下文信息。如对于,当前有一个 2 -> 4 ->3 ->1 的排列,那么我们就取出 token_2 和 token_4 作为AR 的输入预测 token_3。不难理解,当所有 permutation 取完时,我们就能获得所有的上下文信息。
这样就得到了我们的目标公式:
但是在原来的公式中,我们只使用了 h_θ (x_(Z<t)) 来表示当前token“上文”的 hidden representation,使得不管模型要预测哪个位置的 token,如果“上文”一致,那么输出就是一致的。因此,新的公式做出了改变,引入了要预测的 token 的位置信息。
此外,为了降低模型的优化难度,XLNet 使用了 Partial Prediction,即只预测当前 permutation 位置 c 之后的 token,最终优化目标如下所示。