Press "Enter" to skip to content

《ULMFiT》 阅读笔记

本站内容均来自兴趣收集,如不慎侵害的您的相关权益,请留言告知,我们将尽快删除.谢谢.

来源:ACL 2018
原文:Universal Language Model Fine-tuning for Text Classification

Introduction

迁移学习在计算机视觉中已广泛使用,但NLP中的现有方法仍然需要从头开始训练。 本文提出了基于微调的通用语言模型(ULMFiT),可以应用于NLP中的多种任务。 实验表明,ULMFiT方法在六个文本分类任务中取得显著效果。

Universal Language Model Fine-tuning

ULMFiT方法包括三个阶段:
1、General-domain LM pretraining
受到CV中ImageNet的启发,本文首先在wiki上预训练语言模型,以此学习到大规模语料的语法特性。
2、Target task LM fine-tuning
在目标数据集上fine-tuning语言模型,以达到适应目标数据集的目的。在这里,作者使用了两个trick。
(1)Discriminative fine-tuning
为网络的每层设置不同的学习率,SGD更新如下图所示:

对于每一层的学习率 :

(2) Slanted triangular learning rates
本文提出倾斜的三角学习率(STLR),它首先线性地增加学习速率,然后根据时间表线性地衰减。

3、Target task classifier fine-tuning
针对目标分类任务的微调,在语言模型后添加线性层,用以进行文本分类任务。在fine-tuning阶段,线性层参数将从头开始训练。在这一阶段,作者使用了四种trick。
(1)Concat pooling
将最后时间步的隐藏状态hT,max-pooled(H)和mean-pooled(H)concat起来。
H = {h1,…,hT}
(2)Gradual unfreezing
过度的微调将导致遗忘,消除通过语言模型捕获的信息,而过与谨慎的微调将导致收敛缓慢。针对这一问题,本文采用逐步的微调方法, unfreezing最后一层并微调。 然后在每个epoch unfreezing下一个较低的层并重复,直到对所有层都unfreezing,并收敛。
(3)BPTT for Text Classification
(4)Bidirectional language model
分别训练了前向和后向的LM,在fine-tuning阶段对预测的结果取平均。

Experiments

作者在六个文本分类的数据集上进行了实验

另外,作者还做了不同的几组实验以证明在不同阶段提出的trick的有效性,以及单独pretrain的有效性。
pretrain

LM & LM fine-tuning

Classifier fine-tuning

Result

受到CV中ImageNet的启发,作者成功将Pretrain-LM这一思路引入进NLP任务中,并取得成功,为以后的pre-train提供了思路。未来可以尝试将pre-train用于不同的NLP任务中;尝试不同的LM模型;另外作者在实验中采用的多种trick也值得我们参考借鉴。

Be First to Comment

发表评论

电子邮件地址不会被公开。 必填项已用*标注