ACL2018论文笔记1

本次所读的paper题为《Universal Language Model Fine-tuning for Text Classification》来自于2018年ACL。

本文的贡献在于:

  • 提出了Universal Language Model Fine-tuning,即ULMFiT模型。
  • 提出了两种(fine_tuning) 微调方法
    • 区分微调 (discriminative fine_tuning )
    • 三角变化学习率 (slanted triangular learning rate)
  • 该方法在6个文本分类任务上的性能明显优于现有的文本分类方法,在大部分的数据集上测试使得错误率降低了18-24%

迁移学习思想

  • 将已经学习到的知识(预先训练好模型)应用到其他领域(模型)上去。在nlp领域最先尝试迁移学习的是嵌入模型(eg . word embedding),将预先训练好的词向量加入到模型中,可以在大多数NLP任务中改进结果,并在此之上,开始了寻找质量更高的词/字符/文档表示。
  • 不过,词嵌入仅是大多数NLP模型的第一层,之后,我们仍需要从头开始训练模型的其他层。
  • 本文采用的是,在微调语言模型的基础上,进行迁移学习,在上面加一层分类器。

ULMFiT模型

ACL2018论文笔记1_第1张图片ACL2018论文笔记1_第2张图片

  • LM 即 语言模型(language model)。本文使用的语言模型是多层的LSTM网络。语言模型是一种能够根据已经看到的单词预测下一个单词的模型就像图像分类器通过对图像分类来获得图像的内在知识一样,如果NLP模型能够准确地预测下一个单词,似乎就可以说它已经学会了很多关于自然语言结构的知识。这些知识可以提供高质量的初始化状态,然后针对自定义任务进行训练。摘自此处

  • 本模型分为三部分:

    • a) 模型的预处理阶段,根据不同领域的大规模数据训练出LSTM语言模型。
    • b) 在特定的目标领域(target domain),微调模型。微调模型的时候采用了两种策略:区分微调 (discriminative fine_tuning )和 三角变化学习率 (slanted triangular learning rate)。
      ACL2018论文笔记1_第3张图片
    • 越底层的图越通用,越顶层的图的特征越特殊。如上图,最顶层的图可以用以区分猫或者狗。
      • 区分微调思想在本文中,对layer1,layer2,layer3 分别使用不同的学习率。layer3的学习率为η,layer2的学习率为η/2.6,layer1的学习率为η/(2.6*2.6)。
        论文的三角变化学习率如下图:
        ACL2018论文笔记1_第4张图片
      • 随着迭代次数的增加,学习率先升逐渐高,后逐渐降低。先用较小的学习率得到一个好的优化方向,再使用较大的学习率,进行优化。训练后期的时候再使用较小的学习率进行更细致的优化。
    • c) 细调分类模型
      • concat pooling
        使用domain数据中有标记的部分数据进行分类器的训练。如果仅考虑模型最后一层的隐藏状态会丢失掉之前的一些信息。而对于用于训练分类任务的一篇文章而言,关键的信息可能会出现在文章的任何位置。因此,本文把模型中每一个时刻的输出取它max-pooled和mean-pooled 作为两个线性块连接到最后一层的输出中。
        ACL2018论文笔记1_第5张图片
      • gradual unfreezing
        为了避免全部fine-tuning导致网络对之前学到的general知识的遗忘,还使用了一种被称之为Gradual unfreezing的方法,从后往前(从layer3到layer1方向)以epoch为单位进行逐步的添加。第一个epoch只把最后一层解冻,接下来每过一个epoch就把一个多余的网络层加入到解冻集合中去。由于后面的网络更多的是specific信息,前面的网络包含的更多general信息,这样的方式可以最大的幅度保存(a)、(b)阶段学习到的信息。摘自此处
      • 在预处理阶段使用双向的语言模型。

    实验部分的分析,可以参考:https://www.sohu.com/a/233269391_395209
    相关参考:
    http://www.sohu.com/a/249105378_100024677
    https://www.sohu.com/a/233269391_395209
    https://blog.csdn.net/guoyuhaoaaa/article/details/80805223
    相关代码博客:
    https://blog.csdn.net/gentelyang/article/details/77512565
    论文:
    https://arxiv.org/pdf/1801.06146.pdf
    Github相关资源:
    https://github.com/feedly/ml-demos/blob/master/source/TransferLearningNLP.ipynb
    https://blog.feedly.com/transfer-learning-in-nlp/

你可能感兴趣的:(论文笔记)