返回介绍

数学基础

统计学习

深度学习

工具

Scala

十五、MT-DNN [2019]

发布于 2023-07-17 23:38:25 字数 78971 浏览 0 评论 0 收藏 0

  1. 学习文本(如单词和句子)的 vector-space representation 是许多自然语言理解 natural language understanding: NLU 任务的基础。两个流行的方法是多任务学习 multi-task learning: MTL 和语言模型预训练 language model pre-training 。在论文 《Multi-Task Deep Neural Networks for Natural Language Understanding》中,作者通过提出一个新的 Multi-Task Deep Neural Network: MT-DNN 来结合这两种方法的优势。

    • 多任务学习的灵感来自于人类的学习活动,人们经常应用从以前的任务中学到的知识来帮助学习新的任务。例如,一个知道如何滑雪的人比不知道的人更容易学习滑冰。同样地,多个(相关的)任务联合起来学习是很有用的,这样在一个任务中学到的知识可以使其他任务受益。

      最近,人们对将多任务学习应用于深度神经网络的 representation learning 越来越感兴趣,有两个原因:

      • 首先,DNN 的监督学习需要大量的 task-specific 的标记数据,而这些数据并不总是可用的。多任务学习提供了一种有效的方式来利用来自许多相关任务的监督数据。
      • 其次,多任务学习通过缓解对特定任务的过拟合从而从正则化效应中获益,从而使学到的 representation 在不同的任务中通用。
    • 与多任务学习不同的是,通过利用大量未标记的数据,语言模型预训练显示出针对学习通用 language representation 的有效性。一些最突出的例子是 ELMoGPT、以及 BERT。这些都是使用无监督目标在文本数据上训练的神经网络语言模型。例如,BERT 基于多层双向 Transformer ,在纯文本上进行训练从而用于 masked word prediction 任务和 next sentence prediction 任务。为了将预训练的模型应用于特定的自然语言理解任务,我们通常需要针对每项任务,利用 task-specific 的训练数据来微调具有 task-specific layer 的模型。例如,BERT 原始论文表明:BERT 可以通过这种方式进行微调从而为一系列自然语言理解任务(如,问答、自然语言推理)创建 SOTA 的模型。

    作者认为,多任务学习和语言模型预训练是互补的技术,可以结合起来改善 text representation 的学习,以提升各种自然语言理解任务的性能。为此,作者扩展了最初在 《Representation learning using multi-task deep neural networks for semantic classification and information retrieval》 中提出的 MT-DNN 模型,将 BERT 作为其 shared text encoding layer 。如下图所示:

    • 较低的层(即文本编码层)在所有任务中都是共享的。
    • 而顶层是 task-specific ,结合了不同类型的自然语言理解任务,如单句分类、成对文本pairwise text 分类、文本相似性、以及相关性排名。

    这里的多任务指的是 微调期间的多任务,而不是预训练期间的多任务。BERT 在预训练期间就是多任务的。

    BERT 模型类似,MT-DNN 可以通过微调来适配特定的任务。与 BERT 不同,MT-DNN 除了语言模型预训练外,还使用多任务学习来学习 text representation

    MT-DNN 在通用语言理解评估 General Language Understanding Evaluation: GLUE 基准中使用的 9 个自然语言理解任务中的 8 个获得了 SOTA 的结果,将 GLUE benchmark 得分推到 82.7% ,相比于 BERT2.2% 的绝对改进。

    论文进一步将 MT-DNN 的优势扩展到 SNLISciTail 任务。由 MT-DNN 学到的 representation 允许以比预训练的 BERT representation 少得多的域内标签in-domain label 进行域适应 domain adaption 。例如:

    因为训练数据的 domain 和目标任务的 domain 不同,因此需要执行 domain adaption

    • MT-DNNSNLI上 实现了 91.6% 的准确率、在 SciTail 上实现了95.0% 的准确率,分别比 SOTA 高出 1.5%6.7%
    • 即使只有 0.1%1.0% 的原始训练数据,MT-DNNSNLISciTail 数据集上的表现也优于许多现有模型。

    所有这些都清楚地表明,MT-DNN 通过多任务学习具有卓越的泛化能力。

15.1 模型

