赞
踩
Multitask指多任务学习,大致意思是一个NLP的模型可以完成多种任务。
上述特点或者局限决定了需要一种更为通用的预训练或者分享知识的手段,于是就提出了Muliti-task learning。
在计算机视觉中:
在NLP中:
所以在NLP中有发展multi-task的必要。
课程解释了一下为什么NLP中sharing不是很广泛,总结如下:
NLP比较复杂,不太容用一个简单的无监督模型来解决相关问题,因此multi-task也应该是有监督的。
课程认为一个multi-task model应该具备以下条件:
剩下的如图所示:
进行Multi-task任务的第一个问题就是如何用一个通用的task来表达很多tasks,课程首先总结了,常见的nlp任务分类:
课程认为这些task都可以等效成下面这些task中的一个,称为equivalent supertasks ,如图所示:
课程把整合后task的形象称为:Natural Language Decathlon(decaNLP),整合的例子如图所示:
上面整合的十项任务是:
课程做了一些说明:
对于decalNLP的设计,应该符合以下要求:
课程介绍了他们的工作,就这篇论文,论文的主要思路如下:
其模型结构如图所示:
首先是一个Fixed Glove+Character 的n-gram embeddings(固定是为了防止某些task数据量太小,对词向量产生负面影响。)
之后进入一个Linear,再之后输入到一个Shared BiLSTM with skip connection层中,如图:
其中这个Shared BiLSTM前面采用了co-attention机制,如图中的红色块(以前的课程讲过)。再之后,将question和context分开,分别输入到transfomer中进行编码,再输入到另外一个 BiLSTM中得到最终编码final encode。如图所示:
接着使用transformer中的具有自回归倾向的解码器进行解码,解码头(head)采用的是lstm decode去计算attention distributions over the context and question(which are used as pointers),如图所示:
通过计算question attention和context attention去确定两个开关,gamma和lambda来决定生成的vocabulary从哪个词分布中选择生,如图:
作者选取了多个任务多个数据集和多个评价指标,最终的评价指标得分是所有得分的和,如图:
接着和普通的single-task做对比,绘制成了如图所示的表,表的左侧是single-task有40个模型,表的右侧是multitask只用了4个模型。
课程仔细分析了以下这个表,总结出了一些特点:
课程继续将了训练策略,采用fully joint的方法进行训练效果比较好,即将每个task的数据集处理成一个batch,然后依次送入模型训练,如图:
后来发现,输入训练数据集的顺序也会对模型的效果产生影响,比如如果前面训练的数据太简单的话,有可能会使模型陷入局部优化,难以爬出来。对于多任务模型,不同任务的数据集的影响就会更大。所以采用了Anti-Curriculum Pre-training的训练策略。
Curriculum是从简单到复杂,Anti-Curriculum就是从复杂到简单,这种训练策略就是对任务从复杂到简单排一个序,对任务里面的数据也从复杂到简单排一个序,依次制作成batch输入到模型中进行训练,如图:
batch1 :A,batch2 :B,batch3 :A,batch4 :B,batch5 :C…
这种训练方式带来了一定模型的效果的提升,如图:
课程又介绍了一些其他的实验,也对模型起到了一定的效果,如图:
课程对输出的结果进行分析,比如将输出的词的分布来源统(vocab,context,quesiont)计下来,如图所示:
可以看到该模型针对不同任务的输出的词的分布基本上都是正确的,说明该模型能够区分不同的任务。
decaNLP 确实对模型的预训练起到了很好的效果,比如,这里新加入了一个任务IWSLT language pairs,采用decaNLP的预训练和随机初始化效果很不同,如图所示:
这个模型有助改善零次学习,如图所示:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。