论文阅读 decaNLP -- The Natural Language Decathlon: Multitask Leaning as Question Answering

article/2025/8/21 22:36:21

作为一个刚刚入门NLP的学生,希望在阅读每一篇论文后都进行一定的记录,提炼文中观点,写出自己的理解,如有任何解读错误之处敬请指出,O(∩_∩)O谢谢!

先放出paper的网址 https://arxiv.org/pdf/1806.08730.pdf

key words

  • Multitask Learning
  • Zero-shot Learning
  • Transfer Learning
  • Meta-Learning

前言

当今QA问题在NLP领域可以说是炽手可热,SQUAD数据集的出现,大量RNN,Attention的模型出现将SQUAD1.0的简单问题准确度提高至超越人类。我的同学也有在做SQUAD的,基本上是在别人模型的输入和encoder端上面做些小trick,提升那么1、2个百分点的EM/F1,在我看来这些工作真的是毫无意义。

本篇文章的作者的一句话直中要害:

The quirk of the dataset does not hold for question answering in general, so recent models for SQUAD are not necessarily general QA models.
数据集的“怪癖”并不对普遍的QA问题适用,所以当前的QA Model都不是通用模型。

然而跳出SQUAD的局限,我们确实可以借助QA模型来解决很多其他的NLP子问题,比如我们Apex实验室小组将QA用于关系提取,搭建了QA4IE框架。本篇文章更是将QA模型的能力发挥到了极致,一个通用框架解决10个NLP子问题,真的非常酷。

TaskQAMachine TranslationSummarizationNatrual Language InferenceSemantic AnalysisSemantic Role LabelingZero-shot REGoal-Oriented DialogueSemantic ParsingPronoun Resolution
DatasetSQUADIWSLTCNN/DMMNLISSTQA-SRLQA-ZREWOZWikiSQLMWSL

为什么可以通用?

通用模型的关键是——这十个子问题都可以被规约为同一个问题,即输入一段context,一个query,输出一个Answer,且三者均为字符串序列。

如机器翻译:

contextquestionAnswer
English textWhat is the translation from English to German?German text

看到这有人会问,德语在原文、问题中也不存在啊,你怎么得到答案?这个在后面会说,模型引入了一个External Vocabulary解决这种文中no answer的问题。

模型

MQAN

Encoder

C ∈ R l × d e m b , Q ∈ R m × d e m b , A ∈ R n × d e m b C\in R^{l \times d_{emb}},Q\in R^{m \times d_{emb}},A\in R^{n \times d_{emb}} CRl×demb,QRm×demb,ARn×demb

  • 过线性层映射到d维空间
    C W 1 = C p r o j ∈ R l × d CW_1 = C_{proj}\in R^{l\times d} CW1=CprojRl×d Q W 1 = Q p r o j ∈ R m × d QW_1 = Q_{proj}\in R^{m\times d} QW1=QprojRm×d
  • 过BiLSTM编码 -> C i n d , Q i n d C_{ind},Q_{ind} Cind,Qind
  • 添加一维dummy embedding
  • 对齐
    s o f t m a x ( C i n d Q i n d T ) = S c q ∈ R ( l + 1 ) × ( m + 1 ) softmax(C_{ind}Q_{ind}^T) = S_{cq}\in R^{{(l+1)}\times {(m+1)}} softmax(CindQindT)=ScqR(l+1)×(m+1) s o f t m a x ( Q i n d C i n d T ) = S q c ∈ R ( m + 1 ) × ( l + 1 ) softmax(Q_{ind}C_{ind}^T) = S_{qc}\in R^{{(m+1)}\times {(l+1)}} softmax(QindCindT)=SqcR(m+1)×(l+1)
  • Dual Coattention
    S q c T S c q T C i n d = S q c T C s u m = C c o a ∈ R ( l + 1 ) × d S_{qc}^TS_{cq}^TC_{ind} = S_{qc}^TC_{sum} = C_{coa}\in R^{{(l+1)}\times d} SqcTScqTCind=SqcTCsum=CcoaR(l+1)×d S c q T S q c T Q i n d = S c q T Q s u m = Q c o a ∈ R ( m + 1 ) × d S_{cq}^TS_{qc}^TQ_{ind} = S_{cq}^TQ_{sum}=Q_{coa}\in R^{{(m+1)}\times d} ScqTSqcTQind=ScqTQsum=QcoaR(m+1)×d

    丢弃无用的dummy embedding, C C C Q Q Q重新变为 l × d l\times d l×d m × d m\times d m×d维。

  • 压缩
    B i L S T M ( [ C p r o j , C i n d , C s u m , C c o a ] ) = C c o m ∈ R l × d BiLSTM([C_{proj},C_{ind},C_{sum},C_{coa}]) = C_{com}\in R^{l \times d} BiLSTM([Cproj,Cind,Csum,Ccoa])=CcomRl×d B i L S T M ( [ Q p r o j , Q i n d , Q s u m , Q c o a ] ) = Q c o m ∈ R m × d BiLSTM([Q_{proj},Q_{ind},Q_{sum},Q_{coa}]) = Q_{com}\in R^{m \times d} BiLSTM([Qproj,Qind,Qsum,Qcoa])=QcomRm×d
  • Self Attention
    M u l t i H e a d C ( C c o m , C c o m , C c o m ) = C m h a MultiHead_C(C_{com},C_{com},C_{com}) = C_{mha} MultiHeadC(Ccom,Ccom,Ccom)=Cmha M u l t i H e a d Q ( Q c o m , Q c o m , Q c o m ) = Q m h a MultiHead_Q(Q_{com},Q_{com},Q_{com}) = Q_{mha} MultiHeadQ(Qcom,Qcom,Qcom)=Qmha

    再过一层带Relu的残差前馈神经网络 (不太清楚这里为什么要将C_com与C_mha相加?)