15.1 任务

  1. MT-DNN 模型结合了四种类型的自然语言理解任务:单句分类single-sentence classification 、成对文本分类 pairwise text classification 、文本相似度评分 text similarity scoring 、以及相关性排名 relevance ranking

    • 单句分类:给定一个句子,模型使用预定义的类标签之一对其进行标注。例如:

      • CoLA 的任务是预测一个英语句子在语法上是否合理。
      • SST-2 的任务是判断从电影评论中提取的句子的情感是正面 positive 的还是负面 negative 的。
    • 文本相似度评分:这是一项回归任务。给定一对句子,模型预测一个实值分数来表示这两个句子的语义相似度 semantic similaritySTS-BGLUE 中该任务的唯一例子。

    • 成对文本分类:给定一对句子,模型根据一组预先定义的标签来确定这两个句子之间的关系。例如:

      • RTEMNLI 都是语言推理任务,其目标是预测一个句子相对于另一个句子是蕴含关系 entailment 、矛盾关系 contradiction 还是中性关系 neutral
      • QQPMRPC 是由句子对组成的同义转述 paraphrase 数据集,其任务是预测这对句子是否在语义上等价。
    • 相关性排名:给出一个 query 和一个候选答案列表,该模型按照与 query 的相关性顺序对所有候选答案进行排名。QNLIStanford Question Answering Dataset 数据集的一个版本。该任务涉及评估一个句子是否包含给定 query 的正确答案。虽然 QNLIGLUE 中被定义为二分类任务,但在本研究中,我们将其表述为 pairwise ranking task ,其中预期模型将包含正确答案的候选 candidate 排在比不包含正确答案的候选更高的位置。我们将表明,这种形式化导致了比二分类更高的准确性。

