赞
踩
Github:https://github.com/allenai/dont-stop-pretraining
名词释义
DAPT:domain-adaptive pretraining,领域适应预训练,用领域内的语料进行预训练,可能和任务并不相关
TAPT:task-adaptive pretraining,任务适应预训练,用特定任务的无标签数据预训练,和任务相关
小结上面两点,你可以一直预训练:pretraining -> DAPT -> TAPT
问题提出:
本文选择的预训练模型:RoBERTa
领域内的数据集可以从一些作品或者论坛中获取,也可以用具体任务的语料。由此引出一个问题:是否预训练的语料要更接近任务,才能更好的提升性能?
就此来看,作者会认为 TAPT 更能提升效果。
如果有一些 task 相关的无标签数据会更好。
作者还提出了自动选择 task 相关无标签数据的方法,并证明在低资源上提升了效果。
在本文提到的所有任务中,加了 DAPT 和 TAPT 的效果都超过了原生 RoBERTa。
本文主要贡献:
主要思想:在特定领域的无标签数据上继续训练 RoBERTa。
本文试图定量的分析上述四个领域和 RoBERTa 训练语料的相似性。
考虑这五个语料的前1万个高频词(包括停顿词),计算相似度:
发现 News 和 Reviews 的语料和 RoBERTa 更相似。作者认为其实更不相似的语料,在重复预训练的时候,对效果提升更大。
个人理解:和 RoBERTa 更不相似,说明原来的 RoBERTa 学偏了,重新对特定领域语料进行预训练,对任务帮助更大。
baseline:用现成的 RoBERTa,参数默认,后接一层线性层用于分类任务
在这8个任务的F1值
其中:
发现:
作者还讨论了预训练语料相似度的问题。作者认为:如果当前领域的语料和原预训练模型的语料更不相似,在重复预训练的时候,对效果提升更大。理由给的不是很充分,会在后续工作中继续研究。作者建议
添加不同的预训练,对8个任务进行实验,结果如下。
结果表明:
作者还做了任务迁移(Transfer-TAPT)的实验,即用同领域其他任务的数据来做 TAPT,然后在该领域训练微调。例如下图左上部分,我们要完成RCT任务,但是用的是CHEMPROT来做 TAPT,最后在 RCT 数据上微调.
结果表明:
在 TAPT 中,文章使用的预训练数据仅仅知识任务数据集本身,从 TAPT 的好结果中得到启发,如果能有与目标任务数据分布相同的更大的无标签数据集,会不会右更好的结果呢?怎么获得这样的无标签数据集,作者提供了两种方法。
结果表明:
这一发现,能极大的减少标注数据工作量。所以作者呼吁,数据集的无标签原始数据也放出来让大伙看看,说不定有用呢
考虑到没有大量的无标签数据,同时也没有太多的计算资源,作者提出了一个简单的无监督方法,基于任务分布可以收集无标签文本。
文章采用的算法是使用领域数据堆 VAMPIRE(一种轻量的词袋模型)进行训练,然后降领域数据和任务数据一起嵌入到 VAMPIRE 的向量空间中,在向量空间中,数据集挑选采用两种方案(1)KNN原理挑选.(2)随机挑选。基于挑选出来的数据训练。
实验结果如下:
由实验结果可以看到,KNN-TAPT的效果普遍由于TAPT,且随着k值的增加,KNN-TAPT的结果稳定变好。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。