快捷搜索:  汽车  科技

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

bert模型原理详解:带你读论文8篇论文梳理BERT相关模型进展与反思Student 则去拟合 target Q,并且使用 soft 交叉熵损失(Cross Entropy Loss)。为什么使用 soft 交叉熵损失呢?因为有些句子的意思可能并不是绝对的,比如“I really enjoyed the conversation with Tom"有一定概率说的是反语,而不是100%的积极意思。这样能让 Student 学到更多的信息。本文的知识蒸馏过程即对于不同的任务,使用相同的结构在对应的数据集上进行微调,这就可以看作每个任务的 Teacher,他们分别擅长解决对应的问题。Improving Multi-Task Deep Neural Networks via Knowledge Distillation for Natural Language Understanding图9:使用知识蒸馏对 MT-DNN 模型进行优化由于 MT-DNN 可以看作一个

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

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

bert模型原理详解:带你读论文8篇论文梳理BERT相关模型进展与反思(1)

图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相关模型进展与反思(2)

图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 Arguments

bert模型原理详解:带你读论文8篇论文梳理BERT相关模型进展与反思(3)

表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相关模型进展与反思(4)

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

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

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

bert模型原理详解:带你读论文8篇论文梳理BERT相关模型进展与反思(5)

猜您喜欢: