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. HDU 5813 Elegant Construction 构造

    Elegant Construction 题目连接: http://acm.hdu.edu.cn/showproblem.php?pid=5813 Description Being an ACMer ...

  2. 设置java.library.path的值(Mac/Linux/Windows)

    说明:网上基本针对这个值的设置分为两面,Windows派和Linux派,Windows的不说,Linux下只会说设置LD_LIBRARY_PATH即可,但这种方式在Java 8是一个错误的设置,尤其是 ...

  3. LPC-LINK 2 Board IO TABLE

  4. WCID Devices -- Windows Compatible ID Devices

    WCID Devices What is WCID? A WCID device, where WCID stands for "Windows Compatible ID", i ...

  5. Extended APDU support

    http://pcsclite.alioth.debian.org/ccid_extended_apdu.html To be able to use an extended APDU you nee ...

  6. 图解tensorflow 源码分析

    http://www.cnblogs.com/yao62995/p/5773578.html https://github.com/yao62995/tensorflow

  7. MODBUS RTU协议中浮点数是如何存储,读到浮点数寄存器的数值如何转换成所需的浮点数

    浮点数保存的字节格式如下: 地址 +0 +1 +2 +3内容 SEEE EEEE EMMM MMMM MMMM MMMM MMMM MMMM 这里S 代表符号位,1是负,0是正E 偏移127的幂,二进 ...

  8. C#中使用throw和throw ex抛出异常的区别

    通常,我们使用try/catch/finally语句块来捕获异常,就像在这里说的.在抛出异常的时候,使用throw和throw ex有什么区别呢? 假设,按如下的方式调用几个方法: →在Main方法中 ...

  9. 奇怪的问题,疑惑?不用的 User agent 居然gzip不一样?

    问题描述: 使用同一款浏览器(Chrome Version 41.0.2272.118 (64-bit)),访问同一个地址:http://www.skhktown.com/hkcity/resourc ...

  10. 【MySQL】EXPLAIN命令详解

    具体参考: https://www.cnblogs.com/gomysql/p/3720123.html 原文如下: 在工作中,我们用于捕捉性能问题最常用的就是打开慢查询,定位执行效率差的SQL,那么 ...