【论文阅读笔记】Universal Language Model Fine-tuning for Text Classification

发表日期:2018.5.23

论文作者:fast.ai

 

文章开源代码:http://nlp.fast.ai/category/classification.html

主要内容:

     在计算机视觉领域,迁移学习的使用和对目标任务效果的提升已经有目共睹,但在NLP领域,由于模型相对计算机视觉领域较浅,而且由于语言任务的复杂性,通常需要不同的模型微调方法,导致迁移学习在NLP领域使用较困难。本文提出一种通用的NLP迁移学习方法,使用通用语言模型微调(ULMFiT)并介绍了用于微调模型的关键技巧。通过对多种NLP任务的测试,验证的模型的有效性。

     【论文阅读笔记】Universal Language Model Fine-tuning for Text Classification_第1张图片

整个模型如上图分为三阶段:

第一阶段:General-domain LM pretrainning

       使用大型有标记语料库对模型进行预训练,类似CV领域使用ImageNet对模型进行预训练。论文使用的模型是AWD-LSTM,采用的语料库是Wikitext-103。

 

第二阶段:Target task LM fine-tuning

      在待解决的目标问题上进行模型训练微调。此阶段使用了两个小技巧:

      (1)  Discriminative fine-tuning(区分微调)

      不同的网络层捕获的是不同的信息,所以微调时应该区分对待,每一层设置一个学习率的方法(第一层的特征具有通用性,所以设置相对较小的学习率,高层的特征与具体任务相关,因此设置相对较大的学习率)。通常使用的梯度下降更新不同层使用同样的学习率,文中采用不同的学习率:

    

        首先选择最后一层的学习率进行微调,然后在确定倒数第二层的学习率,以此类推,文中没有给出理由的使用了

    (2)Slanted triangular learning rate(三角变化的学习率)

        学习率先逐渐增加后逐渐下降(由于具体任务的变化,先用较小的学习率,得到一个好的优化方向,再使用较大的学习率,进行优化,在训练后期再使用较小的学习率进行更细致的优化

    【论文阅读笔记】Universal Language Model Fine-tuning for Text Classification_第2张图片

【论文阅读笔记】Universal Language Model Fine-tuning for Text Classification_第3张图片

       其中T是总的迭代次数,cut_frac是斜率变化点所在迭代次数占总次数的百分比。ratio指示最小学习率和最大学习率之间的差距。

 

第三阶段:Target task classifier fine-tuning(上层分类器训练)

      除了使用了batch normalization,Drop,Relu,Softmax等常规技术外,文章还是用的其他技巧:

     (1)Concat pooling(级联池化)

    

     由于输入的文档通常包含成百上千的词,如果只考虑模型最后的隐层,信息可能会丢失,因此根据GPU内存情况,尽可能多的把把RNN模型里每一个时刻的输出pooling一下,然后concat到最后一层特征上。

【论文阅读笔记】Universal Language Model Fine-tuning for Text Classification_第4张图片

    (2)Gradual unfreezing(逐步解冻)

    首先解冻最后一层进行微调,然后解冻倒数第二层,将已解冻的两层微调,以此类推,每个Epoch向下解冻一层,直至所有层都微调完毕。

    (3) BPTT for Text Classification (BPT3C)

     将文本分为固定大小的batch,使用边长反向传播序列。

    (4)Bidirectional language model(双向语言模型)

    分别独立的训练正向和逆向语言模型,然后取平均。

  

   实验验证:

     作者在六个比较常用的数据集上评估了该方法,这些数据文档的数量以及文档的长度都不尽相同,在三个常见的分类任务(情感分析、问题分类、主题分类)上进行实验。通过和其他的一些文本分类方法进行比较,作者提出的ULMFiT方法错误率最低,效果最好。在三类分类任务上,ULMFit的监督学习、半监督学习需要的数据比从头训练模型的数据要少得多,但是错误率却更低,模型的效果更好。

    

    讨论LM fine-tuning的影响:

    论文中作者除了使用微调的方法,还增加了很多技巧以优化模型,所以需要对微调的方法是否有效进行讨论。通过实验可以看出,从零开始训练模型和使用ULMFiT的方法,在三个测试集上错误率下降幅度较大,后面增加各种trick,使得模型的错误率进一步下降,但是下降的幅度却并不是很大,所以可以看出,确实是ULMFiT的方法是有效。

【论文阅读笔记】Universal Language Model Fine-tuning for Text Classification_第5张图片

   值得借鉴的地方:

1、NLP的迁移学习。

2、模型中的一些小技巧。

你可能感兴趣的:(机器学习)