NLP领域中更有效的迁移学习方法

摘要:迁移学习在计算机视觉领域中应用广泛,而NLP领域才刚刚起步。本文介绍了NLP领域中的两种迁移学习方法,分别是与训练的嵌入层及微调模型,嵌入层目前应用较为广泛,但微调模型后来者居上。

在深度学习领域,迁移学习(transfer learning)是应用比较广的方法之一。该方法允许我们构建模型时候不光能够借鉴一些其它科研人员的设计的模型,还可以借用类似结构的模型参数,有些类似于站在巨人的肩膀上进行深入开发。本文将讲述如何在NLP领域中更高效地应用迁移学习。

今年春天,我 在ODSC East会议上发表了题为“NLP中的有效迁移学习”的演讲。该演讲展示了预训练的单词和文档嵌入层在训练数据集较小时取得的优异结果,并为将这些技术应用于工程任务中提出了一系列实用建议。此外,感谢Alec Radford和OpenAI团队的一些出色研究,使得之前提出的一些建议发生了一些变化。

为了解释发生变化的原因,首先回顾一下之前在Indico会议中使用的评估方法,以评估一种新颖的机器学习方法是否适用于工业用途中。

评估新的机器学习方法

对于广泛的实际应用,机器学习模型必须对照以下大多数要求检验自身:

快速训练

快速预测

需要极少或不需要超参数调整

在训练数据可用性较低时运行良好(100个示例)

适用于广泛的任务及对应的领域

在标记的训练数据上能够很好地扩展

让我们看看预先训练好的单词+文档嵌入层如何满足这些要求:

快速训练

在预训练嵌入层之上训练轻量级模型所花费的时间在几秒钟内是可能的,尽管计算预训练嵌入层依赖于基础模型复杂度。

快速预测

预测同样快速,预测与基础模型花费一样的代价。

需要极少或不需要超参数调整

正则化参数和嵌入类型的交叉验证对其是有所帮助的,并且这种操作足够便宜而且不会引入问题。

在训练数据可用性较低时起作用(100个示例)

在预训练的单词嵌入层之上应用逻辑回归块仅需要学习100s~1000s的参数而不是数百万的参数,并且模型的简单性意味着它需要非常少的数据就能获得良好的结果。

适用于广泛的任务及对应的领域

预训练的单词和文档嵌入层通常的表现是“足够好”,但具体任务需要与领域和目标模型相关。

在标记的训练数据上能够很好地扩展

这种方法非常快速,并且不会从额外的训练数据中获益。学习线性模型有助于用更少的数据产生更好的结果,但这也意味着模型学习到的输入和输出之间复杂关系的能力也要低得多。

简而言之,使用预训练的嵌入层在计算上花费少,并且在训练数据可用性较低的情况下表现良好,但是使用静态表示对从额外的训练数据获得的增益会受到限制。从预先训练的嵌入层中获得良好的性能需要为给定的任务搜索正确的预训练嵌入层,但是很难预测一个预先训练嵌入层是否能够很好地推广到一个新的目标任务,这就需要通过一次次实验来验证了。

计算机视觉中的迁移学习解决方案

值得庆幸的是,在计算机视觉领域中的相关研究提供了一种可行的替代方案。在计算机视觉领域中,使用预先训练的特征表示已经在很大程度上被“微调”预训练模型而不仅仅是学习最终分类层的方法所取代。修改源模型的所有权重,而不是简单地重新初始化和学习最终分类层的权重。随着训练数据可用性的增加,这种额外的模型灵活性开始带来回报。

这种方法的来源基础已有几年历史了——从Yosinski、Clune、Bengio等人在2014年探讨了卷积神经网络(CNN)参数的可迁移性开始,直到最近这个过程才成为普遍的做法。现在,在CNN网络中应用微调方法是很常见的,斯坦福大学计算机视觉课程(CS231N)中将这一过程作为课程的一部分,以及Mahajan等人的2018年论文(“探索弱监督预训练的极限”)表明,当模型性能作为至关重要时,应该始终使用微调来代替预训练的特征。

自然语言处理的模型验证

那么为什么自然语言处理领域如此落后呢?在Sebastian Ruder的一篇文章中写道 “NLP的ImageNet时刻已经到来”,他认为造成这个现象的原因是该领域中缺乏用于学习可推广基础模型的既定数据集和源任务。直到最近,自然语言处理领域仍然缺乏ImageNet类似的数据集。

然而,在最近的论文中,如 Howard 和Ruder的  “通用语言模型微调文本分类”  和Radford的论文 “通过生成性预训练提高语言理解”  已经证明模型微调最终在自然语言领域中显示出前景。尽管在这些论文中采用的源数据集各不相同,但NLP领域似乎正在将“语言建模”目标标准化,作为训练可迁移基础模型的首选。

简单地说,语言建模是预测序列中下一个单词的任务。鉴于部分句子“我以为我会按时到达,但最终____5分钟”,对于读者来说,下一个单词将是“迟到”的同义词是相当明显的。有效地解决这一任务不仅需要理解语言结构(名词遵循形容词,动词有主语和对象等),还需要根据广泛的语境线索做出决策的能力(“迟到”是填写在示例中的空白处,因为前面的文本提供了说话者正在谈论时间的线索。)此外,语言建模具有不需要标记的训练数据这一理想特性,且原始文本对于每一个可想象的领域都是丰富的。这两个特性使得语言建模成为学习可泛化的基本模型的理想选择。

