6个你应该用用看的用于文本分类的最新开源预训练模型

2024-06-21 08:58

本文主要是介绍6个你应该用用看的用于文本分类的最新开源预训练模型,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

点击上方“AI公园”,关注公众号,选择加“星标“或“置顶”


作者:PURVA HUILGOL

编译:ronghuaiyang

导读

文本分类是NLP的基础任务之一,今天给大家介绍6个最新的预训练模型,做NLP的同学一定要用用看。

介绍

我们正站在语言和机器的交汇处。我对这个话题很感兴趣。机器能写得和莎士比亚一样好吗?如果一台机器可以提高我自己的写作技能呢?机器人能听懂讽刺的话吗?

我相信你以前问过这些问题。自然语言处理(NLP)的另一目的是为了回答这些问题,我必须说,在这个领域已经有了突破性的研究成果来拉近人和机器之间的差距了。

NLP的核心思想之一是文本分类。如果机器可以区分名词和动词,或者如果它可以通过评论检测客户是否对产品满意,我们可以使用这种理解能力用在其他高级NLP等任务上,比如上下文理解,或者生成一个全新的故事!

这就是我们看到很多关于文本分类的研究的主要原因。是的,迁移学习的出现无疑帮助加速了研究。现在,我们可以使用在大型数据集上构建的预训练的模型,并对其进行调优,以实现不同数据集上的其他任务。

迁移学习和预训练的模型有两个主要优势:

  1. 它降低了训练新的深度学习模型的成本

  2. 这些数据集是被行业接受的标准,因此预训练的模型在质量方面已经得到了检验

你可以看到为什么预训练的模特越来越受欢迎。我们看到的谷歌BERT和OpenAI的GPT-2在这方面就做的很好。在本文中,我将介绍6种最先进的文本分类预训练模型。

我们的文本分类预训练模型包括:

  • XLNet

  • ERNIE

  • Text-to-Text Transfer Transformer (T5)

  • Binary Partitioning Transfomer (BPT)

  • Neural Attentive Bag-of-Entities (NABoE)

  • Rethinking Complex Neural Network Architectures

预训练模型 #1: XLNet

说到最先进的预训练模型,就不能不提XLNet!

谷歌的最新模型,XLNet在NLP的主要任务上比如文本分类,情感分析,问答,以及自然语言推理上都达到最先进的水平。不仅仅在文本分类上击败了BERT,还包括高级的NLP任务。

XLNet的核心思想是:

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

  2. Transformer-XL

如果这听起来很复杂,不要担心!我会用简单的语言来解释。

自回归建模使用问题中缺失单词之前或之后的上下文单词来预测下一个单词。但是,我们不能同时处理向前和向后两个方向。

尽管BERT的自动编码器确实解决了这方面的问题,但它也有其他的缺点,比如假设mask掉的单词之间没有相关性。为了解决这个问题,XLNet提出了一种称为排列语言建模的技术。这种技术使用排列来同时从正向和反向产生信息。

众所周知,Transformer结构是一个改变游戏规则的工具。XLNet使用Transformer XL。正如我们所知,Transformer替代了递归神经网络(RNN),允许不相邻的tokens同时进行处理。这提高了对文本中长距离关系的理解。Transformer-XL基本上是BERT中使用的Transformer的增强版,增加了两个组件:

  1. 特定片段的递归,给出两个序列之间的上下文

  2. 一种相对位置的嵌入,它包含两个tokens之间的相似性信息

如前所述,XLNet几乎在所有任务(包括文本分类)上都优于BERT,并且在其中18个任务上实现了SOTA的性能!下面是对文本分类任务的总结,以及XLNet如何在这些不同的数据集上执行,以及它在这些数据集上取得的高排名:

![](Top 6 Open Source Pretrained Models for Text Classification you should use.assets/XLNet_Perf.png)

  • 论文链接: XLNet: Generalized Autoregressive Pretraining for Language Understanding

  • Github链接: https://github.com/zihangdai/xlnet

预训练模型 #2: ERNIE

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

ERNIE的意思是Enhanced Representation through kNowledge IntEgration,ERNIE 2.0是ERNIE 1.0的升级版。ERNIE 1.0在它自己的方式上是开创性的 —— 它是第一个利用知识图谱的模型之一。这种集成进一步增强了高级任务的训练模型,如关系分类和命名实体识别(NER)。

与之前的版本一样,ERNIE 2.0带来了另一项创新,即递增的多任务学习。基本上,这意味着模型已经定义了7个明确的任务,并且

  • 可以同时生成多个任务的输出。例如,完成句子“I like going to New…”—>“I like going to New York”,并将其归类为有积极情绪的句子。合并任务的损失也相应计算。

  • 递增地使用前一个任务的输出到下一个任务。例如,将Task 1的输出作为Task 1、Task 2的训练,为此,Task 1和Task 2用于训练Task 1、Task 2和Task 3……等等。