F F N C ( C c o m + C m h a ) = C s e l f FFN_C(C_{com} + C_{mha}) = C_{self} FFNC(Ccom+Cmha)=Cself F F N Q ( Q c o m + Q m h a ) = Q s e l f FFN_Q(Q_{com} + Q_{mha}) = Q_{self} FFNQ(Qcom+Qmha)=Qself

  • Final Encoding (BiLSTM)

Decoder

  • Answer Representation
    由于答案序列并不会经过CNN、RNN,所以人工加入Positional Encodings附带序列信息。
    P E [ t , k ] = s i n ( t / 1000 0 k / 2 d ) o r s i n ( t / 1000 0 ( k − 1 ) / 2 d ) PE[t, k] = sin(t/10000^{k/2d})\ or\ sin(t/10000^{(k-1)/2d}) PE[t,k]=sin(t/10000k/2d) or sin(t/10000(k1)/2d) A p r o j + P E = A p p r ∈ R n × d A_{proj} + PE = A_{ppr} \in R^{n\times d} Aproj+PE=ApprRn×d

  • Attention(略)

  • Multi-Pointer-Generator
    这一部分我觉得是整体上最innovative的部分,首先获得答案词语 w i w_i wi出现在context和question的概率分布。(对 文中单词=目标单词 位置的Attention weight求和)
    ∑ i : c i = w i ( α t C ) i = p c ( w t ) ∈ R l \sum \limits_{i:c_i=w_i}(\alpha_t^C)_i = p_c(w_t)\in R^l i:ci=wi(αtC)i=pc(wt)Rl ∑ i : q i = w i ( α t Q ) i = p q ( w t ) ∈ R m \sum \limits_{i:q_i=w_i}(\alpha_t^Q)_i = p_q(w_t)\in R^m i:qi=wi(αtQ)i=pq(wt)Rm
    再获得Out-of-context但in-vocabulary的单词概率分布, c ^ t \hat{c}_t c^t是当前时刻的Recurrent context state。
    s o f t m a x ( W v c ^ t ) = p v ( w t ) ∈ R v softmax(W_v\hat{c}_t)= p_v(w_t)\in R^v softmax(Wvc^t)=pv(wt)Rv
    那么我们如何在这三个分布中最后选取一个单词作答案呢?这势必要对这三个分布做整合,本文的方法是将三个分布的missing entries置为0,训练两个权重标量 λ , γ \lambda,\gamma λ,γ 来线性组合成一个 l + m + v l+m+v l+m+v维分布。
    γ p v ( w t ) + ( 1 − γ ) [ λ p c ( w t ) + ( 1 − λ ) p q ( w t ) ] = p ( w t ) \gamma p_v(w_t) + (1-\gamma)[\lambda p_c(w_t) + (1-\lambda)p_q(w_t)] = p(w_t) γpv(wt)+(1γ)[λpc(wt)+(1λ)pq(wt)]=p(wt)
    这两个权重参数的训练也很讲究,一个针对context,一个针对question,(奇怪的是为什么vocabulary分布取决于context?):
    σ ( W p v [ c ^ t ; h t ; ( A s e l f ) t − 1 ] = γ ∈ [ 0 , 1 ] \sigma(W_{pv}[\hat{c}_t;h_t;(A_{self})_{t-1}]=\gamma\in[0,1] σ(Wpv[c^t;ht;(Aself)t1]=γ[0,1] σ ( W c q [ q ^ t ; h t ; ( A s e l f ) t − 1 ] = λ ∈ [ 0 , 1 ] \sigma(W_{cq}[\hat{q}_t;h_t;(A_{self})_{t-1}]=\lambda\in[0,1] σ(Wcq[q^t;ht;(Aself)t1]=λ[0,1]

  • Loss function
    最小化 negative log likelihood
    L o s s = − ∑ t T log ⁡ p ( a t ) Loss = -\sum \limits_t^T \log p(a_t) Loss=tTlogp(at)

训练

由于是multitask的模型,常常会出现catastrophic forgetting的问题,训练的方法直接决定了模型最终在各个task上的表现。在本文中,作者尝试了三种不同的训练方式:

Fully JointCurriculumAnti-Curriculum
纯 Round RobinFrom easy task to difficult taskPhase1:Difficult Tasks
Phase2: All the Tasks

Fully Joint容易理解,就是将所有task按顺序排好,然后按照这个轮回依次抽batch进行训练。事实与直觉相符,这种方法大大增加了模型收敛的难度,模型训练“三心二意”,效果必然不好。

Curriculum Learning的思想源自Bengio大神的文章,其思想是人类学习的知识是通过前人用心编排的,就如同小学生学加减法,初中生算数列几何,大学生学微积分一样,由易到难。如果我们让机器一股脑的学习所有的case,势必会增加其学习难度,而适当的人工编排训练顺序会让模型表现更优。 于是作者利用task的收敛轮数作为区分难易的指标,先训练容易的task,再训练难的。然而,实验后发现结果竟然比fully joint还差!

于是作者自己提出Anti-Curriculum训练方式,打破了前述理论,不再遵循从易到难的顺序,而是将训练分成两个phase:第一个phase先训练一些task给模型一些先验知识;第二个phase再一起训练所有task,相当于一个热启动。这种方式效果很好。
performance

可以看到,Phase1仅有QA的时候decaScore最高达到571.7
然而我们也注意到,phase1加上Machine Translation,Summarization后反而下降了。对此作者总结道:

It is the concordance between the QA nature of the task and SQUAD that enabled improved outcomes and not necessarily the richness of the task!

Including easy tasks early in training makes it more difficult to learn Internal Representation that are useful to other tasks.


http://chatgpt.dhexx.cn/article/fTjOp3dS.shtml

相关文章

Recommending What Video to Watch Next: A Multitask Ranking System

文章目录 总结细节实验 总结 魔改mmoewide&deep 细节 mmoewide&deep 分成2个阶段:获得candidates、ranking,ranking时用point-wise ranking时,用w&d获取浅层feature,用于移除position bias ranking model&#x…

《BDD100K: A Diverse Driving Dataset for Heterogeneous Multitask Learning》论文阅读笔记

论文链接 A Diverse Driving Dataset for Heterogeneous Multitask Learning Abstract 介绍了BDD100K数据集,包含100K段视频以及10种类型的任务,针对这种多元化任务需要特殊的训练策略。 1 Introduction ImageNet、COCO等数据集在之前很长一段时间里…

multitask-graph-attention(一)

多任务图注意力框架预测药物毒性,原文:Mining Toxicity Information from Large Amounts of Toxicity Data,代码:MGA,文章从 MGA/interpretation/Ames_interpret.ipynb 开始 文章目录 1.build_dataset1.1.load_graph_…

12.UniT:Multimodal Multitask Learning with a Unified Transformer

1.动机 UniT,它通过统一transformer联合学习跨不同领域的多个任务。我们的UniT模型可以同时处理8个数据集上的7个任务,从对象检测到视觉和语言推理以及自然语言理解,同时通过紧凑的模型参数集实现每个任务的强大性能。 我们提出了一个统一的t…

Flow Prediction in Spatio-Temporal Networks Based on Multitask Deep Learning(TKDE2020)

Flow Prediction in Spatio-Temporal Networks Based on Multitask Deep Learning(TKDE2020) 摘要:预测交通流(如车辆、人群和自行车的交通),包括在一个节点的进出交通和不同节点之间的过渡,在交通运输系统的时空网络…

GPT2.0语言模型 Language Models are Unsupervised Multitask Learners

论文链接:https://d4mucfpksywv.cloudfront.net/better-language-models/language-models.pdf Tensorflow代码链接:https://github.com/openai/gpt-2 Pytorch代码链接:https://github.com/huggingface/pytorch-pretrained-BERT 参考文档&…

论文阅读《Language Models are Unsupervised Multitask Learners》

论文地址:《Language Models are Unsupervised Multitask Learners》 代码地址:https://github.com/openai/gpt-2 文章目录 论文介绍模型框架实验分析结论 论文介绍 本文将常识推理和情感分析两项任务联系起来,采取更一般的方法。证明了语言…

MulT: An End-to-End Multitask Learning Transformer 多任务共享注意力

文章 同时学习多个高级视觉任务,包括深度估计、语义分割、reshading表面法线估计、2D 关键点检测和边缘检测。 与单个任务Transformer相比,跨任务联合培训的Transformer模型能否提高每个任务的性能?在基于Transformer的框架中,可…

Paper | Multitask learning

目录 1. MTL的定义2. MTL的机制 2.1. Representation Bias2.2. Uncorrelated Tasks May Help?3. MTL的用途 3.1. Using the Future to Predict the Present3.2. Time Series Prediction3.3. Using Extra Tasks to Focus Attention3.4. Quantization Smoothing3.5. S…

GPT2(Language Models are Unsupervised Multitask Learners)论文阅读

1. 论文阅读 论文地址:Language Models are Unsupervised Multitask Learners 1.1 背景介绍 2019年OpenAI发布的模型,OpenAI在2018年的GPT1中给出了一种半监督的训练方法,在GPT2中针对如下问题做了升级: 以前机器学习训练代价大…

#Paper Reading# Language Models are Unsupervised Multitask Learners

论文题目: Language Models are Unsupervised Multitask Learners 论文地址: https://life-extension.github.io/2020/05/27/GPT技术初探/language-models.pdf 论文发表于: OpenAI 2019 论文所属单位: OpenAI 论文大体内容: 本文主要提出了GPT-2(Gener…

【论文阅读】Multitask Prompted Training Enables Zero-shot Task Generalization

前言 本文源自 ICLR 2022 原文地址:Multitask Prompted Training Enables Zero-shot Task Generalization Discussion 中提到的 FLAN 参考博文 【论文阅读】Finetuned Language Models Are Zero-Shot Learners_长命百岁️的博客-CSDN博客 Abstract 大模型在多种…

MultiTask Learning Survey

目录 一、常见Multi-Task 架构 二、MTL的一些优化方法 三、ExperimentConclusion 原文链接:MultiTask Survey 一、常见Multi-Task 架构 Hard和Soft区分:Hard共享底层参数,在高层提取中相互独立;Soft使用十字绣的形式&#xf…

Multitask Learning

参考 Multitask Learning - 云社区 - 腾讯云 1、单任务学习VS多任务学习 单任务学习:一次只学习一个任务(task),大部分的机器学习任务都属于单任务学习。多任务学习:把多个相关(related)的任务…

Multi-Task 多任务学习, 那些你不知道的事

作者 | 三和厂妹 来源 | 文末『阅读原文』处 概念 当在一个任务中要优化多于一个的目标函数[1] ,就可以叫多任务学习 一些例外 「一个目标函数的多任务」:很多任务中把loss加到一起回传,实质优化的是一个目标函数, 但优化的是多个任务&…

多任务学习综述:推荐系统多任务学习(multitask)的实战总结和常见问题(一)

多任务学习算法系列的主要内容是回顾和总结自己2019-2021间在深度学习多任务学习算法(multitask)的工业实践和遇到的常见问题,欢迎更多同学讨论和指正,同时也宣传一波我们组在推荐方向的工作成果——大规模推荐算法库PaddleRec(https://githu…

VS2012下载和安装

1.下载链接 https://pan.baidu.com/s/1YR7Xk9Zlv7zQWCsERdVgIQ 提取码:stvi 2.鼠标右击【Visual Studio2012】压缩包选择【解压到Visual Studio2012】。 3.打开解压后的文件夹,鼠标右击【vs_ultimate】选择【以管理员身份运行】。 4.点击【…】可更改安…

Visual Studio 2013 详细安装教程(安装+注册)

转载自:安装注册:https://jingyan.baidu.com/article/09ea3ede3b2496c0afde3944.html IE10报错解决办法:https://jingyan.baidu.com/article/ff42efa92f79cac19e2202cd.html 1.还是老样子,首先要下载安装文件,这里提供…

使用cubemx工具的STM32对外部flash(W25Q64)的简单编程

SPI SPI简介 SPI通信原理 SPI是串行外设接口(Serial Peripheral Interface)的缩写,是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线,节约了芯片的管脚,同时为…

stm32 W25QXX系列驱动 W25Q80 W25Q16 W25Q32 W25Q64 W25Q128 W25Q256

头文件 #ifndef W25QXX__H #define W25QXX__H #include "sys.h"#define W25Q80 0XEF13 #define W25Q16 0XEF14 #define W25Q32 0XEF15 #define W25Q64 0XEF16 #define W25Q128 0XEF17 #define W25Q256 0XEF18#define W25QXX_CS PAout(4)//指令表 #define W25X…