15.2 MT-DNN Model

  1. MT-DNN 模型的架构如下图所示。低层是所有任务共享的,而顶层代表 task-specific 的输出。

    • 输入X$ X $ 是一个单词序列(要么是一个句子,要么是打包在一起的 sentence pair ),首先在l1$ l_1 $ 中被表示为 embedding vector 的一个序列,每个单词都有一个 embedding
    • 然后, transformer encoder 通过自注意力捕获每个单词的上下文信息,并在l2$ l_2 $ 中生成 contextual embedding 的一个序列。这就是我们的多任务目标所训练的 shared semantic representation

    在下面的内容中,我们将详细阐述该模型。

  2. Lexicon Encoderl1$ l_1 $ ): 输入X={x1,,xm}$ X=\{x_1,\cdots,x_m\} $ 是一个长度为m$ m $ 的 token 序列。遵从 BERT 的做法,第一个 tokenx1$ x_1 $ 总是 [CLS] token 。如果X$ X $ 是根据一对句子(X1,X2)$ (X_1, X_2) $ 打包而来,我们用一个特殊的token ,即 [SEP] ,来分隔这两个句子。

    lexicon encoderX$ X $ 映射成 input embedding vectors 的一个序列,每个 token 对应一个 embedding 向量(由相应的 word embeddingsegment embeddingpositional embedding 相加而成)。

  3. Transformer Encoderl2$ l_2 $ ): 我们使用多层双向 Transformer encoderinput representation vectorl1$ l_1 $ 映射为contextual embedding vector的一个序列CRd×m$ \mathbf C\in \mathbb R^{d\times m} $ ,这是跨不同任务之间的 shared representation

    与通过预训练学习representationBERT 模型不同,MT-DNN 除了预训练之外还使用多任务目标学习 representation

    下面,我们将以 GLUE 中的自然语言理解任务为例来描述具体的 task specific layer ,尽管在实践中我们可以加入任意的自然语言任务(如文本生成,其中 output layer 被实现为神经解码器)。

  4. 单句分类输出 Single-Sentence Classification Output:假设x$ \mathbf{\vec x} $ 是 token [CLS]contextual embeddingl2$ l_2 $ ),它可以被视为输入句子X$ X $ 的 semantic representation 。 以 SST-2 任务为例,X$ X $ 被标记为c$ c $ 类(即情感分类)的概率是根据具有 softmax 的逻辑回归来预测的:

    (26)Pr(cX)=softmax(WSSTx)

    其中:WSST$ \mathbf W_\text{SST} $ 为 task-specific 参数矩阵。

  5. 文本相似性输出 Text Similarity Output :以 STS-B 任务为例。假设x$ \mathbf{\vec x} $ 是 [CLS]contextual embeddingl2$ l_2 $ ),可以看作是输入句子对(X1,X2)$ (X_1,X_2) $ 的 semantic representation 。我们引入一个 task-specific 的参数向量wSTS$ \mathbf{\vec w}_\text{STS} $ 来计算相似性分数,即:

    (27)Sim(X1,X2)=wSTSx

    其中Sim(X1,X2)$ \text{Sim}(X_1,X_2) $ 是一个实数,取值范围:(,)$ (-\infty,\infty) $ 。

  6. 成对文本分类输出Pairwise Text Classification Output:以自然语言推理 natural language inference: NLI 为例。这里定义的 NLI 任务涉及一个由m$ m $ 个词组成的前提 premiseP=(p1,,pm)$ P=(p_1,\cdots,p_m) $ 和一个由n$ n $ 个词组成的假设 hypothesisH=(h1,,hn)$ H=(h_1,\cdots,h_n) $ 。NLI 任务旨在找到P$ P $ 和H$ H $ 之间的逻辑关系R$ R $ 。输出模块的设计遵循 stochastic answer network: SAN (一个 SOTAneural NLI 模型)的答案模块answer moduleSAN 的答案模块使用多步骤推理 multi-step reasoning 。它不是直接预测给定输入的蕴含 entailment ,而是保持一个 state 并迭代地 refine 它的预测。

    直接用句子对(X1,X2)$ (X_1,X_2) $ 的 semantic representation 馈入 softmax layer 进行分类,简单又直接,不是挺好的吗?

    SAN 的答案模块工作如下:

    • 首先,我们通过拼接 premiseP$ P $ 中单词的 contextual embedding (这是 transformer encoder 的输出)来构建 premiseworking memory ,记做MpRd×m$ \mathbf M^p\in \mathbb R^{d\times m} $ 。类似的方法,我们也构建 hypothesisH$ H $ 的 working memory ,记做MhRd×n$ \mathbf M^h\in \mathbb R^{d\times n} $ 。

    • 然后,我们对 memory 进行 K-step reasoning 从而输出关系标签,其中K$ K $ 是一个超参数。

      • 开始时,初始状态s0$ \mathbf{\vec s}^{0} $ 是Mh$ \mathbf M^h $ 的 summary

        (28)s0=j=1nαj×mjhRdαj=exp(w1mjh)i=1nexp(w1mih)

        其中:mjh$ \mathbf{\vec m}^h_j $ 为Mh$ \mathbf M^h $ 的第j$ j $ 列,代表 hypothesis 中的单词hj$ h_j $ 的 contextual embeddingw1Rd$ \mathbf {\vec w}_1\in \mathbb R^d $ 为待学习的权重向量。

      • time stepk$ k $ ,其中1kK1$ 1\le k\le K-1 $ ,state 定义为:

        (29)sk=GRU(s(k1),xk)

        其中,xk$ \mathbf{\vec x}^k $ 是根据前一个状态s(k1)$ \mathbf{\vec s}^{(k-1)} $ 和 memoryMp$ \mathbf M^p $ 计算而来:

        (30)xk=j=1mβjmjpRdβj=exp((s(k1)W2)mjp)i=1mexp((s(k1)W2)mip)

        其中:mjp$ \mathbf{\vec m}^p_j $ 为Mp$ \mathbf M^p $ 的第j$ j $ 列,代表 premise 中的单词pj$ p_j $ 的 contextual embeddingW2Rd×d$ \mathbf W_2\in \mathbb R^{d\times d} $ 为待学习的权重矩阵。

    • 最终,一个单层分类器被用来在每个 stepk$ k $ 确定 relation

      (31)Prk=softmax(W3[sk;xk;|skxk|;skxk])RC

      其中:[;]$ [\cdot;\cdot] $ 为向量拼接,||$ |\cdot| $ 为向量的逐元素绝对值,$ \odot $ 为逐元素乘法,W3$ \mathbf W_3 $ 为待学习的权重矩阵,C$ C $ 为分类的类别数。

    • 最后,我们通过均值池化来利用所有的K$ K $ 个输出(从而提高鲁棒性)。

      (32)Pr=avg({Pr0,Pr1,,PrK1})RC

      其中Pr$ \vec P_r $ 为所有C$ C $ 种关系的概率分布。

    在训练期间,我们在上述均值池化之前应用 stochastic prediction dropout

  7. 相关性排名输出 Relevance Ranking Output:以 QNLI 为例。假设x$ \mathbf{\vec x} $ 是 [CLS]contextual embeddingl2$ l_2 $ ),它是一对 question 及其候选答案(Q,A)$ (Q,A) $ 的 semantic representation 。我们计算相关性分数为:

    (33)Rel(Q,A)=g(wQNLIx)

    其中:wQNLI$ \mathbf{\vec w}_\text{QNLI} $ 为待学习的权重向量,g()$ g(\cdot) $ 为变换函数(如 sigmoid)。

    对于一个给定的 question ,我们根据计算的相关性分数对其所有的候选答案进行排序。