我真的很喜欢这个过程,非常的直观,因为它遵循了人类理解文本的方式。我们的大脑不仅认为“I like going to New York”是一个积极情绪的句子,是不是?它同时理解了名词“New York”和“I”,理解了“like”这个动词,并推断出New York是一个地方。

ERNIE在关系提取任务中获得了88.32的SOTA的F1-Score

  • 论文链接:https://arxiv.org/pdf/1905.07129v3.pdf

  • Github链接:https://github.com/thunlp/ERNIE

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

说实话,与其他模型相比,研究这个模型最有趣。谷歌新的Text-to-Text Transfer Transformer (T5)模型使用Transfer learning来完成各种NLP任务。

最有趣的部分是它将每个问题转换为文本输入—文本输出模型。因此,即使对于分类任务,输入也将是文本,输出也将是单词而不是标签。这可以归结为所有任务上的一个模型。不仅如此,一个任务的输出可以用作下一个任务的输入。

语料库使用普通抓取的增强版本。基本上就是从web上抓取文本。这篇论文强调了清理数据的重要性,并清楚地说明了这是如何做到的。虽然抓取的数据每个月生成20TB的数据,但是大部分数据并不适合NLP任务。

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

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

要执行的任务被编码为输入的前缀。正如你在上面的图表中所看到的,不管是分类还是回归任务,T5模型仍然会生成新的文本来获得输出。

T5在超过20个已建立的NLP任务上实现了SOTA —— 这是很少见的,看看指标,它和人类的输出非常接近。

T5模型跟随了最近的趋势,对未标注的数据进行了训练,然后对标注文本进行微调。可以理解的是,这个模型是巨大的,但是可以看到对它进行进一步的研究,缩小这个模型是非常有趣的,可以让它得到更广泛的使用。

  • 论文链接:https://arxiv.org/pdf/1910.10683.pdf

  • Github链接:https://github.com/googl-research/text-to-text-transfer-transformer

预训练模型 #4: Binary-Partitioning Transformer (BPT)

正如我们到目前为止所看到的,Transformer architecture在NLP研究中非常流行。BP Transformer 再次使用Transformer,或者更确切地说,使用它的一个增强版本来进行文本分类,机器翻译等等。

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

Binary-Partitioning Transformer (BPT)将Transformer 视为一个图神经网络,旨在提高自注意力机制的效率。本质上,这个图中的每个节点表示一个输入token。

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)

我很欣赏这个模型,因为它让我重新审视了图的概念,让我敢于去研究图神经网络。我承认我来晚了,但在不久的将来,我一定会在图神经网络上进行更多的探索!

  • 论文链接:https://arxiv.org/pdf/1911.04070v1.pdf

  • Github链接:https://github.com/yzh119/BPT

预训练模型 #5: Neural Attentive Bag-of-Entities Model for Text Classification (NABoE)

神经网络一直是最受欢迎的NLP任务模型,它们的表现优于传统的模型。此外,在构建语料库知识库的同时,用单词代替实体,也改善了模型de 学习。

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

  1. 使用神经网络来检测实体

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

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

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

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

  • 论文链接: Neural Attentive Bag-of-Entities Model for Text Classification

  • Github链接: https://github.com/wikipedia2vec/wikipedia2vec/tree/master/examples/text_classification

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

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

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

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

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

  1. 它不使用注意力机制

  2. 这是第一篇结合LSTM +正则化方法进行文档分类的论文

这个最小的模型使用Adam优化器,temporal averaging和dropouts,得到了很高的分数。本文将这些结果与其他深度学习模型进行了实证比较,证明了该模型简单有效,结果不言自明:

这种模型可以被认为是一种新的行业方法,在这个行业中,构建可生产的模型并在你的度量标准上获得高分是很重要的。

  • 论文链接: Rethinking Complex Neural Network Architectures for Document Classification

  • Github链接: https://github.com/castorini/hedwig

结束语

在这里,我们讨论了最近在文本分类中达到SOTA的6个预训练模型。这些NLP模型表明,还有更多的模型有待开发,我期待着今年了解它们。

所有这些研究中一个非常好的地方是这些预训练好的模型的可用性和开源性。上述所有模型都有一个GitHub仓库,可以用于实现。另一个不能忽视的方面是,它们也可以在PyTorch上找到。PyTorch正在迅速取代TensorFlow作为构建你的深度学习模型的平台。

我鼓励你在各种数据集上尝试这些模型,并对它们进行试验,以了解它们是如何工作的。如果你心中已经有了一些和去年一样酷但没有引起注意的模型,请在下面的评论中提及它们!

—END—

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

请长按或扫描二维码关注本公众号

喜欢的话,请给我个好看吧

这篇关于6个你应该用用看的用于文本分类的最新开源预训练模型的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1080778

相关文章

RedHat运维-Linux文本操作基础-AWK进阶

