[关闭]
@sambodhi 2018-05-21T00:36:27.000000Z 字数 4496 阅读 1315

文本分类更上一层楼:利用迁移学习创造的通用语言模型

作者|Jeremy Howard、Sebastian Ruder
译者|Liu Zhiyong
编辑|Natalie Cai

AI前线导读:本文是对Fast.ai新论文的介绍,面向大众读者,阐述了如何自动对文档进行分类,同时比以前的方法具有更高的准确率,以及更少的数据需求。本文将用简单的术语来解释:自然语言处理、文本分类、迁移学习、语言建模;以及这个新的方法是如何将这些想法结合在一起的。如果你已经熟悉自然语言处理和深度学习,你可以访问这个项目主页来获得技术信息:http://nlp.fast.ai/category/classification.html

前言

我们发表了论文 Universal Language Model Fine-tuning for Text Classification,(ULMFiT)(https://arxiv.org/abs/1801.06146),提供了预训练模型(pre-trained models)和Python实现的完整代码。这篇论文在已经在国际顶级会议ACL 2018经过同行评议并接收(Annual Meeting of the Association for Computational Linguistics,ACL 2018,http://acl2018.org/)。可以在此网页(http://nlp.fast.ai/category/classification.html)观看相关视频,视频提供了对该方法的深入探讨、所有使用的Python模块、预训练模型以及用于构建自己的模型的脚本。

这种方法大大改进了以前的文本分类方法,任何人都可以用我们的代码和预训练模型来更好地解决以下问题:

ULMFiT requires orders of magnitude less data than previous approaches.<br />(Figure 3 from the paper)

与以前的方法相比,ULMFiT需要的数据量要少得多。(论文中的图3)

那么这种新技术究竟做了什么改进呢?让我们首先看一看论文摘要的部分内容,看看它是怎么说的,然后在本文接下来的章节,我们将由此展开并准确了解其全部含义:

迁移学习极大地影响了计算机视觉,但是自然语言处理现有的方法,仍然需要从头开始进行特定任务的修改和训练。我们提出了一种有效的迁移学习方法,可以应用于自然语言处理中的任何任务,并引入对语言模型进行微调的关键技术。我们的方法在六种文本分类任务上,明显优于现有的技术,在大多数数据集上的错误减少了18~20%。此外,这种方法只用了带100个带标记的样本,就可以与拥有100倍以上数据并且从头开始训练的模型性能相媲美。

自然语言处理、深度学习和分类

自然语言处理(Natural language processing,NLP)是计算机科学和人工智能的一个领域,顾名思义,它是指使用计算机来处理自然语言。自然语言是指我们日常交流的正常语言,如英语或汉语,而不是像计算机代码或音乐符号那样的专门语言。自然语言处理用于各种应用,如搜索、个人助理、摘要等等。总体来说,自然语言处理颇具挑战性,因为我们在编写计算机代码时,所使用的严格规则并不适用于语言的细微差别和灵活性。你自己也可能遇到过这些限制,比如尝试与自动电话应答系统交流,带给你的是令人沮丧的体验;或者像Siri那样的早期对话式机器人那可怜的能力。

在过去的几年中,我们已经目睹深度学习正大举进入那些计算机以前只能取得有限成功的领域。深度学习并不需要程序员来定义一组固定规则,而是使用神经网络,直接从数据中习得丰富的非线性关系。最值得注意的是,深度学习在计算机视觉上取得的成功,例如在ImageNet图像分类竞赛中的突飞猛进地发展。

深度学习在自然语言处理也取得了一些成功,例如在《纽约时报》的文章中曾谈及的自动翻译。大凡成功的自然语言处理任务的一个共同特点是,都有大量的标记数据可用于训练模型。然而到目前为止,这些应用仅限于那些能够收集和标记大型数据集,并拥有计算资源可以在计算机集群上长时间处理它们的机构。

说来也奇怪的是,自然语言处理对于深度学习来说仍然极具挑战性的一个子领域,也正是它在计算机视觉领域大获成功的领域:分类。它指的是,你的目标是将事物(如图像或文档)分类的任何问题(如猫和狗的图像,或正面与负面的评论,等等)。大量重要的现实问题主要是关于分类的,这就是为什么深度学习在ImageNet(一个分类问题)取得的成功催生了大量的商业应用的原因。在自然语言处理中,目前的方法能够很好地识别,例如,判断关于某部电影的评论是正面还是负面,这是一个称之为“情感分析”的问题。然而,当事情变得更加模糊时,模型就会“犹豫不决”,这通常是因为没有足够的标签数据来学习。

迁移学习

我们的目标是解决这两个问题:a)处理自然语言处理问题,我们并没有大量的数据和计算资源;b)使自然语言处理的分类更容易。我们(Jeremy和Sebastian)都在研究解决这个问题的确切领域:迁移学习。迁移学习指的是使用经过训练解决某个问题(如将ImageNet中图像分类)的模型作为解决其他类似问题的基础。一种常见的方法是对原始模型进行微调(如将CT扫描分类为癌症或非癌症,这是Jeremy在创建Enlitic时所开发的迁移学习的应用)。由于微调模型不需要从头开始学习,因此,与不使用迁移学习的模型相比,它通常可以达到更高的准确率,而且所需的数据和计算时间也少得多。

