前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Universal Language Model Fine-tuning for Text Classification

Universal Language Model Fine-tuning for Text Classification

作者头像
张凝可
发布2019-08-21 22:29:23
6170
发布2019-08-21 22:29:23
举报
文章被收录于专栏:技术圈技术圈

版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。

参考论文:Universal Language Model Fine-tuning for Text Classification

迁移学习最早是应用于机器视觉方向的,迁移学习是从general到specific的过程,在general过程中在大型语料库中进行预训练(pre-training),在specific过程中在specific task领域中进行微调(fine-tunning).

迁移学习的可行性

无论是在机器视觉还是在nlp领域中,预训练过程中发现底层特征的可复用性,而高层特征和任务的高相关性,nlp的ELMO就验证这一点。

为什么要进行预训练?

1. 训练数据小,不足以训练复杂网络

2.加速训练过程

3.参数初始化,找到好的初始点,便于优化。

为什么又要在specific task domain 进行微调?

1. 训练数据小,容易过拟合

2.从头开始基于预训练得到的特征训练,训练时间长

3.从头训练导致模型忘记pre-training的特征

这篇文章就nlp方向提出了一种新的微调方法,用于解决上面提到的微调存在的三个问题,并在nlp中的6项任务中验证本文提出的微调方式的有效性。这篇论文提出的预训练方法和之前的迁移学习中微调方法在nlp中的不同点如下,这个在ELMO中也提到过:

使用task数据fine-tuning词向量(如glove这种),只更改模型的第一层,将其他任务得到的词向量和本任务的输入concat起来,但其实这些pretrain的词向量都是被当做固定参数用的,且该任务的模型是从头训练的。因此出现了pretrain语言模型(language model),但是语言模型容易在小型数据上过拟合,且当训练分类器时容易忘记pretrain语言模型学到的知识。

整体框架:

(a)General-domain LM pretraining

训练集:包含了28,595 Wikipedia文章和103亿词

语言模型:采用了3层的单向LSTM,无attention,带有少量dropout 参数

只需要训练一次,用于提升下游任务的效果,和加速下游任务收敛的速度

(b)Target task LM fine-tuning

提出了两种在该阶段加速训练,不影响效果的两种策略。

Discriminative fine-tuning,即对layer1,layer2和layer3采用不同的学习速率,η(l−1) =ηl/2.6 ,ηl为第l层的学习率。 Slanted triangular learning rates,学习率不断下降未必是好事,需要先增后降。即每一个iteration都会对学习速率有一个修正(iteration和epoch不一样,一个iteration是一次参数的更新,相当于一个batch),具体的修正公式如下:

其中,

T
T

是总的迭代次数,

t
t

是当前的迭代次数,

cut\_frac
cut\_frac

是转折比例,

\eta _{max}
\eta _{max}

是最大的学习速率,

ratio
ratio

是最大和最小学习率的差值

学习率和迭代数之间的关系如下图所示:

(c) Classifier fine-tuning

在该阶段使用domain中的有标注数据进行分类器的训练,分类器为两个线性block,每个线性block包含(batch normalization,dropout,激活函数ReLU),最后跟一个softmax层,输出属于某一类的概率。对于每个任务来说,这两个线性block和softmax都是从头训练的。layer3的LSTM的输出变量进行一系列的变换操作,

,最后hc为输入分类器的形式,其中[]为向量连接符号,为了就是避免最后一层包含的信息太少,那么在对分类器进行训练的时候,除了Discriminative fine-tuning和Slanted triangular learning rates技术。为了避免全部fine-tuning导致语言模型对之前学到的general知识的遗忘,引入

Gradual unfreezing,从后往前(从layer3到layer1方向)逐步的添加。先只把最后一层解冻,接下来就把一个多余的网络层加入到解冻集合中去。由于后面的网络更多的是specific信息,前面的网络包含的更多general信息,这样的方式可以最大的幅度保存(a)、(b)阶段学习到的信息。

BPTT for Text Classification,为了当输入文本很长时,可以较好的fine-tuning分类器,将文档拆成几个batch,每个batch的长度是一致的,哪一个batch促成了最后的preciction,就反向传播给哪个batch。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019年04月14日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
NLP 服务
NLP 服务(Natural Language Process,NLP)深度整合了腾讯内部的 NLP 技术,提供多项智能文本处理和文本生成能力,包括词法分析、相似词召回、词相似度、句子相似度、文本润色、句子纠错、文本补全、句子生成等。满足各行业的文本智能需求。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档