摘要
基于Pretrain-Finetune与语言模型的优点,作者提出 ULMFiT 迁移学习方法,降低深度学习模型对标注数据集的依赖, 以及提升模型表现。 ULMFiT 包含三个主要步骤, 第一,在大规模通用数据集上训练语言模型, 第二,将预训练模型在目标领域数据集上进行Fine-Tuning,使预训练模型继续学习目标数据集的特征,最后在目标数据集合上FineTune 目标分类器。
相关研究
Multi-Task Learning
多任务学习是指“使同一模型同时进行多个任务, 同时进行的任务可以在同一数据集,也可以在多个相关数据集上进行。”,GPT2证明,在进行分类任务时,同时进行语言模型任务,可以提升分类任务的效果。 需要注意的是,在多任务学习中,不同任务的损失权重比是一个超参数。
ULMFiT
LM具有严格的数学理论支撑、几乎无限量的数据集可使用、结构便于迁移等优良性质,但注意LM本质只是一种“目标函数”,多种模型结构都可以进行LM学习任务,在本文中采用的是3层LSTM结构。ULMFiT概要图如下所示:
通用领域LM预训练
该过程的目的是使“模型学习通用知识,降低模型对下游任务的数据依赖”。
目标任务LM FineTune
使模型学习目标任务上的数据分布特征,以提高目标任务上分类任务的效果。在FineTune中,引入了两个新技术“Discriminative fine-tuning”, “Slanted triangular learning rates”。
Discriminative fine-tuning
本质就是对模型结构的不同部分,采取不同的学习率,一般对较高的网络层采取较高的学习率,较低层采取较低的学习率。这样设计的目的与“使用Word2Vec 预训练向量”的思想比较相似,尽量保持低层次网络结构的知识不变。实现的手段就是对模型可学习参数进行分组。
Slanted triangular learning rates
在 Discriminative fine-tuning 中, 相邻两个网络层之间的学习率具有 L R l − 1 = L R l / x ; x > 1 LR_{l-1} = LR_l / x; x > 1 LRl−1=LRl/x;x>1,将网络顶层的学习率看作基准,底层网络学习率依次降低。 而在 STLR 中,顶层这个学习率的基准是不断变化的,变化趋势为“先线性增高,后线性降低”,呈一个斜三角形状。
目标分类器 FineTune
在预训练模型结构顶层,再新增两个基础子块与Softmax,基础子块包含“BN, Dropout, ReLU”。基础块的输入是预训练模型最后一层的输出,由于采用的是3层LSTM,因此基础块的输入为:
h
c
=
[
h
T
,
m
a
x
p
o
o
l
(
h
1
−
T
)
,
m
e
a
n
p
o
o
l
(
h
1
−
T
)
]
h_c = [h_T, maxpool(h_{1- T}), meanpool(h_{1-T})]
hc=[hT,maxpool(h1−T),meanpool(h1−T)]
FineTune目标分类器是整个过程中最重要的环节,太过激进的FineTune,会导致LM任务学习到的知识被遗忘,太谨慎的FineTune会导致模型收敛很慢,因此在“Discriminative fine-tuning” 与 “Slanted triangular learning rates”的基础上,作者又提出“Gradual unfreezing”。
Gradual unfreezing
本质就是“从上往下的解冻网络层,调整非冻结层的可学习参数”。与“Discriminative fine-tuning”的思想与目的较相似。
BPTT for Text Classification
对长文本的一种处理技巧,将长文本切分成若干段,以batch为单位, 处理相邻的后续batch时,模型初始化为前一batch的计算状态,在计算的过程中需要收集梯度信息,感觉实现难度挺大的。
实验结果
说明 FineTune LM 过程确实能降低模型对下游任务的数据依赖与提升模型表现。supervised 与 semi-supervised 分别表示FineTune LM时, 仅使用目标任务的标注样本、即使用标注样本也使用非标注样本。也就是说semi-supervised 在FineTune LM 时, 使用了更大规模的领域数据集。
Full表示对网络所有参数进行FineTune,而不采用“Gradual unfreezing”, 结果表明 Discriminative fine-tuning 与 Slanted triangular learning rates 在FineTune LM 时,有助于效果提升。
说明“Gradual unfreezing” 与 Discriminative fine-tuning ,Slanted triangular learning rates 在 FineTune 分类器上有相互补充的作用。
说明 Discriminative fine-tuning 与 Gradual unfreezing 这种学习率设计机制,能够有效防止预训练模型遗忘掉LM任务中学习到的知识。