非常简单的迁移学习只使用一层权重(称为嵌入),在这几年来红得发紫,比如Google的word2vec嵌入。然而在实践中,完整的神经网络包含了许多层,所以,仅使用单个层的迁移学习,显然只是对无尽可能性的浅尝即止。

那么问题来了,为了解决自然语言处理的问题,我们可以从哪里进行迁移学习?这个问题的答案就在Jeremy手上,当时他的朋友Stephen Merity宣布开发了AWD长短期记忆网络模型(AWD LSTM language model,https://github.com/salesforce/awd-lstm-lm),这与以前的语言建模方法相比有了很大的改进。语言模型是一种自然语言处理的模型,它学习预测句子中的下一个单词。例如,如果你需要手机键盘猜测接下来要键入的单词,那么就需要使用语言模型。很重要的原因是,语言模型很擅长猜测你接下来要说什么,它需要大量世界性的常识(如:“I ate a hot” →“dog”;“It is very hot” → “weather”),并深入理解语法、语义和自然语言的其他元素。这正是我们在阅读和分类文档时所具备却浑然不知的能力。

我们发现,在实践中,这种迁移学习的方法具有使其成为自然语言处理迁移学习的通用方法的特征:

  1. 适用于不同文档大小、数量和标签类型的任务;
  2. 使用单一架构和训练过程;
  3. 不需要自定义特征工程或预处理;
  4. 不需要额外的域内文档或标签。

让它发挥作用

High level ULMFiT approach (IMDb example)

ULMFiT高级方法(以IMDb为例)

这个想法以前就尝试过,但需要数百万份文档才能获得足够的性能。我们发现,通过更聪明地对语言模型进行微调,就可以做得更好。特别是,我们发现,如果仔细地控制模型学习的速度,并更新预训练模型,这样它就不会忘记之前学过的东西,那么模型就可以更好地适应新的数据集。有一件事令我们感到特别兴奋,那就是模型可以很好地从有限的样本中学习。在一个包含两个类的文本分类数据集中,我们发现,仅用100个标记的样本来训练我们的方法(并允许它访问大约50000个未标记的样本),我们就能够实现与用10000个标记样本从头开始训练模型相同的性能。

另一个重要的见解是,我们可以使用任何合理且通用的大型语言语料库来创建通用语言模型:我们可以对任何自然语言处理目标语料库进行微调。我们决定使用Stephen Merity的Wikitext 103数据集,它包含了英文版维基百科的预处理大型子集。

自然语言处理的研究主要集中在英语上,而非英语语言的模型训练会带来一系列挑战。一般而言,非英语语言的公开数据集的数量很少,如果你想为一种语言(如泰语)训练文本分类模型,就得收集自己的数据。以非英语语言收集数据通常意味着你需要对数据进行标注,或者自己找到标注者,因为像Amazon Mechanical Turk这样的众包服务大多使用了讲英语的标注者。

在ULMFiT的帮助下,我们可以使除英语以外的语言训练文本分类模型变得更容易,因为我们所需要的只是访问维基百科,而维基百科目前有301种语言,少量文档可以方便手动进行标注,还可以随意添加未标记的文档。为了让这更容易,我们将很快推出一个模型合集(model zoo,http://nlp.fast.ai/category/model_zoo.html),为多种语言提供预训练语言模型。

ULMFiT的未来

我们发现,这种方法在不同的任务中,使用相同的设置效果很好。除了文本分类外,还有很多其他重要的自然语言处理问题,如序列标记或自然语言生成,我们希望ULMFiT将来能更容易地解决这些问题。一旦我们完成实验并在这些领域构建模型,我们将会更新这个网站。

在计算机视觉领域中,迁移学习的成功和预训练ImageNet模型的可用性已经改变了这一领域。包括企业家、科学家和工程师在内的许多人,他们正在使用微调的ImageNet模型来解决涉及计算机视觉的重要问题:从提高非洲农作物产量到制造乐高积木的机器人。现在,同样的工具可以用来处理自然语言,我们希望在这个领域也能看到同样应用的激增。

虽然我们已经阐述了文本分类的最新成果,但是仍然需要做大量的工作,才能真正充分利用自然语言处理迁移学习。在计算机视觉领域中,已经涌现许多重要而有见地的论文,深入分析了该领域的迁移学习。尤其是Yosinski等人试图回答“how transferable are features in deep neural networks(https://arxiv.org/abs/1411.1792)”这一问题,Huh等人研究了“what makes ImageNet good for transfer learning(https://arxiv.org/abs/1608.08614)”。Yosinski甚至创建了一个丰富的可视化工具包(visualization toolkit,https://github.com/yosinski/deep-visualization-toolbox),帮助从业者更好地理解他们的计算机视觉模型中的特征,如下视频所示:

【嵌入视频 https://v.qq.com/x/page/m06561fuap5.html

Deep Visualization Toolbox

原文链接: Introducing state of the art text classification with universal language models
http://nlp.fast.ai/classification/2018/05/15/introducting-ulmfit.html

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注