论文精度

论文精度

对论文《Universal Language Model Fine-tuning for Text Classification》的阅读笔记。

文章摘要

在本文发表之前,迁移学习在计算机视觉方面取得了很多成功,而在自然语言处理还没有太多进展,仅仅停留在使用 word2vec 或多任务学习的阶段。本文提出了一个基于微调的通用语言模型,从而实现了 NLP 任务的类 CV 迁移学习。

论文地址:Universal Language Model Fine-tuning for Text Classification - ACL Anthology

如何做基于参数的迁移学习

本文主要考虑的是基于参数的迁移学习。对于一个深度学习模型(CV 模型或 NLP 模型),其满足“越底层的特征越通用,越顶层的特征越特殊”的特点,因此我们可以将其分为两部分,底部是一个通用的模型,由一个大型数据集预训练得到,其能够使小数据集避免从头开始训练(随机初始化参数通常比预训练参数微淘要差),顶部则根据下游任务从头开始训练。

NLP 模型相对于 CV 模型较浅,因此文中也针对这一问题提出了适合 NLP 的微调技巧。

什么是 Universal Language Model

ULMFiT 方法分为以下几个阶段

LM pre-training:此阶段借鉴 CV 中的 ImageNet,在通用领域语料库(文中用的是Wikitext-103,其包含 28,595 篇维基百科文章和 1030 亿个单词)上训练语言模型(文中用的是 merity 等人提出的 AWD-LSTM),从而捕获不同层次文本的一般特征。

LM fine-tuning:此阶段的目标是针对 target domain 上微调 Language Model。在这个阶段,作者用了 Discriminative fine-tuning 和 Slanted triangular learning rates 两个 tricks,以学习不同层次文本在 target domain 上的特征。

Classifier fine-tuning:此阶段主要是训练模型的顶层结构。在这个阶段,作者用了 Concat pooling,Gradual unfreezing,BPTT for Text Classification (BPT3C) 和 Bidirectional language model 四个 tricks。

LM fine-tuning 的两个技巧

在 LM fine-tuning 阶段,作者提出了 Discriminative fine-tuning(Discr) 和 Slanted triangular learning rates(STLR) 两个技巧:

Discr:由于底层特征更具有通用性,而顶层特征更具有特殊性,所以作者在训练过程中,对于不同层设置了不同的学习率(底层设置相对较小的学习率,顶层设置相对较大的学习率)。这里作者在具体实验中的操作是:先通过只调整最后一层的参数确定一个合适的学习率,然后往前的每一层都使用后一层学习率的 1/2.6 倍。

STLR:学习率先增后减。先用较小的学习率,得到一个好的优化方向,再用较大的学习率进行优化,在训练后期再使用较小的学习率进行更细致的优化。这种学习率的变化曲线很像一个三角形,这也是为什么用“triangular”来形容学习率的原因。

Classifier fine-tuning 的四个技巧

在 Classifier fine-tuning 阶段,作者提出了 Concat pooling,Gradual unfreezing,BPTT for Text Classification (BPT3C) 和 Bidirectional language model 四个技巧:

Concat pooling:如果仅使用 RNN 模型最后一个 time step 的输出,显然会丢失信息,尤其是在长文本建模中,因此作者对 RNN 所有 time state 的 hidden states 进行 max pooling 和 mean pooling,然后将 pooling 得到的两个特征与最后一个 time step 的输出连接,作为最终输出。

Gradual unfreezing:直接 fine-tuning 整个网络可能导致网络遗忘之前预训练得到的通用特征,因此作者提出了gradual unfreezing,具体做法是自顶向下以 epoch 为单位逐步进行 fine-tuning,即第一个 epoch 只解冻最后一层,第二个 epoch 解冻最后两层,以此类推。

BPTT for Text Classification (BPT3C):为了使大型文档的分类器微调可行,作者将文档划分为大小为 b 的固定长度批次。 在每个批次的开头,用前一批次的最终状态初始化模型,跟踪平均值和最大池的隐藏状态,梯度反向传播到批次。

Bidirectional language model:本文分别训练了前向和后向的 Language Model,在 fine-tuning 阶段对预测的结果取平均。

总结

此文提出的 ULMFiT 模型与近两年的 Elmo,Bert 等,引领了 NLP 领域的预训练潮流,值得后来者反复研读,尤其是文章中提到的一些 tricks,也富有实用性。

相关推荐

明末:渊虚之羽 (韩语, 简体中文, 繁体中文, 英语)
绝地求生该开哪个箱子好? 箱子物品图文介绍
基本字义解释
365betappios

基本字义解释

📅 08-04 👁️ 4981
火焰龟好不好养,怎么养
be365

火焰龟好不好养,怎么养

📅 09-07 👁️ 5207
3亿投资的《如懿传》,道具只要3块钱!资金都去哪儿了?
beat365英超欧冠平台

3亿投资的《如懿传》,道具只要3块钱!资金都去哪儿了?

📅 10-18 👁️ 7208
阴阳师樱花币副本掉落途径解析
beat365英超欧冠平台

阴阳师樱花币副本掉落途径解析

📅 10-13 👁️ 5493