0
点赞
收藏
分享

微信扫一扫

【论文泛读】Don‘t Stop Pretraining: Adapt Language Models to Domains and Tasks


  1. 一个很大的语言模型在很大的无标签数据集上预训练(如:word2vec)
  2. 将单词向量表示输入到下游任务进行有监督训练

word2vec:
左边:CBOW模型,右边:Skip-gram模型
两者区别:

  • CBOW是根据上下文去预测目标词来训练得到词向量,如图是根据W(t-2),W(t-1),W(t+1),W(t+2)这四个词来预测W(t);
  • Skip-gram是根据目标词去预测周围词来训练得到词向量,如图是根据W(t)去预测W(t-2),W(t-1),W(t+1),W(t+2)。
  • CBOW用于小型语料库比较适合,而Skip-gram在大型的语料上表现得比较好。

解决问题
目标领域应该应用什么领域的预训练?有没有必要多次预训练?

  • 持续预训练的优势是否和下游任务的标注数量有关?
  • 持续预训练的优势是否和目标领域与原始预训练语料库的接近程度有关?

解决对策
设计了4个领域上的8个分类任务(每个领域上各有2个分类任务),将已经在大量且广泛文本上预训练过的模型(ROBERT)进行第二阶段的预训练。
作者分别用领域数据、任务数据、增强的任务数据进行了实验,即用这些数据对模型进行第二阶段的预训练,然后再用经过两个预训练阶段后得到的模型生成的数据做分类任务。
创新点:
当我们所执行任务的标注数据较少,所属的领域与初始预训练语料越不相关,而又能获取到充分的、任务相关的无标注数据时,就需要进行领域预训练和任务预训练。

  • 在目标领域的数据集上继续预训练(领域自适应预训练,DAPT)可以提升效果;目标领域与语言模型的原始预训练语料越不相关,DAPT效果则提升更明显。
  • 在具体任务的数据集上继续预训练(任务自适应预训练,TAPT)可以十分“廉价”地提升效果。
  • 结合二者(先进行DAPT,再进行TAPT)可以进一步提升效果。
  • 如果能获取更多的、任务相关的无标注数据继续预训练(Curated-TAPT),效果则最佳。
  • 如果无法获取更多的、任务相关的无标注数据,采取一种十分轻量化的简单数据选择策略,效果也会提升。

未来的研究方向:
如何采取一个更有效的数据选择方法,来构建更多的、任务相关的无标注数据,有效地将大型预训练语言模型重构到更远的domain,并且获得一个可重用的语言模型。

领域自适应预训练(DAPT):
在预训练完成的语言模型 RoBERTa 的基础上,分别使用4个领域的数据接着做第二阶段的预训练,生成4个领域自适应的语言模型。
任务自适应预训练(TAPT):
将各个任务本身的训练数据当作无标签数据来进行第二阶段的预训练,得到8个任务自适应的预训练语言模型
任务自适应预训练的增强方法(Curated-TAPT):
考虑如果拥有庞大的数据集会怎么样?
两种构造更多的、任务相关的无标注数据的增强方式:1)人工构造;2)自动数据选择

参考推文

参考文章
拒绝无脑吹!从ACL20看预训练缺陷


举报

相关推荐

0 条评论