https://www.sohu.com/a/233269391_395209

本周我们要分享的论文是《Universal Language Model Fine-tuning for Text Classificatio》

迁移学习在计算机视觉方面取得了很多成功,但是同样的方法应用在NLP领域却行不通。文本分类还是需要从零开始训练模型。本文的作者提出了一种针对NLP的有效的迁移学习方法,通用语言模型微调(ULMFiT)并介绍了用于微调模型的关键技巧。

越底层的特征越通用,越顶层的特征越特殊

ULMFiT效果:该方法在6个文本分类任务上的性能明显优于现有的文本分类方法,在大部分的数据集上测试使得错误率降低了18-24%。此外,仅有100个标记样本训练的结果也相当不错。

Universal Language Model Fine-tuning

ULMFiT方法包括三个阶段:

LM pre-training:在语料库上训练语言模型,获取每个word在大语料库上面的representation;

LM fine-tuning:LM使用区分微调(Discriminative)和本文使用的是三角变化的学习率(Slanted triangular learning rates)两个trick对目标域数据进行微调,以学习每个word的特定语料上的representation。

Classifier fine-tuning:上层分类器训练,这一步也用了很多的trick。

文中使用的几种trick

Discr + STLR

Discr:每一层设置一个学习率的方法(第一层的特征具有通用性,所以设置相对较小的学习率,高层的特征与具体任务相关,因此设置相对较大的学习率)

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

使用STLR技巧,学习率随迭代次数的变化

目标任务分类器微调(作者用了四种技巧)包括:

级联池化(Concat pooling):把RNN模型里每一个时刻的输出pooling一下,然后concat到最后一层特征上

逐步解冻(Gradual unfreezing)

用于文本分类的BPTT(BPTT for Text Classification, BPTT backpropagation through time随时间的反向传播)

双向语言模型(Bidirectional language model)

实验

实验的主要目的有两个:一是验证该方法是否有效;二是验证该方法里面的哪一步更有效。

作者在六个比较常用的数据集上评估了该方法,这些数据文档的数量以及文档的长度都不尽相同,在三个常见的分类任务(情感分析、问题分类、主题分类)上进行实验。

通过和其他的一些文本分类方法进行比较,作者提出的ULMFiT方法错误率最低,效果最好。

在三类分类任务上,ULMFit的监督学习、半监督学习需要的数据比从头训练模型的数据要少得多,但是错误率却更低,模型的效果更好。

讨论LM fine-tuning的影响

论文中作者除了使用微调的方法,还增加了很多技巧以优化模型,所以需要对微调的方法是否有效进行讨论。

通过实验可以看出,从零开始训练模型和使用ULMFiT的方法,在三个测试集上错误率下降幅度较大,后面增加各种trick,使得模型的错误率进一步下降,但是下降的幅度却并不是很大,所以可以看出,确实是ULMFiT的方法是有效。

从论文中学习:

1、文中提到的ULMFiT方法,可以尝试使用在nlp迁移学习中。

2、在调模型时可以考虑增加一些技巧,可以优化结果。比如这篇文章中提到的一些技巧,可以参考。

论文链接:https://arxiv.org/abs/1801.06146v4