15.3 训练过程

  1. MT-DNN 的训练程序包括两个阶段:预训练阶段、多任务学习阶段。

  2. 预训练阶段:遵循 BERT 模型的预训练。lexicon encoderTransformer encoder 的参数是通过两个无监督的预测任务来学习的:masked language modelingnext sentence prediction

    根据 RoBERTa 的实验结论,应该去掉 next sentence prediction 任务。

  3. 多任务学习阶段:在多任务学习阶段,我们使用 mini batch-based 的随机梯度下降 SGD 来学习模型的参数(即所有 shared layertask-specific layer 的参数)。在每个 epoch 中,选择一个 mini-batchbt$ b_t $ (即,在所有 9GLUE 任务中),并根据任务t$ t $ 的特定目标来更新模型。这大约是优化所有多任务目标的 sum

    即,一个 mini-batch 仅包含特定任务t$ t $ 的样本(而不是包含多个任务的样本)。具体做法为:首先随机选择任务t$ t $ (选择的概率不一定是均匀的,因为不同任务的样本数不同),然后随机选择该任务的一个 mini-batch

    另外,这里并没有先训练完一个任务、然后再训练其他任务,而是不同任务之间交错地训练。

    • 分类任务:即单句分类或成对文本分类,我们使用交叉熵损失作为目标。

      (34)cI(X,c)log(Pr(cX))

      其中:

      • I(X,c)$ \mathbb I(X,c) $ 为二元示性函数:如果X$ X $ 的 ground-truth 标签为c$ c $ 则返回 1,否则返回 0
      • Pr(cX)$ \text{Pr}(c\mid X) $ 为模型预测X$ X $ 属于类别c$ c $ 的概率。
    • 文本相似性任务:如 STS-B ,其中每个 sentence pair 都被标注以一个实值分数y$ y $ 。我们使用均方误差作为目标。

      (35)(ySim(X1,X2))2

      其中Sim(X1,X2)$ \text{Sim}(X_1,X_2) $ 为模型预测句子对(X1,X2)$ (X_1,X_2) $ 的相似度。

    • 相关性排名任务:其目标遵循 pairwise learning-to-rank 范式。以 QNLI 为例。给定一个 queryQ$ Q $ ,我们得到一个候选答案的列表A$ \mathcal A $ ,其中包含一个正样本A+$ A^+ $ (它包含正确答案)、以及|A|1$ |\mathcal A|-1 $ 个负样本(它们不包含正确答案)。然后在训练数据中,我们最小化给定 query 的正样本的负对数似然:

      (36)(Q,A+)log(Pr(A+Q))Pr(A+Q)=exp(γ×Rel(Q,A+))AAexp(γ×Rel(Q,A))

      其中:Rel(Q,A)$ \text{Rel}(Q,A) $ 为 queryQ$ Q $ 和 answerA$ A $ 之间的相关性;γ$ \gamma $ 为一个调节因子,它是一个超参数并在 held-out data 上调优。在我们的实验中,我们设置γ=1$ \gamma =1 $ 。

  4. MT-DNN 模型的训练算法:

    • 输入:

      • 模型参数Θ$ \Theta $ 。
      • 预训练的数据集和任务。
      • 最大的训练 epoch 数量epochmax$ \text{epoch}_\max $ 。
      • T$ T $ 个任务t=1,2,,T$ t=1,2,\cdots,T $ 。
      • 学习率ϵ$ \epsilon $ 。
    • 输出:训练好参数Θ$ \Theta $ 。

    • 算法步骤:

      • 随机初始化模型的参数Θ$ \Theta $ 。

      • 根据预训练的数据集和任务,预训练 shared layer (即,lexicon encodertransformer encoder )。

      • 构建 dataset-levelmini-batch

        (37)fort{1,2,,T}:pack datasettinto mini-batchDt
      • 迭代:epoch1epochmax$ \text{epoch}_\max $ ,迭代过程为:

        • 合并所有的数据集:D=D1D2DT$ D=D_1\cup D_2\cup \cdots \cup D_T $ 。

        • 随机混洗D$ D $ 。

        • 遍历 mini-batchbtD$ b_t\in D $ :(注意,此时bt$ b_t $ 是某个任务t$ t $ 的一个 mini-batch

          • 计算损失函数L(Θ)$ L(\Theta) $ :

            • 如果t$ t $ 是分类任务,则用L(Θ)=cI(X,c)log(Pr(cX))$ L(\Theta) = -\sum_{c} \mathbb I(X,c) \log(\text{Pr}(c\mid X)) $ 。
            • 如果t$ t $ 是回归任务,则用L(Θ)=(ySim(X1,X2))2$ L(\Theta) = (y-\text{Sim}(X_1,X_2))^2 $ 。
            • 如果t$ t $ 是排序任务,则用L(Θ)=(Q,A+)log(Pr(A+Q))$ L(\Theta) = -\sum_{(Q,\mathcal A^+)} \log \left(\text{Pr}( A^+\mid Q)\right) $ 。
          • 计算梯度ΘL(Θ)$ \nabla_\Theta L(\Theta) $ 。

          • 更新参数:Θ=Θϵ(Θ)$ \Theta=\Theta-\epsilon\nabla(\Theta) $ 。

15.4 实验

  1. 数据集:我们使用了 GLUESNLI 、以及 SciTail 数据集,如下表所述。

    • General Language Understanding Evaluation: GLUEGLUE benchmark 是一个由 9 个自然语言理解任务组成的集合,如下表所示,包括问答、情感分析、文本相似性、以及文本相关性。它被认为是为评估自然语言理解模型的泛化性和鲁棒性而精心设计的。

    • Stanford Natural Language Inference: SNLISNLI 数据集包含 57 万个人工标注的句子对,其中的前提 premises 来自Flickr30 语料库的标题,假设 hypotheses 则是人工标注的。这是最广泛使用的蕴含数据集 entailment dataset 从而用于自然语言推断 NLI 。在本研究中,该数据集仅用于 domain adaptation

    • SciTailSciTail 是一个源自科学问答science question answering: SciQ 数据集的文本蕴含数据集 textual entailment dataset 。该任务涉及评估一个给定的前提 premise 是否蕴含一个给定的假设 hypothesis

      与前面提到的其他蕴含数据集不同,SciTail 中的假设是从科学问题创建的,而相应的答案候选和前提来自于从大型语料库中检索的相关的 web sentence 。因此,这些句子在语言上具有挑战性,而且前提和假设的词汇相似度 lexical similarity 往往很高,从而使 SciTail 特别困难。在本研究中,该数据集仅用于 domain adaptation

  2. 实现细节:我们对 MT-DNN 的实现是基于 BERTPyTorch 实现。

    • 遵循 BERT ,我们使用 Adamax优化器,学习率为 5e-5batch size32 。除非另有说明,我们使用了一个线性学习率衰减的调度,并且在 10% 的训练步上执行预热。
    • 我们还将所有 task-specific 层的 dropout rate 设置为 0.1 ,除了 MNLI 设置为 0.3CoLa 设置为 0.05
    • 最大的训练 epoch 数量被设置为 5
    • 为了避免梯度爆炸的问题,我们将梯度规范剪裁在 1 以内。
    • 所有的文本都使用 wordpiece 进行 tokenize ,并拆分为不超过 512token

    这里是预训练细节还是多任务学习的细节?从作者这里的描述来看,作者应该是用到了预训练好的 BERT,然后再继续多任务学习,从而省略了预训练阶段。

    因此,将 MT-DNNBERT 直接进行比较是不公平的,因为 MT-DNN 使用了更多的数据、训练了更多的轮次。因此作者引入了 ST-DNN 从而与 MT-DNN 进行更公平的对比。

  3. GLUE 结果:我们将 MT-DNN 及其变体,与 GLUE 排行榜的 SOTA 模型的列表进行比较。结果如下表所示。

    • BERT_LARGE :这是 large BERT 模型,我们将其作为 baseline 。我们为每个 GLUE 任务在 task-specific 数据上微调了模型。

      为了公平地比较,BERT_LARGE 也应该在多任务数据集上进行预训练相同的 epoch 数。

      事实上,ST-DNN 才是和 MT-DNN 公平的比较,二者都采用预训练好的 BERT_LARGE,也都在多任务数据集上进行预训练。

    • MT-DNN :这是我们提出的模型。我们使用预训练好的 BERT_LARGE 来初始化它的 shared layer ,通过多任务学习在所有的GLUE 任务上 refine 模型,并使用 task-specific 数据为每个 GLUE 任务微调模型。

      Table 2 中的测试结果显示,MT-DNN 在所有任务上都优于现有的系统,除了WNLI ,在八个 GLUE 任务上创造了新的 SOTA 结果,并将 benchmark 推高到 82.7% ,这比 BERT_LARGE2.2% 的绝对改进。由于 MT-DNN 使用 BERT_LARGE 来初始化它的 shared layer ,因此收益主要归功于使用多任务学习来 refine shared layer

      收益不仅仅归功于多任务学习来 refine shared layer,还归功于多任务学习来 refine task-specific layer

      多任务学习对于域内 in-domain 训练数据少的任务特别有用。正如我们在表中所观察到的,在同一类型的任务上,对于域内训练数据较少的任务,相比那些有较多域内数据的任务,对 BERT 的改进要大得多,即使它们属于同一任务类型,例如,两个 NLI任务(RTE vs. MNLI),以及两个转述任务(MRPC vs. QQP)。

    • MT-DNN_no-fine-tune :由于 MT-DNN 的多任务学习使用了所有的 GLUE 任务,因此可以直接将 MT-DNN 应用于每个 GLUE 任务,而不需要进行微调。

      MT-DNN 经过三个阶段的训练:预训练、多任务训练、task-specific 任务的微调。其中,前两个阶段是所有任务都共享的,得到一个所有任务都通用的模型。最后一个阶段是每个任务独自微调的,得到 task-specific 的模型(有多少个任务就得到多少个模型)。

      MT-DNN_no-fine-tune 是两个阶段的训练:预训练、多任务训练。最后得到一个所有任务都通用的模型。

      ST-DNN 也是两个阶段的训练:预训练、task-specific 任务的微调。最后得到 task-specific 的模型(有多少个任务就得到多少个模型)。

      Table 2 中的结果显示,除了 CoLAMT-DNN_no-fine-tune 在所有任务中仍然一致地优于 BERT_LARGE 。我们的分析表明,CoLA 是一个挑战性的任务,它的域内数据比其他任务小得多,而且它的任务定义和数据集在所有 GLUE 任务中是独一无二的,这使得它很难从其他任务中获得知识。因此,多任务学习倾向于不适合 CoLA 数据集。在这种情况下,有必要进行微调以提高性能。

      如下表所示,经过微调后,准确率从 58.9% 提高到 62.5% ,尽管只有非常少量的域内数据可用于 adaptation 。这个事实,再加上微调后的 MT-DNNCoLA 上的表现显著优于微调后的 BERT_LARGE62.5% vs. 60.5%),显示出学到的 MT-DNN representation 比预训练的 BERT representation 得到更有效的 domain adaptation 。我们将在接下来通过更多的实验重新审视这个话题。

    • ST-DNNMT-DNN 的收益也归功于其灵活的建模框架,它允许我们纳入 task-specific 的模型结构和训练方法。这些模型结构和训练方法都是在单任务 setting 中开发的,有效地利用了现有的研究成果。两个这样的例子是:将 SAN answer module 用于 pairwise text classification output module 、以及将 pairwise ranking loss 用于QNLI 任务(该任务在 GLUE 中的设计是一个二分类问题)。为了研究这些建模设计选择的相对贡献,我们实现了 MT-DNN 的一个变体,即 Single-Task DNN: ST-DNN

      ST-DNN 使用与 MT-DNN 相同的模型结构。但它的 shared layer 是预训练好的 BERT 模型,没有通过多任务学习进行 refine 。然后,我们使用 task-specific 数据为每个 GLUE 任务微调 ST-DNN 。因此,对于 pairwise text classification 任务,其 ST-DNNBERT 模型之间的唯一区别是 task-specific output module 的设计。

      Table 3 中的结果显示:在所有四个任务(MNLIQQPRTEMRPC)中,ST-DNN 都优于BERT,证明了 SAN answer module 的有效性。

      这四个任务上,ST-DNN 相对于 BERT 的提升都很小。这是因为多任务数据集的数据规模相比 BERT 预训练数据集的数据规模小得多。

      我们还比较了 ST-DNNBERTQNLI 上的结果。ST-DNN 使用 pairwise ranking loss 进行微调,而 BERTQNLI 视为二分类,并使用交叉熵损失进行微调。ST-DNN 明显优于BERT,清楚地表明了问题形式 problem formulation 的重要性。

      ST-DNN 优于 BERT,除了task-specific 模块、问题形式的优势之外,还有更多的预训练数据(来自于多任务数据集)、更多的训练步数(来自于多任务 数据集上的预训练)。

  4. SNLISciTaildomain adaption 结果:构建实际系统 practical system 的最重要标准之一是快速适应新的任务和领域。这是因为为新的领域或任务收集带标签的训练数据是非常昂贵的。很多时候,我们只有非常小的训练数据,甚至没有训练数据。

    为了使用上述标准评估模型,我们在两个自然语言推断任务(即 SNLISciTail )上进行了 domain adaptation 实验,使用如下过程:

    • 使用 MT-DNN 模型或 BERT 作为初始模型,包括 BASELARGEmodel setting
    • 为每个新任务(SNLISciTail )创建一个 task-specific 的模型,通过使用 task-specific 的训练数据来适配训练好的 MT-DNN
    • 使用 task-specific 的测试数据评估模型。

    我们以这些任务的默认 train/dev/test set 开始。但我们随机抽取训练数据的 0.1%1%10%100% 。因此,我们为 SciTail 获取了四组训练数据,分别包含232352.3k23.5k 的训练样本。同样地,我们为 SNLI 获取了四组训练数据,分别包含5495.5k54.9k549.3k 的训练样本。

    我们进行了五次随机采样,并报告了所有运行中的平均值。 来自 SNLISciTail 的不同训练数据量的结果在下图中报告。可以看到:

    • MT-DNN 的性能一直优于 BERT baseline ,更多细节见 Table 4

    • 使用的训练样本越少,MT-DNNBERT 的改进就越大。例如在 SNLI数据集上:

      • 仅用 0.1%23 个样本)的训练数据,MT-DNN 就达到了 82.1% 的准确率,而 BERT 的准确率是 52.5%
      • 1% 的训练数据,MT-DNN 的准确率是85.2%BERT78.1%

      我们在 SciTail 上观察到类似的结果。

    结果表明,由 MT-DNN 学到的 representationdomain adaptation 方面比 BERT 更有效。

    在下表中,我们使用所有的 in-domain 训练样本,将我们的 adapted model 与几个强大的 baseline (包括排行榜中报告的最佳结果)进行比较。可以看到:MT-DNN_LARGE 在两个数据集上都产生了新的 SOTA 结果,在 SNLI 上将 baseline 推高到 91.6% (绝对改进 1.5% )、在 SciTail 上将 baseline 推高到 95.0% (绝对改进 6.7% )。这同时为 SNLISciTail 带来了新的 SOTA 。所有这些都证明了 MT-DNNdomain adaptation 上的卓越表现。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文