【论文笔记】ULMFiT——Universal Language Model Fine-tuning for Text Classification

0 一些术语

tranductive transfer 直推迁移学习
inductive transfer 归纳迁移学习
sample transfer learning 样本迁移学习

1 Introduction

对于归纳迁移学习:
(2013)年的fine-tuning pre-trained word embeddings 迁移技术只针对模型第一层,但是有很大的影响,大多先进模型都用了它。
(2017,2018)年的技术是把不同任务的embeddings和不同layer的input连接起来,这依旧需要从头开始训练整个模型,并且pre-trained embeddings被当做了固定参数,限制了使用。
(2015) 的fine-tuning a language model(LM),需要上百万个in-domain的文档才能得到好的效果,这限制了 用处。

之前迁移学习的问题
并不缺LM fine-tuning的想法,但是缺少有效的训练它们的知识
LM很容易对于小数据集过拟合,并且当fine-tuned一个分类器的时候会产生严重遗忘。

应运而生:
提出了ULMFiT,类似于ImageNet models的fine-tuning:拥有相同超参数的3层LSTM结构,只是修改了dropout。

贡献
1)提出了ULMFiT,类似CV迁移学习,该模型适用于任何NLP任务;
2)提出了 有区分微调斜三角学习率逐渐解冻的新颖技术 ,以保留先前的知识避免微调过程中的灾难性遗忘
3)在6个具有代表性的文本分类数据集sota,在大多数数据集上将错误减少了18-24%;
4)extremely sample-efficient transfer learning,且进行了广泛的ablation analysis;
5)开源了预训练模型和源代码,以便被更广泛采用。

2 相关工作

transfer learning in CV:CV深度神经网络的特征跟层数有关系,第一层是一般特征,随着层数增加,其特征跟特定任务越来越相关,直到最后一层(2015)。 (2014)通过使用ImageNet的特征作为简单分类器的输入达到了sota. 最近,这种方法逐渐被fine-tuning替代:预训练模型微调最后一层or最后几层,其它层就frozen

Hypercolumns:在NLP中,超越迁移词嵌入(transfering word embeddings)的方法逐渐被提出。在CV中,超列几乎已经被端到端微调所取代(Long等人,2015a)。
在这里插入图片描述

Multi-task learning:MTL(2017,2018) 在模型中增加了一个语言模型目标,这些模型和主任务模型一起训练。特点:trained from scratch, inefficient, 需要小心权衡特定任务obejective functions.

Fine-tuning:应用:QA, 远程监督情感分析、MT、但是:不相关任务迁移是失败的。相比之下,ULMFiT使用general-domain pretraining和新的fine-tuning技术来防止过拟合、在小数据集上SOTA。

3 Universal Language Model Fine-tuning

语言模型可以看作理想的source task,它能够为下游任务捕获语言相关的很多部分 :比如:例如长期依赖(2016)、层次关系(2018)、情感(2017);它为大多数领域和语言提供了近乎无限数量的数据,预训练语言模型可以很容易地适应目标任务的特性。

在这里插入图片描述
ULMFiT实践意义:

  1. 它在不同的文档大小、数量和标记类型的任务上工作;
  2. 它采用一个单一架构和训练流程;
  3. 它不需要自定义特征工程或预处理;
  4. 不需要额外的领域文档或标记。

使用:AWD-LSTM + 各种tuned dropout超参数。
ULMFiT由下面几部构成:

  1. 通用领域LM 预训练
  2. 目标任务LM微调:discriminative fine-tuning, triangular learning rates
  3. 目标任务分类器微调 : concat pooling, gradual unfreezing

通过组合上述方法,在数据集中能够有很好的表现。

3.1 通用领域LM预训练

使用的语料库为:Wikitext-103 (Merity et al., 2017b)

3.2 Target task LM fine-tuning

target task的数据很可能会有不同的分布,我们提出了 discriminative fine-tuning (区分微调) 和 slanted triangular learning rates(斜三角学习率)。

Discriminative fine-tuning

不同层能捕获不同的info,所以它们要被fine-tuned到不同程度。
df
首先仅对最后一层用学习率ηL进行微调,继而用学习率ηl-1l/2.6对较低层进行微调,工作性能良好。

Slanted triangular learning rates

我们希望模型在训练开始时快速收敛到参数空间的适当区域,然后对其参数进行优化。
在任务期间使用相同的学习率 or 衰减学习率(annealed learning rate)不是最好的方法,这里用了斜三角学习率,它首先线性增加学习率,然后根据下面的更新计划线性衰减 , 如图:
在这里插入图片描述
细节: T是训练迭代次数,cut_frac是我们增加LR的迭代比例,cut是我们从增加LR到减少LR的切换迭代,p是我们已增加LR或将要减少LR的迭代比例,ratio指出基于最大LR ηmax的最小LR有多小,ηt是第t次迭代的LR。我们通常设置cut_frac = 0.1, ratio = 32, ηmax = 0.01。
在这里插入图片描述
总之,STLR修改了三角学习率,它是提高性能的关键——它使用一个短增加和长衰减周期

