1. 摘要
本文提出了一个多任务深度神经网络(MT-DNN),用于跨多个自然语言理解(NLU)任务学习表示。MT-DNN不仅利用了大量的跨任务数据,而且还受益于正则化效应,从而产生更通用的表示,以帮助适应新的任务和领域。MT-DNN扩展了Liu等人提出的模型,加入了一个预训练的双向transformer语言模型,称为BERT。MT-DNN在10个NLU任务上获得了最先进的结果,包括SNLI、SciTail和9个GLUE任务中的8个,将GLUE基准提升到82.7%(2.2%的绝对改进)。还使用SNLI和SciTail数据集证明,MT-DNN学习的表示法比预先训练的BERT表示法使用更少的域内标签来实现域自适应。代码和预先训练的模型可以通过https:///namisan/mt-dnn公开获得。
2. 介绍
学习文本的向量空间表示,例如单词和句子,是许多自然语言理解(NLU)任务的基础。多任务学习和语言模型预训练是两种流行的方法。本文结合这两种方法的优点,提出了一种新的多任务深度神经网络(MT-DNN)。
本文认为MTL和语言模型预训练是互补的技术,可以结合起来改进文本表示的学习,以提高各种NLU任务的性能。因此,本文扩展了Liu等人最初提出的MT-DNN模型,将BERT作为其共享文本编码层。如图1所示,较低的层(如文本编码层)在所有任务中共享,而顶层是特定于任务的,结合了不同类型的NLU任务,如单句分类、成对文本分类、文本相似度和相关性排序。与BERT模型类似,MT-DNN可以通过微调适应特定的任务。与BERT不同的是,MT-DNN使用MTL,除了语言模型的预先训练外,还用于学习文本表示。
3. 提出的MT-DNN模型
MT-DNN模型的结构如图1所示。较低层在所有任务之间共享,而顶层表示特定于任务的输出。输入X是一个单词序列(一个句子或组合在一起的一对句子),它首先在l1中被表示为一个嵌入向量序列,每个单词作为一个token。然后,transformer编码器通过自我注意机制获取每个单词的上下文信息,并生成l2中的上下文嵌入序列。这是提出的多任务目标训练的共享语义表示。接下来,对模型进行详细的说明。
lexicon编码器(l1):输入x ={x1,…,xm}是长度为m的token序列。第一个token x1总是[CLS]token。如果X被一个句子对(X1,X2)打包,则用一个特殊的标记[SEP]分开这两个句子。lexicon编码器将X映射到一个输入嵌入向量序列,每个token作为该向量序列的一个元素,由对相应的单词、段和位置嵌入求和构建。
transformer编码器(l2):使用多层双向transformer编码器将输入表示向量(l1)映射为上下文嵌入向量序列C∈R^d x m^。这是不同任务之间的共享表示。与BERT模型通过预处理学习表示不同,MT-DNN除了预处理外,还使用多任务目标学习表示。
下面,将使用GLUE中的NLU任务作为示例来描述特定于任务的层,尽管在实践中可以合并任意的自然语言任务,比如文本生成,其中输出层被实现为神经解码器。
单句分类输出:假设x是标记[CLS]的上下文嵌入(l2),可以看作是输入句子x的语义表示。以SST-2任务为例。X被标记为c类的概率。用softmax logistic回归预测:
其中WSST为任务特定的参数矩阵。文本相似度输出:以STS-B任务为例。假设x是[CLS]的上下文嵌入(l2),可以看作是输入句子对(X1, X2)的语义表示。引入一个与任务相关的参数向量wSTS来计算相似度得分:
其中Sim(X1, X2)为范围(-∞,∞)的实值。
文本成对分类输出:以自然语言推理(NLI)为例。NLI任务定义这里涉及一个m个单词的前提P = (p1,…, pm)和一个n个单词的假设H = (h1,…, hn) ,旨在找到P和H之间的逻辑关系R.输出模块的设计遵循随机回答的回答模块网络(SAN)),最先进的神经NLI模型。SAN的答案模块使用了多步推理。它不直接预测给定输入的暗含,而是维护一个状态并迭代地改进其预测。
SAN应答模块的工作原理如下。首先,将transformer编码器输出的P中单词的上下文嵌入连接起来,构建前提P的工作记忆,记为Mp∈Rd×m,同样的,假设H的工作记忆,记为Mh∈Rd×n。
然后对内存进行K步推理以输出关系标签,其中K为超参数。初始状态s0是Mh的总结:
在时间步长k处{1,2,…,k-1},状态定义为sk = GRU(sk-1, xk)。这里,xk由以前的状态sk-1和内存Mp计算:
用一层分类器确定每一步k处的关系:
最后,利用所有K个输出,对得分进行平均:
每个Pr是对所有关系R∈R的概率分布。在训练中,在上面的平均操作之前使用了随机预测dropout。在译码过程中,平均所有输出以提高鲁棒性。