论文分享|《Universal Language Model Fine-tuning for Text Classificatio》的更多相关文章

  1. 将迁移学习用于文本分类 《 Universal Language Model Fine-tuning for Text Classification》

    将迁移学习用于文本分类 < Universal Language Model Fine-tuning for Text Classification> 2018-07-27 20:07:4 ...

  2. #论文阅读# Universial language model fine-tuing for text classification

    论文链接:https://aclweb.org/anthology/P18-1031 对文章内容的总结 文章研究了一些在general corous上pretrain LM,然后把得到的model t ...

  3. 论文笔记 - Noisy Channel Language Model Prompting for Few-Shot Text Classification

    Direct && Noise Channel 进一步把语言模型推理的模式分为了: 直推模式(Direct): 噪声通道模式(Noise channel). 直观来看: Direct ...

  4. 【论文翻译】KLMo: Knowledge Graph Enhanced Pretrained Language Model with Fine-Grained Relationships

    KLMo:建模细粒度关系的知识图增强预训练语言模型 (KLMo: Knowledge Graph Enhanced Pretrained Language Model with Fine-Graine ...

  5. 论文分享NO.3(by_xiaojian)

    论文分享第三期-2019.03.29 Fully convolutional networks for semantic segmentation,CVPR 2015,FCN 一.全连接层与全局平均池 ...

  6. A Neural Probabilistic Language Model

    A Neural Probabilistic Language Model,这篇论文是Begio等人在2003年发表的,可以说是词表示的鼻祖.在这里给出简要的译文 A Neural Probabili ...

  7. Fine Tuning

    (转载自:WikiPedia) Fine tuning is a process to take a network model that has already been trained for a ...

  8. NLP问题特征表达基础 - 语言模型(Language Model)发展演化历程讨论

    1. NLP问题简介 0x1:NLP问题都包括哪些内涵 人们对真实世界的感知被成为感知世界,而人们用语言表达出自己的感知视为文本数据.那么反过来,NLP,或者更精确地表达为文本挖掘,则是从文本数据出发 ...

  9. [论文分享] DHP: Differentiable Meta Pruning via HyperNetworks

    [论文分享] DHP: Differentiable Meta Pruning via HyperNetworks authors: Yawei Li1, Shuhang Gu, etc. comme ...

随机推荐

  1. 【GDKOI 2016】地图 map 类插头DP

    Description 对于一个n*m的地图,每个格子有五种可能:平地,障碍物,出口,入口和神器.一个有效的地图必须满足下列条件: 1.入口,出口和神器都有且仅出现一次,并且不在同一个格子内. 2.入 ...

  2. Codeforces Round #374 (Div. 2) D. Maxim and Array 贪心

    D. Maxim and Array 题目连接: http://codeforces.com/contest/721/problem/D Description Recently Maxim has ...

  3. Educational Codeforces Round 14 B. s-palindrome 水题

    B. s-palindrome 题目连接: http://www.codeforces.com/contest/691/problem/B Description Let's call a strin ...

  4. 你的产品适不适合做微信小程序?你需要这篇产品逻辑分析

      自2017年1月9日张小龙宣布万众瞩目的“微信小程序”正式上线了.以名字看,感觉像是突出了“将你的程序接入微信”的意思. 我们此前分析过微信的功能迭代节奏:一般微信重要的功能规划周期,大约会在在9 ...

  5. Oracle初始化参数之memory_target

    一.引言: Oracle 9i引入pga_aggregate_target,可以自动对PGA进行调整: Oracle 10g引入sga_target,可以自动对SGA进行调整: Oracle 11g则 ...

  6. PHP 如何创建守护(daemon)进程

    先讲几个概念 守护进程: Linux中的后台服务进程.它是一个生存期较长的进程,通常独立于控制终端并且周期性地执行某种任务或等待处理某些发生的事件.守护进程常常在系统引导装入时启动,在系统关闭时终止. ...

  7. JSP页面中使用JSTL标签出现无法解析问题解决办法

    今天建立一个JavaWeb工程测试JNDI数据源连接,在jsp页面中引入了JSLT标签库,代码如下: <%@ page language="java" import=&quo ...

  8. 执行nova-manage db sync时出错,提示’Specified key was too long; max key length is 1000 bytes’

    执行nova-manage db sync时出错: 2012-03-24 14:07:01 CRITICAL nova [-] (OperationalError) (1071, ‘Specified ...

  9. 在ASP.NET MVC中实现Select多选

    我们知道,在ASP.NET MVC中实现多选Select的话,使用Html.ListBoxFor或Html.ListBox方法就可以.在实际应用中,到底该如何设计View Model, 控制器如何接收 ...

  10. ios之网络异常与正常视图的切换

    1. xib中创建两个View 2. View的视图大概如下第一个:View View 第二个:View 3. 代码切换: [self.view addSubview:_redView];  // 会 ...