3.3 Target task classifier fine-tuning

最后,为了微调分类器,用2个额外的的linear blocks来扩充预训练LM。根据CV分类器的标准实践,每个块使用批归一化法(batch normalization)和(dropout),中间层使用ReLU激活函数,最后一层使用softmax激活函数,在目标类上输出概率分布。这些参数是唯一需要从0开始学习的参数,第一个线性层将最后一个隐藏层池化状态作为输入
在这里插入图片描述
(以上图不确定对不对)

Concat pooling
在这里插入图片描述
target classifier微调是迁移学习中最关键的部分。过于激进的微调会导致灾难性的遗忘,从而消除通过语言建模获取的信息的好处,而过于保守的微调又会导致很慢的收敛,并导致过度拟合。除了区分微调和斜三角学习率外,我们还提出了逐渐解冻的分类器微调方法(gradual unfreezing)。

Gradual unfreezing :不要一次性对所有层微调,因为这会造成灾难性的遗忘。建议从最后一层开始逐渐解冻模型,因为最后一层包含的通用知识(2014)最少:首先解冻最后一层然后每次epoch内微调所有已解冻的层;然后解冻下一个较低的层,再微调;以上重复;直到微调所有的层,直到在最后一次迭代中收敛。
以上很像“chain-thaw”(2017),只是在"解冻"层集合中一次添加一个层,而不是一次只训练一个层。
在这里插入图片描述

BPTT for Text Classification (BPT3C) :为了实现对大型文档的分类器进行微调,提出了文本分类 BPTT(BPT3C)。

Bidirectional language model :在所有试验中,作者都预先设定了一个前向和反向的LM。使用BPT3C独立地为每个LM微调分类器,并对分类器预测进行平均。

4 Experiment

4.1 experiment setup

数据集和任务:6个数据集,有不同的文档数和文本长度。这些数据集被最先进的文本分类和迁移学习方法作为三个常见文本分类任务的实例:情感分析、问题分类和主题分类。

预处理:和 (Johnson and Zhang, 2017; McCann et al., 2017)的预处理方式一样,并且add special tokens for upper-case words, elongation, and repetition.

超参数
在这里插入图片描述

4.2 试验结果

在这里插入图片描述

5 分析

Impact of pretraining:预训练对于中小型数据集最有用,而中小型数据集在商业应用中最常见,即使对于大型数据集,预训练也会提高性能。

Impact of LM quality:衡量选择合适的LM的重要性。使用作者的微调技术,即使是常规的LM,在较大的数据集上也能达到令人惊讶的良好性能。
在这里插入图片描述

Impact of LM fine-tuning:比较了无微调方法、全模型微调方法、全模型微调且区分微调(Discr)方法,全模型微调且区分微调和斜三角学习率(Stlr)方法。

Impact of classifier fine-tuning:比较了从零开始训练方法、全模型微调(Full)方法、仅微调最后一层(Last)、“链解冻”、以及逐渐解冻方法。此外,我们还进一步评估了区分微调(Discr)和斜三角学习率(Stlr)的重要性。
AG是大数据集。trec-6小数据集在这里插入图片描述

双向性能影响:将前向和后向LM分类器的预测结合起来,可以提高大约0.5-0.7的性能。

6 未来方向

语言模型微调在以下设置中尤其有用:

  1. 非英语语言的NLP,受监督的预训练任务的训练数据不足;
  2. 不存在最先进架构的新NLP任务;
  3. 标记数据量有限的任务(以及一些未标记数据量)。

一个可能的方向是改进语言模型的预训练和微调,使其更具可扩展性;语言建模还可以以多任务学习的方式增加额外的任务,或增加额外的监督,例如语法敏感依赖,以创建一个更通用或更适合某些下游任务的模型,理想情况下以弱监督的方式保持其通用属性。

另一个方向是将该方法应用于新的任务和模型:其他具有更复杂交互作用的任务,例如蕴含或者问答,可能需要新颖的方法来进行预处理和微调

7 总结

我们提出了一种有效且样本有效的迁移学习方法ULMFiT,可以应用于任何NLP任务。我们还提出了几种新颖的微调技术,这些技术结合在一起可以防止灾难性的遗忘,并能够在不同的任务范围内进行强健地学习。

发布了63 篇原创文章 · 获赞 13 · 访问量 4万+

猜你喜欢

转载自blog.csdn.net/changreal/article/details/103178386