六种用于文本分类的开源预训练模型

做者|PURVA HUILGOL
编译|VK
来源|Analytics Vidhya网络

介绍

咱们正站在语言和机器的交汇处,这个话题我很感兴趣。机器能像莎士比亚同样写做吗?机器能提升我本身的写做能力吗?机器人能解释一句讽刺的话吗?架构

我确定你之前问过这些问题。天然语言处理(NLP)也致力于回答这些问题,我必须说,在这个领域已经进行了突破性的研究,促使弥合人类和机器之间的鸿沟。机器学习

文本分类是天然语言处理的核心思想之一。若是一台机器可以区分名词和动词,或者它可以在客户的评论中检测到客户对产品的满意程度,咱们能够将这种理解用于其余高级NLP任务。函数

这就是咱们在文本分类方面看到不少研究的本质。迁移学习的出现可能促进加速研究。咱们如今可使用构建在一个巨大的数据集上的预训练的模型,并进行优化,以在另外一个数据集上实现其余任务。性能

迁移学习和预训练模型有两大优点:学习

  1. 它下降了每次训练一个新的深度学习模型的成本优化

  2. 这些数据集符合行业公认的标准,所以预训练模型已经在质量方面获得了审查编码

你能够理解为何通过预训练的模特会大受欢迎。咱们已经看到像谷歌的BERT和OpenAI的GPT-2这样的模型真的很厉害。在这里中,我将介绍6种最早进的文本分类预训练模型。.net

咱们将介绍的预训练模型:

  • XLNet翻译

  • ERNIE

  • Text-to-Text Transfer Transformer(T5)

  • BPT

  • NABoE

  • Rethinking Complex Neural Network Architectures for Document Classification

预训练模型1:XLNet

咱们不能不说起XLNet!

谷歌的最新模型XLNet在文本分类,情感分析,问答,天然语言推理等主要NLP任务上取得了最早进的性能,同时还为英语提供了必要的GLUE基准。它的性能超过了BERT,如今已经巩固了本身做为模型的优点,既能够用于文本分类,又能够用做高级NLP任务。

XLNet背后的核心思想是:

  1. 语言理解的广义自回归预训练

  2. Transformer-XL

若是这听起来很复杂,别担忧!我要把这些简化。

自回归模型用于预测下一个单词,使用的单词在已有的单词以前或以后出现。可是,不能同时处理前面和后面的单词,只能处理一个方向。

虽然BERT确实处理了这方面的问题,但它也有其余缺点,好比假设某些屏蔽词之间没有相关性。为了解决这个问题,XLNet在训练前阶段提出了一种称为排列语言模型(Permutation Language Modeling)的技术。这项技术使用排列同时从正向和反向生成信息。

Transformer已经不是什么秘密了。XLNet使用Transformer-XL。众所周知,在容许不相邻的标记也一块儿处理的意义上,Transformer是循环神经网络(RNN)的替代,由于它提升了对文本中远距离关系的理解。

Transformer-XL是BERT中使用的Transformer的加强版本,由于添加了这两个组件,:

  1. 句段层级的循环

  2. 相对位置编码方案

正如我前面提到的,XLNet在几乎全部任务上都超越BERT,包括文本分类,而且在其中18个任务上实现了SOTA性能!

如下是文本分类任务的摘要,以及XLNet如何在这些不一样的数据集上执行,以及它在这些数据集上实现的高排名:

预训练模型2:ERNIE

尽管ERNIE 1.0(于2019年3月发布)一直是文本分类的流行模式,但在2019年下半年,ERNIE 2.0成为热门话题。由科技巨头百度(Baidu)开发的ERNIE在英语GLUE基准上的表现超过了Google XLNet和BERT。

ERNIE 1.0以本身的方式开辟了道路——它是最先利用知识图的模型之一。这一合并进一步增强了对高级任务(如关系分类和名称识别)模型的训练。

与它的前身同样,ERNIE 2.0以连续增量多任务学习的形式带来了另外一项创新。基本上,这意味着模型定义了7个明确的任务,而且

  • 能够同时生成多个任务的输出。例如,完成“I like going to New …”->“I like going to New York”这句话,并将这句话归类为有积极的情绪。对于合并的任务,也相应地计算损失

  • 将上一个任务的输出增量地用于下一个任务。例如,任务1的输出用做任务一、任务2的训练;任务1和任务2的输出用于训练任务一、2和3等等

我真的很喜欢这个过程,他很是直观,由于它遵循人类理解文本的方式。咱们的大脑不只认为“I like going to New York"是一个积极的句子,它也同时理解名词“New York”和“I”,理解动词“like”,并推断纽约是一个地方。

ERNIE在关系抽取任务中的 F1度量为88.32

预训练模型3:Text-to-Text Transfer Transformer(T5)

老实说,与其余模型相比,我在学习这个模型上得到了最大的乐趣。Google的Text-to-Text Transfer Transformer(T5)模型将迁移学习用于各类NLP任务。

最有趣的部分是它将每一个问题转换为文本输入—文本输出模型。因此,即便对于分类任务,输入是文本,输出也将是文本而不是一个标签。这能够归结为全部任务的单一模型。不只如此,一个任务的输出能够用做下一个任务的输入。

该语料库使用了Common Crawls的加强版本。这基本上是从网上刮来的文字。本文实际上强调了清理数据的重要性,并清楚地说明了这是如何作到的。虽然收集到的数据每个月产生20TB的数据,但这些数据中的大多数并不适合NLP任务。