你不用整理,跟着敲一遍,有个印象,然后把它保存到本地,以后要用再去看,如果有了新东西,你自个再添加。这是我参考牛客上的shell编程专项题,只不过换成了问答的方式而已。不用背,就算是我自己亲自敲,我现在好多也记不住。 1. 输出nowcoder.txt文件第5行的内容 2. 输出nowcoder.txt文件第6行的内容 3. 输出nowcoder.txt文件第7行的内容 4. 输出nowcode

一份LLM资源清单围观技术大佬的日常;手把手教你在美国搭建「百万卡」AI数据中心;为啥大模型做不好简单的数学计算? | ShowMeAI日报

👀日报&周刊合集 | 🎡ShowMeAI官网 | 🧡 点赞关注评论拜托啦! 1. 为啥大模型做不好简单的数学计算?从大模型高考数学成绩不及格说起 司南评测体系 OpenCompass 选取 7 个大模型 (6 个开源模型+ GPT-4o),组织参与了 2024 年高考「新课标I卷」的语文、数学、英语考试,然后由经验丰富的判卷老师评判得分。 结果如上图所

大语言模型(LLMs)能够进行推理和规划吗?

大语言模型(LLMs),基本上是经过强化训练的 n-gram 模型,它们在网络规模的语言语料库(实际上,可以说是我们文明的知识库)上进行了训练,展现出了一种超乎预期的语言行为,引发了我们的广泛关注。从训练和操作的角度来看,LLMs 可以被认为是一种巨大的、非真实的记忆库,相当于为我们所有人提供了一个外部的系统 1(见图 1)。然而,它们表面上的多功能性让许多研究者好奇,这些模型是否也能在通常需要系

雨量传感器的分类和选型建议

物理原理分类 机械降雨量计(雨量桶):最早使用的降雨量传感器,通过漏斗收集雨水并记录。主要用于长期降雨统计,故障率较低。电容式降雨量传感器:基于两个电极之间的电容变化来计算降雨量。当降雨时,水滴堵住电极空间,改变电容值,从而计算降雨量。超声波式降雨量传感器:利用超声波的反射来计算降雨量。适用于大降雨量的场合。激光雷达式降雨量传感器:利用激光技术测量雨滴的速度、大小和形状等参数,并计算降雨量。主

人工和AI大语言模型成本对比 ai语音模型

这里既有AI,又有生活大道理,无数渺小的思考填满了一生。 上一专题搭建了一套GMM-HMM系统,来识别连续0123456789的英文语音。 但若不是仅针对数字,而是所有普通词汇,可能达到十几万个词,解码过程将非常复杂,识别结果组合太多,识别结果不会理想。因此只有声学模型是完全不够的,需要引入语言模型来约束识别结果。让“今天天气很好”的概率高于“今天天汽很好”的概率,得到声学模型概率高,又符合表达

时间服务器中,适用于国内的 NTP 服务器地址,可用于时间同步或 Android 加速 GPS 定位

NTP 是什么?   NTP 是网络时间协议(Network Time Protocol),它用来同步网络设备【如计算机、手机】的时间的协议。 NTP 实现什么目的?   目的很简单,就是为了提供准确时间。因为我们的手表、设备等,经常会时间跑着跑着就有误差,或快或慢的少几秒,时间长了甚至误差过分钟。 NTP 服务器列表 最常见、熟知的就是 www.pool.ntp.org/zo

智能客服到个人助理,国内AI大模型如何改变我们的生活?

引言 随着人工智能(AI)技术的高速发展,AI大模型越来越多地出现在我们的日常生活和工作中。国内的AI大模型在过去几年里取得了显著的进展,不少独创的技术点和实际应用令人瞩目。 那么,国内的AI大模型有哪些独创的技术点?它们在实际应用中又有哪些出色表现呢?此外,普通人又该如何利用这些大模型提升工作和生活的质量和效率呢?本文将为你一一解析。 一、国内AI大模型的独创技术点 多模态学习 多

探索Elastic Search:强大的开源搜索引擎,详解及使用

🎬 鸽芷咕:个人主页  🔥 个人专栏: 《C++干货基地》《粉丝福利》 ⛺️生活的理想,就是为了理想的生活! 引入 全文搜索属于最常见的需求,开源的 Elasticsearch (以下简称 Elastic)是目前全文搜索引擎的首选,相信大家多多少少的都听说过它。它可以快速地储存、搜索和分析海量数据。就连维基百科、Stack Overflow、

基于CTPN(tensorflow)+CRNN(pytorch)+CTC的不定长文本检测和识别

转发来源:https://swift.ctolib.com/ooooverflow-chinese-ocr.html chinese-ocr 基于CTPN(tensorflow)+CRNN(pytorch)+CTC的不定长文本检测和识别 环境部署 sh setup.sh 使用环境: python 3.6 + tensorflow 1.10 +pytorch 0.4.1 注:CPU环境

YOLO v3 训练速度慢的问题

一天一夜出了两个模型,仅仅迭代了200次   原因:编译之前没有将Makefile 文件里的GPU设置为1,编译的是CPU版本,必须训练慢   解决方案: make clean  vim Makefile make   再次训练 速度快了,5分钟迭代了500次