MT-DNN模型阅读笔记

本文参考博客

https://blog.csdn.net/ljp1919/article/details/90269059

https://blog.csdn.net/Magical_Bubble/article/details/89517709

本文主要记录了阅读论文《Multi-Task Deep Neural Networks for Natural Language Understanding》,MT-DNN是多任务深度神经网络。本文融合了两种方法:多任务学习MTL和语言模型预训练(预训练的双向转换语言模型bert)。因此,

补充多任务学习的概念,参考博客  https://blog.csdn.net/zaf0516/article/details/90380732

补充bert的知识,参考博客  https://blog.csdn.net/Magical_Bubble/article/details/89514057

 

背景

机构:微软亚洲研究院 NLP 组与 SDRG(微软雷德蒙德语音对话研究组)
作者:Xiaodong Liu、Pengcheng He
发布地方:arxiv
面向任务:自然语言理解任务(NLU)的学习表示
论文地址:https://arxiv.org/abs/1901.11504
论文代码:https://github.com/namisan/mt-dnn
更多代码版本参见:https://paperswithcode.com/paper/multi-task-deep-neural-networks-for-natural

 

摘要

本文提出了一种多任务深度神经网络 (MT-DNN) ,用于跨多种自然语言理解任务的学习表示。MT-DNN 一方面使用了大量跨任务数据,另一方面得益于正则化效果,这种效果使得学习到的表示具有更强的泛化能力,有助于使用到新的任务和领域。MT-DNN是基于Liu et al.(2015)工作基础上,融合扩展引入了预先训练的双向转换语言模型BERT。MT-DNN在十个自然语言理解(NLU)任务上取得了state-of-the-art的成果,包括SNLI、SciTail和GLUE任务中的八个。MT-DNN将GLUE baseline推至82.7 % (提升了2.2 % )。我们还使用SNLI和Sc-iTail数据集证明,与预先训练的BERT表示相比,MT-DNN学习到的表示在特定领域内标签数据较少的情况下展现更好的领域适应性。

介绍

学习文本(eg.词和句子)的向量空间表示,是许多自然语言理解(NLU)任务的基础。两种流行的方法是多任务学习语言模型的预训练。本文试图通过提出一种新的多任务深度神经网络(MT-DNN)来综合两种方法的优点。

多任务学习( MTL )的灵感来自于人的学习活动。在人类的学习活动中,人们经常应用从以前的任务中学到的知识来帮助学习新的任务。例如,在学习滑冰这件事情上,一个知道如何滑雪的人比什么都不知道的人容易。同样,**联合学习多个(相关)**任务也很有用,这样在一个任务中学习到的知识有益于其他任务。近年来,越来越多的研究人员使用深层神经网络( DNNs )来对MTL任务进行表征学习。 有两个原因。首先,DNNs的监督学习需要大量特定任务的标记数据,这些数据并不总是可用的。MTL提供了一种有效的方法来利用来自许多相关任务的监督数据。第二,多任务学习通过正则化效应,能够减轻对特定任务的过度拟合,使得所学习的表示在任务间更加通用。

与多任务学习不同,语言模型预训练已经被证明对学习通用语言表示很有用,因为这样可以轻易利用大量的无监督文本,比如elmo,gpt和bert。BERT基于多层双向transformer,并在纯文本上进行训练,训练目标是屏蔽单词预测和下句预测任务。为了将预训练好的模型应用于特定的自然语言任务,经常需要使用特定任务的训练数据,通过附加的特定任务层来微调每个任务的模型。BERT可以通过这种方式进行微调,为一系列NLU任务创建最好的模型,例如问答和自然语言推理。

本文认为MTL和预训练语言模型是互补的技术,可以结合起来提高文本表征的学习效果,进而提高各种自然语言处理任务性能的表现。为此,本文扩展了MT-DNN,将BERT作为共享的文本编码层。如图1所示,底层(即文本编码层)在所有任务中共享,而顶层是特定于任务的,结合了不同类型的自然语言理解任务,例如单句分类、成对文本分类、文本相似性和相关性排序。与BERT模型相似,MT-DNN的训练分为两个阶段:预训练和微调。与BERT不同,MT-DNN在微调阶段,在模型架构中用多个特定于任务的层进行MTL。