即便只保留文本内容(包含标记、代码内容等的页面已被删除),该语料库的大小仍高达750GB,远远大于大多数数据集。

注意:这已经在TensorFlow上发布了:https://www.tensorflow.org/datasets/catalog/c4。

将要执行的任务与输入一块儿编码为前缀。如上图所示,不管是分类任务仍是回归任务,T5模型仍会生成新文本以获取输出。

T5在20多个已创建的NLP任务上实现了SOTA——这是不多见的,并且从度量标准来看,它尽量接近人类的输出。

T5模型跟踪了最近关于未标记数据的训练趋势,而后在标记文本上微调该模型。能够理解的是,这个模型是巨大的,可是咱们颇有兴趣看到进一步研究如何缩小这种模型的规模,以得到更普遍的使用和分布。

预训练模型4:BPT

正如咱们目前所看到的,Transformer架构在NLP研究中很是流行。BP Transformer再次使用了Transformer,或者更确切地说是它的一个加强版本,用于文本分类、机器翻译等。

然而,使用Transformer仍然是一个昂贵的过程,由于它使用自我注意机制。自我注意只是指咱们对句子自己进行注意操做,而不是两个不一样的句子。自我注意有助于识别句子中单词之间的关系。正是这种自我关注机制致使了使用Transformer的成本。

Binary-Partitioning Transformer (BPT)将Transformer看做一个图形神经网络,旨在提升自注意力机制的效率。实际上,此图中的每一个节点都表示一个输入标记。

BP Transformer的工做原理:

第一步:递归地把句子分红两部分,直到达到某个中止条件为止。这称为二元分区。所以,例如,“I like going to New York”这句话将有如下几个部分:

  • I like going; to New York
  • I like; going; to New; York
  • I; like; going; to; New; York

注意:一个包含n个单词的句子将有2*n–1个分区,最后,你将获得一个完整的二叉树。

第二步:如今每一个分区都是图神经网络中的一个节点。能够有两种类型的边:

  • 链接父节点及其子节点的边
  • 链接叶节点与其余节点的边

第三步:对图的每一个节点及其相邻节点执行自注意:

BPT实现了:

  • 在中英机器翻译上达到了SOTA的成绩(BLEU评分:19.84)
  • IMDb数据集情绪分析的准确率为92.12(结合GloVE embedding)

我很欣赏这个模型,由于它使我从新审视了图的概念,并使我勇于研究图神经网络。我确定会在不久的未来探索更多的图形神经网络!

预训练模型 5:NABoE

神经网络一直是NLP任务最受欢迎的模型,而且其性能优于更传统的模型。此外,在从语料库创建知识库的同时用单词替换实体能够改善模型学习。

这意味着,咱们不是使用语料库中的单词来构建词汇表,而是使用实体连接来构建大量实体。虽然已有研究将语料库表示为模型,但NABoE模型更进一步:

  1. 使用神经网络检测实体
  2. 使用注意力机制来计算被检测实体的权重(这决定了这些实体与文档的相关性)

实体模型的神经注意包使用Wikipedia语料库来检测与单词相关的实体。例如,单词“Apple”能够指水果、公司和其余可能的实体。检索全部这些实体后,使用基于softmax的注意力函数计算每一个实体的权重。这提供了只与特定文档相关的实体的一个更小的子集。

最后,经过向量嵌入和与词相关的实体的向量嵌入,给出了词的最终表示。

NABoE模型在文本分类任务中表现得特别好:

预训练模型6:Rethinking Complex Neural Network Architectures for Document Classification

如今,在研究了这么多的高级的预训练模型以后,咱们要反其道而行之,咱们要讨论一个使用老的双向LSTM的模型来实现SOTA性能。但这正是我最后决定介绍它的缘由。

咱们经常由于几棵树木而错过森林。咱们每每忘记,一个简单的调优的模型可能会得到与这些复杂的深度学习模型同样好的结果。本文的目的就是要说明这一点。

双向LSTM和正则化的组合可以在IMDb文档分类任务上实现SOTA的性能。

本文最有趣和值得注意的方面是:

  • 它不使用注意力机制
  • 这是第一篇使用LSTM +正则化技术进行文档分类的论文

这个简约的模型使用Adam优化器,temporal averaging和dropouts来达到这个高分。本文将这些结果与其余深度学习模型进行了实证比较,证实了该模型简单有效,而且结果说明了一切:

对于行业而言,这种模型能够被认为是一种新颖的方法,在该行业中,构建可用于生产的模型而且在指标上取得高分很是重要。

结尾

在这里,咱们讨论了最近在文本分类中达到最新基准的6种预训练模型。这些NLP模型代表还有更多的模型,我将期待今年学习它们。

全部这些研究中的一个使人敬畏的要素是这些预训练模型的可用性和开源性质。以上全部模型都有一个GitHub存储库,能够用于实现。另外一个不可忽视的方面是它们在PyTorch上也可用。这强调了PyTorch正在快速取代TensorFlow做为构建深度学习模型的平台。

我鼓励你在各类数据集上尝试这些模型,并进行实验以了解它们的工做原理。

原文连接:https://www.analyticsvidhya.com/blog/2020/03/6-pretrained-models-text-classification/

欢迎关注磐创AI博客站:
http://panchuang.net/

sklearn机器学习中文官方文档:
http://sklearn123.com/

欢迎关注磐创博客资源汇总站:
http://docs.panchuang.net/

相关文章
相关标签/搜索