迁移学习(Transfer Learning)无疑是目前深度学习中的新热点(相对而言)。在计算机视觉领域,它已经应用了一段时间,人们使用经过训练的模型从庞大的ImageNet数据集中学习特征,然后针对较小的数据针对不同的任务对其进行进一步的训练。但是,在NLP中,迁移学习主要限于使用预训练的单词嵌入(这大大改善了基线)。最近,研究人员正在努力将整个模型从一项任务转移到另一项任务,这就是本文的主题。
Sebastian Ruder和Jeremy Howard也许是第一个通过其提出的ULMFiT方法,在NLP中的应用了迁移学习方法,该方法超越了所有最新的文本分类技术。
紧接着,OpenAI 在几个NLP任务上扩大了他们的想法,并超越了SOTA。
在2018年NAACL上,获得最佳论文奖的是介绍ELMo的论文,该论文是一种新的词嵌入技术,与ULMFiT背后的思想非常相似,该技术来自位于UWash的AllenAI和 Luke Zettlemoyer小组的研究人员。
在本文中,我将讨论所有这些新工作以及它们之间的相互关系。让我们从Ruder和Howard的引领潮流的架构开始。
《Universal Language Model Fine-Tuning for Text Classification》
用于文本分类(或任何其他受监督的NLP任务)的大多数数据集都非常小。这使得训练深度神经网络非常困难,因为深度神经网络倾向于过度拟合这些小的训练数据,并且在实践中不能很好地概括。
在计算机视觉领域,在庞大的ImageNet语料库上对任何模型进行预训练,是近些年的趋势。这比随机初始化好得多,因为该模型可以学习一般的图像特征,然后可以将其用于任何视觉任务(例如字幕或检测)。
Howard和Ruder从这个想法中得到启发,提出了一个bi-LSTM模型,该模型在一般的语言建模(LM)任务上进行训练,然后在文本分类上进行微调。原则上讲,这会很好地执行,因为该模型将能够使用从生成式预训练中获得的语 言语义知识。理想地,可以从任何源任务(source task)S到目标任务(target task)T进行此迁移。作者使用LM作为源任务,因为:
正式地,“ LM引入了一个假设空间H,该假设空间H对于许多其他NLP任务应该是有用的。”
对于体系结构,他们使用当时的SOTA: AWD-LSTM(应该是一个多层的双向LSTM网络,没有注意力模块,详参Salesforce Research的论文中的详细信息)。该模型在WikiText-103语料库上进行了训练。
训练完通用LM后,可以进行一些微调,将其按原样用于多个分类任务。为了进行这种微调和后续分类,作者提出了3种实现技巧。
区分性微调 Discriminative fine tuning:在LM的微调阶段(针对目标任务),不同的学习速率用于不同的层。这样做是因为这些层捕获了不同类型的信息。
斜三角学习率 Slanted triangular learning rates (STLR):学习率首先线性增加,然后在切割后逐渐降低,即“短暂增加 short increase”和“长时间衰减 long decay”。这类似于积极的余弦退火学习策略,现在很流行。