ULMFiT

ULMFiT是文本分类中的transfer learning解决方案,通过预训练、目标任务的LM微调和classifier微调实现高效迁移。对比ELMo,ULMFiT在domain adaptation上有额外步骤,如定制微调、斜率三角学习率和逐步解冻策略,提高样本利用率并取得优秀效果。
摘要由CSDN通过智能技术生成

ULMFiT和其他算法的比较

上篇介绍了ELMo。ELMo有以下几个步骤:

  1. 利用LM任务进行预训练,
  2. 再利用目标领域的语料对LM模型做微调,
  3. 最后针对目标任务进行最后的训练

ULMFiT一样需要执行上述步骤。它的论文名字(Universal Language Model Fine-tuning for Text Classification)顾名思义就是一个利用LM模型给出的统一的在文本分类方面进行transfer learning的解决方案。

一直以来都有人试图在NLP领域进行transfer learning的尝试,可惜从来都没有像ImageNet在CV里那样成功的案例。也许指望某个特定的方法一统江湖是不可能了,但是总结迄今的研究,显然LM基于其对语言内在结构的学习能力成为主流模型。

下面这张表概括一些近年来寻找NLP领域"ImageNet"的尝试:

项目 任务 数据 模型
InferSent NLI SNLI encoder: BiLSTM+Maxpooling
Conversations Multitask(Input-response&NLI) SNLI+Reddit encoder: DAN/Transformer
QuickThought classification BookCorpus/UMBC corpus encoder: GRU
ELMo LM WMT11 Stacked BiLSTM
ULMFiT LM Wiki text stacked forward&backward LSTM

ELMo和ULMFiT在任务上给出的答案是语言模型LM; 在数据上虽有不同,但是WMT11和Wiki都同为general text数据,并无本质差别。模型方面二者都选择了LSTM,区别仅在于前者是双向的,后者是独立的两个模型:forward和backward的平均。
看来在预训练任务这方面,ELMo和ULMFiT都把这一票投给了语言模型

前面的文章介绍过另外两种做transfer learning的模型InferSentConversations, 它们走的是解决NLI(和Input-response)任务的路子。直觉上,NLI任务的语义学特性很适合作为产生通用语言features的预训练任务。

QuickThought 比较特殊,它的任务是判断给定的句子是否是相邻的句子,属于经典的classification的问题。

哪一种方法更好,当然要看具体的应用。不过粗略的说,还是可以用土办法大概分析一下。围棋上有个术语叫“手割”,用来判断局部的好坏。就是把对弈双方效率相近的棋子拿掉,那么剩下的效率不同的棋子就是决定优劣的关键。这里也可以用手割的方法来分析一下。

直觉上看第一类(ELMo和ULMFiT)的效果会更好,因为它们除了预训练和在目标任务(包括label)上fine tuning,还包括了在目标语料(不包括label)上fine tuning,比其他两类多出了domain adaptation的步骤。

ELMo和ULMFiT之间来比较,ELMo要更好。原因是ELMo在最终解决目标任务时,需要使用下游的模型,并不是直接的把自己的sentence或者doc embeddings拿出来使用。相反,ELMo只提供了自己的word embeddings给下游的模型。相比ULMFiT,ELMo更加“谨慎”,步子迈的更小,只专心把word embedding给做到极致,下游的模型不操心。它不像其他的方法,直接把压缩好的

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值