采⽤通⽤语⾔模型的最新⽂本分类介绍
雷锋⽹按:本⽂为雷锋字幕组编译的技术博客,原标题 Introducing state of the art text classification with universal language models,作者为 Jeremy Howard and Sebastian Ruder。
翻译 | 翟修川程添杰整理 | 凡江
这篇⽂章向零基础同学介绍我们最新的论⽂,和以前的⽅法相⽐,该论⽂展⽰了如何采⽤更⾼的精度和更少的数据⾃动地进⾏⽂档分类。我们将使⽤简单的⽅式解释⼏种⽅法:⾃然语⾔处理;⽂本分类;迁移学习;语⾔模型以及如何将这些⽅法有机结合。如果你已经对⾃然语⾔处理和深度学习很熟悉,那么你可以直接跳转到⾃然语⾔分类⽹页获取更多的技术链接。
1. 简介
与之前的⽂本分类⽅法相⽐,该⽅法有着明显的提升,所有的代码和预训练模型允许任何⼈利⽤这种新⽅法更好的解决如下问题:
•查与法律案件相关的⽂件;
•识别垃圾邮件,机器⼈和让⼈反感的评论;
•分类某种产品正⾯和负⾯的评论;
•按政治倾向分类⽂章;
•…...还有其他更多的问题。
那么,这项新技术究竟做了什么呢?⾸先,让我们想浏览⼀下论⽂的概要部分,看看它说了什么,然后在⽂章的其他部分,我们逐步解析和学习它的准确含义:
写网页用什么语言迁移学习以及对计算机视觉产⽣了极⼤的影响,但是现有的⾃然语⾔处理⽅法仍然要求从头开始特定任务的修改和训练。我们提出了⼀种有效的迁移学习算法可以应⽤于任意的⾃然语⾔处理任务,并且引⼊对微调语⾔模型⾄关重要的⽅法。我们的⽅法在六种分类任务上优势明显,可以在⼤多数数据集上将错误率降低 18-24%。此外,这种⽅法仅仅使⽤ 100 个有标签的样本,实现的性能可以媲美从头开始训练 100 倍以上数据达到的性能。
2. ⾃然语⾔处理,深度学习和分类
⾃然语⾔处理(NLP)是计算机科学和⼈⼯智能的⼀个领域,它指的是使⽤计算机来处理⾃然语⾔。⾃然语⾔是指我们每天都在交流使⽤的语⾔,⽐如英语或者中⽂,⽽不是专业语⾔,⽐如计算机代码或者⾳乐符号。⾃然语⾔处理应⽤⼴泛,⽐如搜索,个⼈助⼿,提取总结,等等。总体⽽⾔,⾃然语
⾔处理具有挑战性,因为我们在写代码的时候使⽤的语⾔并不适合⾃然语⾔的细微差别和灵活性。你可能遇到这些有限的场景⽽感到尴尬,⽐如尝试和⾃动电话应答系统交流,或者和像 Siri 这样能⼒有限的早期的对话机器⼈。
在过去的⼏年,我们已经看到了深度学习⼤举进⼊以前计算机鲜有成就的领域。深度学习不是要求程序员定义好的⼀组固定规则,⽽是使⽤神经⽹络直接从数据中学习⼤量的⾮线性关系。最值得注意的是深度学习在计算机视觉上的成功,例如 ImageNet 竞赛上图像分类的快速发展。
正如这篇的纽约时代杂志⽂章⼴泛讨论的,在⾃然语⾔处理领域,深度学习也有⼀些成功,例如⾃动翻译。成功的⾃然语⾔处理任务有⼀个共同点就是使⽤⼤量的有标签数据可⽤于模型训练。但是,到⽬前为⽌,这些应⽤仅限于那些能够收集和标记庞⼤数据集并且能够拥有长时间在计算机集上处理的机构。
奇怪的是,在分类这个领域,深度学习在⾃然语⾔处理仍然⾯临很⼤挑战,⽽在这个领域深度学习在计算机视觉却成绩斐然。这是指将事物(例如图⽚或⽂档)分组(例如猫 vs 狗,或正⾯ vs 负⾯,等等)的问题。⼤量现实世界中的问题主要是分类问题,这就是为什么例如深度学习在 ImageNet 上的成功导致了许多的商业应⽤。在⾃然语⾔处理上,当前的⽅法能够很好的识别,⽐如,当⼀部电影的评论是证明或者负⾯的,这就是⼀个情感分析的问题。然⽽,⼀旦事物变得模糊,模型就会混乱,因为通常没有⾜够的标记数据可供学习。
3. 迁移学习
我们的⽬标是解决以下两个问题:(1)在没有⼤量数据或者算⼒的情形下解决 NLP 问题(2)使得 NLP 分类问题更容易。事实证明,我们两个(Jeremy 和 Sebastian)从事于能够解决这些问题的领域——迁移学习。迁移学习指的是,基
易。事实证明,我们两个(Jeremy 和 Sebastian)从事于能够解决这些问题的领域——迁移学习。迁移学习指的是,基于⼀个已经训练好的针对某⼀特定问题的模型(例如基于 Imagenet 的图⽚分类模型),来解决另⼀个相似的问题。⼀种常见的迁移学习⽅法是对原模型进⾏微调(例如把 CT 扫描结果分类为癌变的和没有癌变的——这是 Jeremy 实现的⼀个迁移学习应⽤,他据此创建了 Enlitic 公司)。因为微调后的模型不需要从头开始训练,较不使⽤迁移学习的模型⽽⾔,它通常能够使⽤更少的数据和算⼒来达到较⾼的准确率。
较为简单的迁移学习只使⽤单层的参数(这被称为嵌⼊),这在近些年⼗分流⾏,例如⾕歌的 word2vec 嵌⼊。然⽽,实践中完整的神经⽹络模型包含很多层,因此只在单层使⽤迁移学习并没有触碰到问题的本质。
问题是,为了解决 NLP 问题,我们应该从哪⾥进⾏迁移学习呢?对这个问题的回答落在了 Jeremy 的⼿⾥。当时他的朋友 Stephen Merity 发布了 AWD LSTM 语⾔模型,这个模型较先前的语⾔建模⽅法
有巨⼤的改进。语⾔模型是⼀个⽤于预测⼀句话中的下⼀个单词是什么的⾃然语⾔处理模型。例如,如果你的⼿机键盘能够预测你输⼊的下⼀个单词是什么,它就正在使⽤⼀个语⾔模型。语⾔模型很重要,因为⼀个能够较好地预测你即将要说的话的语⾔模型,通常具备很多的常识(例如,「I ate a hot」->「dog」;「It is a very hot」->」weather」),同时它也需要对语法、语义和其他⾃然语⾔成分有深刻的理解。⽽这恰恰就是我们在阅读和分类⼀个⽂件时,所下意识使⽤的知识。
在实践中我们发现,这种模式的迁移学习具备⼀些特点,使其能够成为⾃然语⾔处理领域迁移学习的⼀般⽅法:
1.能够处理不同⼤⼩、数量和标记类型的任务
2.使⽤相同的模型结构和训练过程
3.不需要认为的特征⼯程和预处理
4.不需要额外的域内⽂件或标记
4. 使之⽣效
这种想法已经有⼈尝试过了,但是需要数百万的⽂件才能达到较好的性能。我们发现,通过更聪明地
微调我们的语⾔模型,就能做的更好。特别地,我们发现,如果我们能够控制模型训练的速度,并对预训练模型进⾏更新,使其不会遗忘它先前学习的特征,从⽽模型能够更好地适应新的数据集。让我们感到惊喜的是,我们发现这个模型甚⾄能从⾮常有限的样本中学习。在⼀个⼆元的⽂本分类问题中,我们发现,仅使⽤ 100 个有标记样本(以及 50000 个⽆标记样本),就能达到和使⽤ 10000 个有标记样本从头开始训练⼀样的效果。
另⼀个重要发现是,我们能够使⽤任何⼤型语⾔的语料库来创造⼀个通⽤的语⾔模型。这意味着我们能够针对任何特定的语料库进⾏微调。我们决定使⽤ Stephen Merity 的 Wikitext 103 数据集,该数据集为⼀个经过预处理过的英⽂的较⼤⼦集。
⾃然语⾔处理的研究主要集于英语,在其他的语⾔上训练模型会遇到相对应的困难。⼀般来说,⾮英语语⾔的公开数据集的数量很少。如果你想要在像泰语这样的语⾔上训练⼀个⽂本分类模型,你⽆疑需要⾃⼰搜集数据。在⾮英语语⾔上搜集数据,通常意味着你需要⾃⼰标注数据,或者到标注者来处理它们,就像 Amazon Mechanical Trurk 雇佣了很多说英语的标注者做众包服务那样。
有了 ULMFiT,我们就能更容易地训练⾮英语语⾔的⽂本分类模型,我们唯⼀需要的就是(现在⽀持301 种语⾔),以及少量的能够被⼿动标记的⽂件,或者额外可选的⾮标记⽂件。为了让建模更容易⼀些,我们即将发布⼀个 model zoo,⾥⾯包含了很多语⾔的预训练模型。
5. ULMFiT 的未来
我们已经发现了,在相同的设定下,这种⽅法在很多不同的任务中表现良好。除了⽂本分类之外,还有很多重要的⾃然语⾔处理问题,例如序列标记和⾃然语⾔⽣成,这些都是我们希望 ULMFiTz 在将来能够帮助处理的问题。在完成了这些领域的实验和建模之后,我们会更新这个页⾯。
迁移学习的成功,以及基于 Imagenet 的预训练模型的易获得性,已经彻底改变了计算机视觉领域。很多⼈,包括创业者、科学家和⼯程师在内,正在使⽤微调后的预训练模型来解决涉及计算机视觉的很多重⼤问题,包括提⾼⾮洲的作物产量和建造⽤于分类乐⾼积⽊的机器⼈。现在,相同的⼯具在 NLP 领域也出现了,我们希望类似的爆炸性增长在这个领域也能出现。
尽管我们已经展⽰了最先进的⽂本分类结果,为了充分利⽤ NLP 迁移学习,还有很多⼯作要做。在计算机视觉领域,已经有很多重要的⽂章深度分析了迁移学习。特别地,Yosinski 等⼈试图回答「深度神经⽹络中的特征可迁移性」问题;Hub 等⼈研究了「为什么 ImageNet 适合迁移」;Yosinski 甚⾄建⽴了⼀个可视化⼯具箱来帮助实践者更好地理解他们模型中的特征(见下⾯的视频)
他们模型中的特征(见下⾯的视频)
如果你在⼀个新的问题或数据集上尝试了 ULMFiT 模型,我们⼗分⾼兴能够听到这个消息!访问深度
学习论坛(deep learning forums),告知我们进展如何(如果在建模过程中遇到了问题,务必让我们知晓)。
雷锋⽹雷锋⽹
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论