在GLUE(General Language Understanding Evaluation,通用语言理解评估)基准的9个自然语言理解(NLU)任务中,我们用MT-DNN有刷新了其中8个任务的新记录。将GLUE基准分数提高到82.7 %,比BERT提高了2.2 %。多补充几句,GLUE是九种(英语)语言理解任务的集合,包括文本蕴涵、情感分析和语法判断等。其设计目的是覆盖足够大的NLP领域,以使得只有开发出足够通用的工具,才能在这一基准上表现良好;这样也有助于解决未来可能新遇到的语言理解问题。但是随着模型的不断升级,现在已经对 GLUE 指标进行更新,升级为SuperGLUE。保留了两项 GLUE 任务,另外又加入了其它五项新任务。回到正题,此外本文还将MT-DNN扩展应用到SNLI(Bowman et al.,2015a) 和SciTail((Khot et al., 2018)任务。与预训练的BERT表示相比,MT-DNN学习到的表示对领域内的标注数据量要求更少,因为它有更好的领域适应性。MT-DNN模型在SNLI上的准确率为91.6%,在SciTail上的准确率为95 %,分别比之前最先进的性能高出1.5 %和6.7 %。即使只有0.1%或1.0%的原始训练数据, MT-DNN在SNLI和SciTail数据集上的性能也相当好,远远优于许多现有模型。这些都足以说明MT-DNN结合多任务学习和预训练后其泛化能力得到了大大的提升。

任务

MT-DNN联合处理四种类型NLU任务:单句分类,成对文本(pairwise text)分类,文本相似度打分,相关性排序。举例如下:
单句分类:CoLA任务是预测英语句子是否合乎语法,SST-2任务预测电影评论是正向还是负向。
文本相似度:这是一个回归任务。对于给定的句子对,模型计算二者之间的相似度。在GLUE中只有STS-B这个任务是处理文本相似度。
成对文本分类(文本蕴含):对于给定的句子对,推理两个句子之间的关系。RET和MNLI是语言推理任务,推理句子之间是否存在蕴含关系、矛盾的关系或者中立关系。QQP和MRPC是预测句子是否语义等价。
相关性排序:给定一个问题和一系列候选答案,模型根据问题对所有候选答案进行排序。QNLI是斯坦福问答数据集的一个版本,任务是预测候选答案中是否包含对问题的正确答案。尽管这是一个二分类任务,但我们依旧把它当作排序任务,因为模型重排了候选答案,将正确答案排在更前。

模型介绍

MT-DNN的体系结构如上图1所示。底层在所有任务中共享,顶层代表特定任务的输出。输入X是一个单词序列(一个句子或一对组合在一起的句子对),首先在l1中表示为一系列embedding向量,每个单词对应一个向量。然后输入到特征提取器transformer,transformer通过self-attention在l2中生成一系列上下文表示(语境嵌入序列)。

MT-DNN模型阅读笔记_第1张图片

图 1:表征学习 MT-DNN 模型的架构。下面的网络层在所有任务中都共享,上面的两层是针对特定任务。输入 X(一句话或句子对)首先表征为一个序列的嵌入向量,在l1 中每个词对应一个向量。然后 Transformer 编码器捕捉每个单词的语境信息并在 l2 中生成共享的语境嵌入向量。最后,针对每个任务,特定任务层生成特定任务的表征,而后是分类、相似性打分、关联排序等必需的操作。

下面对各个层进行详细阐述。
Lexicon Encoder(l1):
其输入X={x1,x2,...,xm} 是长度为m的tokens。第一个字符永远是[CLS]字符,如果有两个句子,那就中间加一个[SEP]字符
lexicon encoder是一个词向量层,将输入X 映射为一系列的嵌入向量。这里还有position encoding和segment encodig这些操作。

Transformer Encoder (l2):
利用transformer把输入的向量表示X 映射为变成上下文表示C 。其在不同任务间共享参数。bert要通过预训练学习表示方法,然后通过微调将其用于其他任务,而MT-DNN使用多任务目标学习其表示。

Single-Sentence Classification Output:
假设[CLS]字符在l2层中的上下文嵌入结果是x,其可以视为输入句子X的语义表征。以SST-2任务为例,句子X 被分为c 类的概率如下(通过一个softmax做出决策):


其中W_{}S_{}S_{}T是特定任务的参数矩阵。

Text Similarity Output:
同上,只是最后将通过softmax层改为sigmoid门,来表示0到1的评分。

MT-DNN模型阅读笔记_第2张图片


训练过程中我们在上面的平均操作前应用随机预测drop(stochastic prediction dropout)。在解码阶段,平均所有输出,来提高鲁棒性。

Relevance Ranking Output:
也是用[CLS]字符的embedding作为问句和候选答案对(Q,A)的语义表征。通过一个softmax计算相关性得分,然后对各个候选答案的得分重排,大的更有关。

3.1 训练过程
MT-DNN 的训练程序包含两个阶段:预训练和多任务微调。预训练阶段遵循 BERT 模型的方式。lexicon encoder和Transformer encoder参数的学习是通过两个无监督预测任务:掩码语言建模(masked language modeling)和下一句预测(next sentence pre-
diction)。
在多任务微调阶段,我们使用基于minibatch的随机梯度下降(SGD)来学习模型参数(也就是,所有共享层和任务特定层的参数),算法流程如下图所示。每个epoch,选择一个mini-batch bt  (在9个GLUE任务中),再对特定任务k 进行模型参数的更新。这近似地优化所有多任务的和。

对个每个任务的数据集,进行mini-batch,得到Dt 。bt 是任务t的一个mini-batch,再用该数据计算分类、回归和重排任务的损失值,之后再统一计算梯度下降,更新模型参数。

对于分类任务(单句子分类或者文本蕴含分类)
定义交叉熵损失函数:

其中l(x,c)是二分类结果(0或者1)。其他相关工作参考上述的方程1和方程4。

对于文本相似度(回归)任务:
例如STS-B任务,每个句子对相似程度被标注为一个真实值y ,使用均方误差作为目标函数:

其中Sim SimSim函数在方程2中定义过了。

对于相关性排序:
以QNLI任务为例,给定问句Q,候选答案A (其中包含一个正确答案A+ ,其他剩余答案为错误答案,即负样本)。目标函数是在给定问句的前提下,最小化正样本的对数似然的负数:

MT-DNN模型阅读笔记_第3张图片

其中Rel 的定义参见方程5。γ 是留存数据的调节因子,在本文的实验中该参数设置为1。

 

你可能感兴趣的:(NLP自然语言处理)