然而,语言建模目标并不是使NLP模型微调的唯一必要条件。使用“迁移”模型 代替典型的复现模型(LSTM)也发挥了重要作用。在“通过生成性预训练提高语言理解力”中看到,微调迁移模型的性能与微调复现(LSTM)模型之间存在显着差异。LSTM不再是序列建模的标准——非循环模型已经在各类任务中表现出强有力的竞争性。

John Miller的博客文章中写道,“当递归模型不需要递归”,暗示LSTM理论上的无限记忆可能实际上并不存在。此外,固定的上下文窗口存储器可能足以解决诸如语言建模之类的任务,并且迁移模型的残余块结构似乎很适合迁移学习应用程序。简而言之,迁移模型的理论缺点被其优势所抵消,例如更快的训练和预测时间。

模型微调是否符合设定的标准?

鉴于最近的进展,让我们重新看看微调模型如何满足之前的要求:

快速训练

虽然与预先计算的特征表示相比计算代价更高,但OpenAI的迁移模型可以在约5分钟内通过GPU硬件在几百个示例中进行微调。

快速预测

预测所花费的代价也更高,吞吐量限于每秒一位数的文档。在广泛实际应用之前,必须改进预测速度。

需要极少或不需要超参数调整

在各个任务中使用默认超参数的工作效果非常好,虽然基本交叉验证寻找理想的正则化参数是有益的。

在训练数据可用性较低时运行良好(100个示例)

模型微调在低至100个示例的数据量表现与使用与训练嵌入层一样。

适用于广泛的任务及领域

领域与任务匹配的问题似乎比预训练的特征特征表示更少,语言建模目标似乎学习了适用于语义和句法任务的特征。

在标记的训练数据上能够很好地扩展

使用预先训练的特征表示无法解决的任务,可以通过在足够的训练数据下使用非常复杂的模型解决。随着更多的训练数据变得可用,预训练特征和模型微调之间的差距大大扩大。事实上,微调似乎通常比从头开始训练更加可取——OpenAI的论文“通过生成式预训练提高语言理解”展示了的最新结果。

虽然它有一定的局限性,但NLP任务的模型微调具有很大的前景,并且已经显示出优于当前使用预训练的文字和文档嵌入层这一最佳实践的明显优势。

Sebastian Ruder总结到:

“在NLP领域中实践迁移学习的时机已经成熟。鉴于ELMo、ULMFiT和OpenAI取得的令人印象深刻的实证结果,这似乎只是时间问题,最终直到预训练的单词嵌入层将被淘汰,这可能会促进在标签数据量有限的NLP领域中开发出许多新的应用程序。王者已逝,新的王者也诞生!“

NLP模型定位的定量研究

我们早期的基准测试证实,对使用预先训练的表示进行微调模型有一个通用的好处。下面是使用我们的迁移学习基准测试工具Enso获得的最近基准测试的输出示例 。

图中的每个点表示来自完整数据集的随机子集上的5次试验的平均值+ 95%置信区间。X轴表示可用的标记训练数据点数量,Y轴分别是平均ROC AUC和精度。在拟合之前对训练数据集进行过采样,这些结果是拟合约2500个模型的集合。

微调模型是OpenAI的迁移语言模型的实现,基线模型是在手套词嵌入上训练的交叉验证逻辑回归。尽管存在更强的基线用于比较,但是在该训练数据量下,手套嵌入的平均值对于大多数分类任务来说是比较好的基线了。后续希望在未来的基准测试中发布与其他方法的比较,但仍然令人惊讶的是,在只有100个标记的训练样例下,模型微调取得的效果仍优于简单的基线。有关23种不同分类任务的完整基准测试可在s3下载 。

微调:Scikit-Learn 样式模型微调库

鉴于这一最近的发展,Indico开源了一个包装类(wrapper),用于OpenAI在迁移模型微调方面的工作。 我们尝试通过将其打包成易于使用的scikit-learn样式库,使Radford的研究应用更加广泛,后续会讲述如何使用一些简短的代码使用微调来实现对自己任务的改进敬请期待。

本文作者:【方向】

阅读原文

作者:阿里云云栖社区

链接:https://www.jianshu.com/p/b38e56dad2dd

來源:简书

简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,547评论 6 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,399评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,428评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,599评论 1 274
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,612评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,577评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,941评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,603评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,852评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,605评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,693评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,375评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,955评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,936评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,172评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,970评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,414评论 2 342

推荐阅读更多精彩内容

  • 摘要:迁移学习正在各个领域大展拳脚,NLP领域正在受到冲击! 在我们之前的文章中,我们展示了如何使用CNN与迁移学...
    城市中迷途小书童阅读 483评论 0 7
  • ULMFiT-用于文本分类的通用语言模型微调 翻译自《Universal Language Model Fine-...
    Doit_行之阅读 5,689评论 2 6
  • 仙女入凡尘,予吾生养恩。 垂髫本无恨,怎奈天妒人。 重壤幽隔门,寂寞雨纷纷。 戏水溅木盆,恙临眉伤神。 ...
    俯视星空阅读 407评论 0 1
  • 我是在公众号上看到的9·9小白理财训练营,抱着试试看的态度来学习,结果一进来就前所未有的兴奋,从小狗钱钱,到30岁...
    双鱼_82ee阅读 240评论 3 3
  • 美颜前 美颜后 美颜前 美颜后 美颜相机居然可以把手绘图一起美颜了太强大了。
    花妖小将阅读 134评论 0 0