Deep Learning Based Text Classification: A Comprehensive Review—part 1
Deep Learning Based Text Classification: A Comprehensive Review—part 1
阅读笔记|2022-4-17|最后更新: 2023-1-27
 
type
Post
status
Published
date
Apr 17, 2022
summary
本文对近年来发展起来的150多个基于深度学习的文本分类模型进行了全面的回顾,并讨论了它们在技术上的贡献、相似之处和优势
tags
paper summary
Machine Learning
category
阅读笔记
password
slug
icon
  • Shervin Minaee, Nal Kalchbrenner, Erik Cambria, Narjes Nikzad,Meysam Chenaghlu,Jianfeng Gao
  • ACM Computing Surveys
  • https://doi.org/10.1145/3439726
 
在本文中,我们对近年来发展起来的150多个基于深度学习的文本分类模型进行了全面的回顾,并讨论了它们在技术上的贡献、相似之处和优势
 
 

INTRODUCTION

文字是极其丰富的信息来源。但是,由于文本的非结构化特性,从文本中提取见解既具有挑战性,又耗时。文本分类可以通过手动标注或自动标注来实现。随着工业应用中文本数据规模的不断扩大,文本自动分类变得越来越重要。自动文本分类方法可分为两大类:
  • 基于规则的方法(需要深入的领域知识)
  • 基于机器学习(数据驱动)的方法(学习文本及其标签之间的内在联系)
 
大多数经典的基于机器学习的模型遵循两步过程。
在第一步中,从文档(或任何其他文本单元)中提取一些手工制作的特征。
在第二步中,将这些特征输入分类器进行预测。
 
流行的手工制作功能包括词袋(BoW)及其扩展。常用的分类算法包括Naïve Bayes、支持向量机(SVM)、隐马尔可夫模型(HMM)、梯度增强树和随机森林。
两步方法有几个局限性。例如,依赖于手工制作的特征需要繁琐的特征工程和分析来获得良好的性能。此外,由于特征设计对领域知识的依赖性很强,使得该方法难以推广到新的任务中。最后,这些模型不能充分利用大量的训练数据,因为特征(或特征模板)是预先定义的。
 
神经学方法已经被探索来解决由于手工特征的使用所带来的限制。这些方法的核心组件是一个机器学习嵌入模型,该模型将文本映射为低维连续特征向量,因此不需要手工制作特征。最早的嵌入模型之一是Dumais et al.[1]在1989年开发的潜在语义分析(LSA)。LSA是一个参数小于100万的线性模型,训练于200K字。2001年,Bengio et al.[2]提出了第一个基于1400万个单词训练的前馈神经网络的神经语言模型。然而,这些早期的嵌入模型的性能不如经典模型,使用手工制作的特征,因此没有被广泛采用。当使用大量的训练数据开发出更大的嵌入模型时,范式的转变就开始了。
 
2013年,谷歌开发了一系列的word2vec模型[3],这些模型经过60亿个单词的训练后,立即在许多NLP任务中流行起来。2017年,AI2和华盛顿大学的团队开发了一种基于3层双向LSTM的语境嵌入模型,该模型使用93M参数对1B单词进行训练。这个被称为ELMo的模型比word2vec好用得多,因为它能捕获上下文信息。2018年,OpenAI开始使用Transformer构建嵌入模型,这是谷歌开发的一种新的神经网络架构。Transformer完全基于注意力,大大提高了TPU上大规模模型训练的效率。他们的第一个模型被称为GPT,现在广泛用于文本生成任务。同年,谷歌开发了基于双向transformer的BERT。BERT由340M参数组成,使用33亿个单词进行训练,是目前最先进的嵌入模型。使用更大模型和更多训练数据的趋势仍在继续。到本文发表时,OpenAI最新的GPT-3模型包含1700亿个参数,谷歌的GShard包含6000亿个参数。
 
尽管这些巨大的模型在各种NLP任务中表现出了令人印象深刻的表现,但一些研究人员认为它们并不能真正理解语言,对于许多任务关键领域来说不够健壮。最近,人们对探索神经-符号混合模型(如越来越感兴趣,以解决神经模型的一些基本限制,如缺乏基础,不能执行符号推理,不可解释。这些作品虽然重要,但超出了本文的范围。
 
本文的贡献可以总结如下:
  • 我们提出了一个详细的概述超过150 DL模型提出的文本分类。
  • 我们回顾了40多个流行的文本分类数据集
  • 我们对选定的DL模型在16个流行基准上的性能进行了定量分析
  • 我们讨论了剩下的挑战和未来的方向
 
目前主流的五个TC方向:
  • 情绪分析。这是在文本数据(例如,产品评论、电影评论或推特)中分析人们的观点,并提取他们的极性和观点的任务。任务可以转换为二进制或多类问题。二元情感分析将文本分为积极和消极两类,多级情感分析将文本分为细粒度的标签或多层次的强度。
  • 新闻分类。新闻内容是最重要的信息来源之一。新闻分类系统可以帮助用户实时获取感兴趣的信息,例如,识别新兴的新闻话题,或者根据用户的兴趣推荐相关的新闻。
  • 主题分析。该任务也称为主题分类,目的是确定文本的主题或主题(例如,产品评论是关于“客户支持”还是“易用性”)。
  • 问题回答(QA)。QA任务有两种类型:抽取式和生成式。抽取式QA是一项TC任务:给定一个问题和一组候选答案(例如,SQuAD[24]中文档中的文本范围),系统将每个候选答案分类为正确或错误。生成式QA是一种文本生成任务,因为它需要动态地生成答案。本文仅讨论萃取质量保证问题。
  • 自然语言推理(NLI)。NLI,也被称为识别文本蕴含(RTE),预测一个文本的含义是否可以从另一个文本推断出来。NLI系统需要给一对文本单元分配一个标签,比如包含、矛盾和中立的。释义是NLI的一种广义形式,也被称为文本对比较,它的任务是测量句子对的语义相似性,表明一个句子对另一个句子的释义的可能性有多大
 

2 DEEP LEARNING MODELS FOR TEXT CLASSIFICATION

本节回顾了为各种TC任务提出的超过150个DL模型。
在2.11节中,我们回顾了超越监督学习的建模技术,包括使用自动编码器和对抗训练的无监督学习,以及强化学习。读者可以参考Goodfellow et al.[26]编写的DL教科书以了解更多细节
 

2.1 Feed-Forward Neural Network

前馈网络是文本表示中最简单的DL模型之一。然而,他们已经在许多TC基准上实现了高精度。这些模型将文本视为一堆单词。对于每个单词,他们使用一个嵌入模型学习向量表示,比如word2vec或Glove,取嵌入的向量和或平均值作为文本的表示,将其传递到一个或多个前馈层,称为多层感知器(MLPs),然后使用logistic回归、Naïve Bayes或SVM[29]等分类器对最后一层的表示进行分类。
这些模型的一个例子是深度平均网络(DAN),其架构如图1所示。尽管简单,但DAN的表现优于其他更复杂的模型,这些模型旨在明确地了解文本的构成。例如,DAN在句法方差高的数据集上表现优于句法模型。
notion image
Joulin et al.提出了一种简单而有效的文本分类器,称为fastText。和DAN一样,fastText将文本视为一堆单词。与DAN不同,fastText使用一袋n-gram作为附加功能来捕获局部词序信息。在实践中,这被证明是非常有效的,可以获得与显式使用词序的方法相当的结果。
 
Le和Mikolov[32]提出了doc2vec,该算法使用无监督算法来学习可变长度文本片段(如句子、段落和文档)的固定长度特征表示。如图2所示,doc2vec的体系结构类似于CBOW (Continuous Bag of Words)模型[3,27]。唯一的区别是额外的段落标记通过矩阵𝐷映射到段落向量。在doc2vec,将该向量与包含三个单词的上下文中的连接或平均值用于预测第四个单词。段落向量表示当前上下文中缺失的信息,可以作为段落主题的记忆。经过训练后,段落向量被用作段落的特征(例如,代替或补充BoW),并提供给分类器进行预测。Doc2vec在多个TC任务上获得了SOTA水平。
notion image

2.2 RNN-Based Models

基于rnn的模型将文本视为一个单词序列,旨在为TC捕获单词依赖关系和文本结构。然而,普通的RNN模型表现不佳,而且常常不如前馈神经网络。在rnn的许多变体中,LSTM是最流行的体系结构,其设计目的是为了更好地捕获长期依赖关系。LSTM解决了普通rnn所面临的梯度消失或爆炸问题,它通过引入一个记忆单元来记忆任意时间间隔的值,以及三个门(输入门、输出门、遗忘门)来调节信息进出细胞的流动。通过捕获更丰富的信息,如自然语言的树形结构、文本中的长跨度词关系、文档主题等,对TC的RNNs和LSTM模型进行了改进。
Tai et al.开发了一个Tree-LSTM模型,将LSTM推广到树状结构的网络类型,以学习丰富的语义表示。作者认为,对于NLP任务来说,Tree-LSTM是一个比链式LSTM更好的模型,因为自然语言展示了可以自然地将单词组合成短语的句法属性。他们在两个任务上验证了Tree-LSTM的有效性:情感分类和预测两个句子的语义相关度。这些模型的体系结构如图3所示。
Zhu等人的[34]也将链结构的LSTM扩展到树结构,使用一个存储单元来存储递归过程中多个子单元或多个后代单元的历史。他们认为,新的模型提供了一种原则性的方式来考虑跨层次的远程交互,例如语言或图像解析结构
 
为了为机器阅读建立长跨度的词关系模型,Cheng等人在LSTM架构上增加了一个内存网络,而不是一个单一的存储单元。这使得神经注意在递归过程中能够自适应地使用记忆,提供了一种弱诱导标记之间关系的方法。该模型在语言建模、情感分析和NLI等方面都取得了良好的效果。多时间尺度LSTM (MT-LSTM)神经网络[36]也被设计用于建模较长的文本,如句子和文档,通过捕获不同时间尺度的有价值信息。MT-LSTM将标准LSTM模型的隐藏状态划分为几个组。每个组在不同的时间被激活和更新。因此,MT-LSTM可以为非常长的文档建模。据报道,MT-LSTM在TC上优于一组基线,包括基于LSTM和RNN的模型。rnn擅长捕捉单词序列的局部结构,但在记忆长期依赖关系时却面临困难。相反,潜在主题模型能够捕获文档的全局语义结构,但不考虑单词的顺序。
Dieng et al.[37]提出了一种TopicRNN模型,融合了rnn和潜在话题模型的优点。它使用RNNs捕获局部(语法)依赖,使用潜在主题捕获全局(语义)依赖。据报道,TopicRNN在情绪分析方面优于RNN基线。还有其他有趣的基于rnn的模型。Liu等人使用多任务学习来训练rnn,以利用多个相关任务中的标记训练数据。Johnson和Rie[39]研究了一种使用LSTM的文本区域嵌入方法。Zhou等人[40]将双向lstm (Bi-LSTM)模型与二维maxpooling相结合来捕获文本特征。Wang et al.[41]提出了“匹配-聚合”框架下的双边多视角匹配模型。Wan等人使用双向LSMT模型生成的多个位置句子表示来研究语义匹配。值得注意的是,神经网络属于神经网络的一个大类,即递归神经网络。递归神经网络将同一组权值递归地应用于结构输入,以在变大小的输入上产生结构化预测或向量表示。rnn是具有线性链结构输入的递归神经网络,而递归神经网络则是在层次结构上运行的,例如自然语言句子[43]的解析树,将子表示形式组合成父表示形式。rnn是最流行的递归神经网络,因为它们有效且易于使用——它们将文本视为标记序列,而不需要额外的结构标签,如解析树
 

2.3 CNN-Based Models

rnn被训练跨越时间来识别模式,而cnn学习跨越空间[44]来识别模式。rnn可以很好地完成NLP任务,比如需要理解长线语义的POS标记或QA,而cnn可以很好地完成检测局部位置不变模式的任务。这些模式可以是表达特定情绪的关键短语,如“我喜欢”或主题,如“濒危物种”。因此,cnn已成为最流行的TC模型体系结构之一。第一个基于cnn的TC模型是由Kalchbrenner等人提出的。该模型使用动态𝑘-max-pooling,称为动态CNN (DCNN)。如图4所示,DCNN第一层利用句子中每个单词的嵌入来构建句子矩阵。然后,使用一种卷积体系结构,将宽卷积层与动态𝑘-max-pooling给出的动态池化层交替使用,生成句子的特征图,该特征图能够明确地捕获单词和短语的短期和长期关系。池参数𝑘可以根据句子大小和卷积层次结构中的级别动态选择。
 
 
后来,Kim[46]为TC提出了一个比DCNN更简单的基于cnn的模型。如图5所示,Kim的模型在无监督神经语言模型得到的单词向量上只使用了一层卷积,即:, word2vec。Kim还比较了四种不同的单词嵌入学习方法:(1)CNN-rand,其中所有的单词嵌入都是随机初始化的,然后在训练过程中进行修改;(2) CNN-static,使用预训练的word2vec嵌入,在模型训练过程中保持固定;(3) cnn -非静态,在训练过程中对每个任务的word2vec嵌入进行微调;(4) CNN-multi-channel,其中使用两组词嵌入向量,均使用word2vec进行初始化,其中一组在模型训练时更新,另一组固定。
据报道,这些基于cnn的模型改进了情感分析和问题分类的现状。对基于cnn的模型的体系结构进行了改进[45,46]。
notion image
 
Liu等人[47]提出了一种新的基于cnn的模型,该模型对Kim-CNN[46]的体系结构进行了两次修改。首先,采用动态最大池方案从文档的不同区域捕获更多的细粒度特征。其次,在池和输出层之间插入一个隐藏的瓶颈层,学习紧凑的文档表示,以减少模型大小和提高模型性能。在[48,49]中,作者没有使用预先训练好的低维词向量作为cnn的输入,而是直接将cnn应用到高维文本数据上,学习小文本区域的嵌入情况进行分类。字符级cnn也被用于TC[50,51]。第一个这样的模型是由Zhang等人提出的。如图6所示,模型以固定大小、编码为1 -hot向量的字符作为输入,将其传递给一个深度CNN模型,该模型由包含池化操作的6个卷积层和3个完全连接层组成。Prusa等人提出了一种使用cnn编码文本的方法
 
这大大减少了记忆消耗和学习字符级文本表示所需的训练时间。这种方法可以很好地扩展字母大小,允许保留来自原始文本的更多信息,以提高分类性能。
 
也有关于单词嵌入和CNN架构对模型性能影响的研究。受VGG[53]和ResNets[54]的启发,Conneau等人[55]提出了一种用于文本处理的Very Deep CNN (VDCNN)模型。它直接在字符级进行操作,只使用小的卷积和池化操作。本研究表明,VDCNN的性能随着深度的增加而提高。Duque等人[56]修改了VDCNN的结构,以适应移动平台的约束,而不会有太大的性能退化。他们能够将模型尺寸压缩10到20倍,精度损失在0.4%到1.3%之间。Le et al.[57]表明,当文本输入以字符序列表示时,深层模型确实优于浅层模型。然而,一个简单的浅层和宽层网络优于像DenseNet[58]这样有文字输入的深度模型。Guo等人[59]研究了词嵌入的影响,并通过一个多通道CNN模型提出了加权词嵌入。Zhang等人的[60]研究了不同词嵌入方法和池化机制的影响,发现使用非静态word2vec和GloVe的性能优于单热向量,而max-pooling的性能始终优于其他池化方法。还有其他有趣的基于cnn的模型。Mou等人[61]提出了一种基于树的CNN来捕获句子级语义。Pang等[62]将文本匹配作为图像识别任务,并使用多层cnn来识别显著的n-gram模式。Wang等人[63]提出了一种基于cnn的模型,该模型结合了短文本的显式和隐式表示。将cnn应用于生物医学文本分类的兴趣也越来越大[64-67]
 

2.4 Capsule Neural Networks

cnn通过使用卷积和池化的连续层对图像或文本进行分类。虽然池化操作可以识别显著特征并降低卷积操作的计算复杂度,但它们会丢失关于空间关系的信息,并可能根据实体的方向或比例对其进行错误分类。
为了解决池化问题,Hinton等人提出了一种新的方法,称为胶囊网络(capsnet)[68,69]。
胶囊是一组神经元,其活动向量表示特定实体类型(如对象或对象部件)的不同属性。向量的长度表示实体存在的概率,向量的方向表示实体的属性。与cnn的max-pooling选择部分信息,丢弃部分信息不同,胶囊将底层的每个胶囊“路由”到上层的最佳父胶囊,利用网络中所有可用的信息直到最后一层进行分类。路由可以使用不同的算法实现,如动态协议路由[69]或EM算法[70]。
 
最近,胶囊网络已经被应用到TC中,胶囊被用来表示一个句子或文档作为一个向量。[71-73]提出了一种基于capsnet变种的TC模型。该模型由四个层组成:(1)n-gram卷积层,(2)胶囊层,(3)卷积胶囊层,(4)全连接的胶囊层。作者试验了三种策略来稳定动态路由过程,以减轻噪声胶囊的干扰,这些噪声胶囊包含背景信息,如停止词或与任何文档类别无关的词。他们还探索了两种胶囊结构,胶囊a和胶囊b,如图7所示。胶囊a类似于[69]中的CapsNet。在n-gram卷积层中,Capsule-B使用三个具有不同窗口大小的过滤器的并行网络来学习更全面的文本表示。CapsNet-B在实验中表现较好
 
Kim等人[74]提出的基于capsnet的模型采用了类似的体系结构。该模型包括(1)输入层,该层将文档作为单词嵌入序列;(2)卷积层,生成特征映射,并使用门控线性单元保存空间信息;(3)卷积胶囊层,通过聚合卷积层检测到的局部特征形成全局特征;(4)文字胶囊层预测类标签。作者观察到,物体在文本中比在图像中更自由地组合。例如,即使某些句子的顺序发生了变化,文档的语义也可以保持不变,这与人类脸上眼睛和鼻子的位置不同。因此,他们使用了静态路由模式,对TC来说,静态路由模式的性能始终优于动态路由[69]。Aly等人[75]提出使用CapsNet进行分层多标签分类(HMC),认为CapsNet编码子-父关系的能力使其比传统方法更好地解决HMC任务,在HMC任务中,文档被分配一个或多个分类标签,组织在一个分层结构中。他们的模型架构与[71,72,74]中的相似。Ren等人[76]提出了capsnet的另一种变体,使用胶囊和基于𝑘-means聚类的新路由算法之间的组合编码机制。首先,利用码本中所有的码字向量进行字嵌入。然后,通过𝑘-means路由将低级胶囊捕获的特性聚合到高级胶囊中。
 

2.5 Models with Attention Mechanism

注意力的动机是我们如何对图像的不同区域进行视觉关注,或者将一个句子中的单词联系起来。在开发NLP的DL模型时,注意力成为一个越来越流行的概念和有用的工具[77,78]。
 
简而言之,语言模型中的注意力可以被解释为一个权重向量
为了预测句子中的一个单词,我们使用注意力向量估计它与或“注意”其他单词的相关性有多强,并将它们的值由注意力向量加权的总和作为目标的近似值。
 
本节回顾了一些最著名的注意力模型,它们在TC任务发布时创造了新的技术状态。Yang等人[79]提出了一种用于文本分类的层次注意网络。这个模型有两个鲜明的特点:
(1)层次结构反映文档的层次结构
(2)两个级别的注意机制应用于这个词的字面意思,使其参加不同的多和少重要内容构建文档表示。
在六个TC任务上,该模型比以前的方法表现出色。
 
Zhou等[80]将层次注意模型扩展到跨语言情感分类。在每种语言中,都使用LSTM网络对文档进行建模。然后,通过层次注意机制实现分类,句子级注意模型学习文档中哪些句子对确定整体情感更重要。而单词水平的注意力模型则学习每个句子中哪些单词是决定性的。
 
Shen等人[81]提出了一种用于无RNN/ cnn语言理解的定向自注意网络,其中输入序列元素之间的注意是定向的、多维的。使用一个轻量神经网络学习句子嵌入,完全基于所提出的注意,没有任何RNN/CNN结构。
 
Liu等[82]提出了NLI的具有内注意的LSTM模型。这个模型使用一个两阶段的过程来编码一个句子。首先,在词级双lstm上使用平均池来生成第一阶段的句子表示。其次,采用注意机制替代同一句的平均池化,以获得更好的表示;句子的第一阶段表征是用来注意句子本身出现的词。
 
注意模型也被广泛应用于成对排序或文本匹配任务。Santos等人[83]提出了一种双向注意机制,称为专注池(Pooling, AP),用于配对排名。AP使池化层能够感知当前的输入对(例如,一个问题-答案对),在某种程度上,来自两个输入项的信息可以直接影响彼此表示的计算。除了学习输入对的表示形式外,AP还联合学习对投影段的相似度度量,并随后导出每个输入对应的注意向量,以指导池化。AP是一个独立于底层表示学习的通用框架,可以应用于cnn和rnn,如图8 (a)所示。
notion image
Wang等人[84]将TC视为一个标签-词匹配问题:每个标签与词向量嵌入在同一个空间中。作者引入了一个注意力框架,该框架通过余弦相似度来衡量文本序列和标签之间嵌入的兼容性,如图8 (b)所示。
notion image
 
Kim等人[85]提出了一种使用密集连接的循环共注意网络的语义句子匹配方法。与DenseNet[58]相似,该模型的每一层都使用了连接在一起的注意特征信息以及前面所有循环层的隐藏特征信息。该算法能够保持原始特征信息和协同注意特征信息,从最下面的词嵌入层到最上面的循环层。
Yin等[86]提出了另一种基于注意的CNN句子对匹配模型。他们研究了三种将句子之间的相互影响整合到cnn中的注意方案,以便每个句子的表征都考虑到其配对的句子。这些相互依存的句子对表征比单独的句子表征更强大,在包括答案选择、释义识别和文本蕴意等多个分类任务中得到了验证。
Tan等[87]在匹配-聚合框架下使用多个注意函数对句子进行匹配。
Yang等[88]提出了一种基于注意的神经匹配模型,用于对简答文本进行排序。它们采用值共享加权而不是位置共享加权来组合不同的匹配信号,并利用问题注意网络引入问题项重要性学习。该模型在TREC QA数据集上取得了良好的效果。
 
还有其他有趣的注意力模型:
Lin等[89]利用自我注意提取可解释的句子嵌入:
 
Wang等[90]提出了一种具有多尺度特征注意力的密集连接CNN,以产生可变的n-gram特征。Yamada和Shindo[91]使用神经注意实体袋模型来使用知识库中的实体执行TC。
Parikh等[92]利用注意力将一个问题分解为可以单独解决的子问题。
Chen等人[93]探索了广义汇集方法来增强句子嵌入,并提出了一种基于向量的多头注意模型。
Basiri等[94]提出了一种基于注意的双向CNN-RNN深度模型用于情感分析
 

2.6 Memory-Augmented Networks

虽然在编码过程中,注意力模型存储的隐藏向量可以被看作是模型内部记忆的条目,但记忆增强网络将神经网络与外部记忆形式结合起来,模型可以对外部记忆进行读写。Munkhdalai和Yu[95]提出了一种增强记忆的神经网络,称为神经语义编码器(NSE),用于TC和QA。NSE配备了一个可变大小的编码存储器,它会随着时间的推移而演变,并通过读、写和写操作来保持对输入序列的理解,如图9所示。Weston等人[96]为合成QA任务设计了一个记忆网络,其中一系列语句(记忆条目)被提供给模型作为问题的支持事实。这个模型会根据问题和之前的记忆,每次从记忆中检索一个条目。Sukhbaatar等人[97]扩展了这项工作,提出了端到端记忆网络,其中记忆条目以一种带有注意机制的软方式检索,从而实现端到端的训练。他们表明,通过多轮(跳跃),模型能够检索和推理几个支持事实来回答一个特定的问题。Kumar等[98]提出了一种动态记忆网络(DMN),该网络处理输入序列和问题,形成情景记忆,并生成相关答案。问题触发一个迭代注意过程,这允许模型将其注意条件设定在先前迭代的输入和结果上。这些结果然后在层次循环序列模型中进行分析,以生成答案。对DMN进行端到端训练,获得QA和POS标记的最新结果。Xiong等人[99]对DMN进行了详细的分析,并改进了其存储和输入模块。
 

2.7 Graph Neural Network

虽然自然语言文本呈现顺序,但它们也包含内部的图结构,如句法和语义解析树,它定义了句子中单词之间的句法和语义关系。
TextRank是为NLP开发的最早的基于图的模型之一[100]。作者提出将自然语言文本表示为图𝐺(𝑉,𝐸),其中𝑉表示节点集,𝐸表示节点间的边集。根据手头的应用程序,节点可以表示各种类型的文本单元,例如,单词、搭配、整个句子等。类似地,边可以用来表示任何节点之间的不同类型的关系,例如,词汇或语义关系,上下文重叠等。现代图神经网络(gnn)是通过扩展DL方法来实现图数据的,例如TextRank使用的文本图。深度神经网络,如cnn、RNNs和autoencoders,在过去的几年中被推广来处理图数据的复杂性[101]。例如,将用于图像处理的cnn的二维卷积推广为通过对节点的邻域信息进行加权平均来进行图卷积。在各种类型的gnn中,卷积gnn是最受欢迎的,如图卷积网络(Graph convolutional Networks, GCNs)[102]及其变体,因为它们与其他神经网络组合有效且方便,并且在许多应用中都取得了最先进的结果。GCNs是图形cnn的一种有效变体。GCNs堆叠学习过的一阶光谱滤波器层,然后使用非线性激活函数学习图形表示。gnn在NLP中的一个典型应用是TC。gnn利用文档或单词之间的相互关系来推断文档标签[102-104]。在接下来的内容中,我们回顾了为TC开发的GCNs的一些变体。Peng等[105]提出了一种基于图- cnn的DL模型,首先将文本转换为词图,然后利用图卷积运算对词图进行卷积,如图10所示。他们通过实验表明,文本的词图表示具有捕获非连续和长距离语义的优势,而CNN模型具有学习不同层次语义的优势。在[106]中,Peng等人提出了一种基于分层分类感知和注意图胶囊cnn的TC模型。该模型的一个独特特征是使用类标签之间的层次关系,在以前的方法中,这些关系被认为是独立的。具体来说,为了利用这种关系,作者开发了一种分层分类嵌入方法来学习它们的表示,并通过结合标签表示相似性定义一种新的加权边际损失。Yao等人[107]对TC使用了类似的Graph CNN (GCNN)模型。他们基于单词共现和文档单词关系为语料库构建一个单独的文本图,然后为语料库学习一个文本图卷积网络(text graph Convolutional Network, text GCN),如图11所示。Text GCN以word和document的一热表示初始化,然后在已知文档类标签的监督下共同学习word和document的嵌入。
为大规模文本语料库构建gnn是非常昂贵的。通过降低模型复杂性或改变模型训练策略来降低建模成本已经有了一些工作。前者的一个例子是[108]中提出的简单图卷积(Simple Graph Convolution, SGC)模型,该模型通过反复去除连续层之间的非线性,并将得到的函数(权矩阵)折叠成一个单一的线性变换来简化深度卷积GNN。后者的一个例子是文本级GNN[109]。文本级GNN不是为整个文本语料库构建图,而是为文本语料库上滑动窗口定义的每个文本块生成一个图,以减少训练时的内存消耗。其他一些有前途的基于GNN的工作包括GraphSage[103]和上下文化的非局部神经网络[110]。
 

2.8 Siamese Neural Networks

暹氨酸神经网络(S2Nets)[111, 112]及其DNN变体,被称为深度结构化语义模型(DSSMs)[113, 114],是为文本匹配而设计的。该任务是许多自然语言处理应用的基础,如抽取QA中的查询文档排序和答案选择。这些任务可以看作是TC的特殊情况。例如,在问题文档排序中,我们希望将文档分类为与给定查询相关或不相关。
如图12所示,一个DSSM(或S2Net)由一对dnn𝑓1和𝑓2组成,它们将输入𝑥和𝑦映射到一个公共的低维语义空间中对应的向量[115]。然后用两个向量的余弦距离来度量𝑥和𝑦的相似度。S2Nets假设𝑓1和𝑓2拥有相同的架构,甚至相同的参数,而在dssm中,𝑓1和𝑓2可以基于𝑥和𝑦成为不同的架构。例如,为了计算图像-文本对的相似性,𝑓1可以是深度CNN,𝑓2可以是RNN或MLP。根据(𝑥,𝑦)的定义,这些模型可以应用于广泛的NLP任务。例如,(𝑥,𝑦)可以是查询文档排序的查询-文档对[114,116],或者是QA中的问题-回答对[117,118]。模型参数𝜃通常使用成对的秩损失进行优化。以文档排序为例。考虑一个查询𝑥和两个候选文档𝑦+和𝑦−,其中𝑦+与𝑥相关,而𝑥-则不相关。设𝜃(𝑥,𝑦)为𝜃参数化的语义空间中𝑥与𝑦的余弦相似度。培训目标是使边际损失最小化
其中[𝑥]+:= max(0,𝑥)和𝛾是边际超参数。由于文本呈现顺序,使用RNNs或lstm来度量文本之间的语义相似度,很自然地可以实现𝑓1和𝑓2。图13显示了[119]提出的siamese模型的体系结构,其中两个网络使用相同的LSTM模型。Neculoiu等人[120]提出了一个类似的模型,对𝑓1和𝑓2使用字符级Bi-LSTMs,并使用余弦函数计算相似度。Liu等[121]利用两个耦合lstm模型对句子对的交互作用进行建模。除了RNNs, BOW模型和cnn也被用于s2net来表示句子。例如,He等[122]提出了一种S2Net,利用cnn对多视角句子相似度进行建模。Renter等[123]提出了一种Siamese CBOW模型,该模型通过平均句子的单词嵌入量来形成句子向量表示,并将句子相似度计算为句子向量之间的余弦相似度。随着BERT成为最先进的句子嵌入模型,已经有人尝试构建基于BERT的s2net,如SBERT[124]和TwinBERT[125]。s2net和dssm已广泛用于QA。Das等人[117]提出了一种用于QA (SCQA)的暹罗CNN (Siamese CNN),用于度量问题及其(候选)答案之间的语义相似性。为了降低计算复杂度,SCQA使用问题-答案对的字符级表示。SCQA的参数经过训练,以最大化问题与其相关答案之间的语义相似性,如公式1,其中𝑥是一个问题,𝑦是其候选答案。Tan等人[118]提出了一系列用于答案选择的连体神经网络。如图14所示,这些混合模型使用卷积、循环和注意力神经网络处理文本。其他为问答开发的连体神经网络包括基于lstm的非事实答案选择模型[126],双曲线表示学习[127],以及使用深度相似神经网络的问答[128]
 

2.9 Hybrid Models

许多混合模型已经被开发出来,将LSTM和CNN架构相结合,以捕捉句子和文档的局部和全局特征。Zhu等[129]提出了一种卷积LSTM (C-LSTM)网络。如图15 (a)所示,C-LSTM利用CNN提取一个高级短语(n-gram)表示序列,将其输入LSTM网络获得句子表示。同样,Zhang等人[130]提出了一种用于文档建模的依赖敏感CNN (Dependency Sensitive CNN, DSCNN)。如图15 (b)所示,DSCNN是一个分层模型,LSTM学习句子向量,再将句子向量送入卷积和max-pooling层,生成文档表示。
Chen等人[131]通过CNN-RNN模型执行多标签TC,该模型能够捕获全局和局部文本语义,因此,在具有可处理的计算复杂度的情况下,对高阶标签相关性进行建模。Tang等人[132]使用CNN来学习句子表示,并使用门禁RNN来学习编码句子之间内在关系的文档表示。Xiao等人[133]将文档视为字符序列,而不是单词,并提出使用基于字符的卷积和循环层进行文档编码。与文字级模型相比,该模型用更少的参数实现了相当的性能。递归CNN[134]使用递归结构来捕捉学习单词表征时的长时间语境依赖。为了减少噪声,采用max-pooling算法自动选择对文本分类任务至关重要的显著词。Chen等人[135]观察到不同类型的句子表达情感的方式不同,提出了一种通过句式分类的分而治之的方法进行情感分析。作者首先运用Bi-LSTM模型将固执句分为三种类型。然后将每组句子分别输入一维CNN进行情感分类。在[136]中,Kowsari等人提出了一种用于文本分类的分层深度学习方法(Hierarchical Deep Learning approach for Text classification, HDLTex)。HDLTex采用多层混合DL模型架构,包括MLP、RNN和CNN,在文档层次结构的每个层次上提供专门的理解。Liu[137]提出了一种用于机器阅读理解中多步推理的鲁棒随机回答网络(SAN)。SAN结合了不同类型的神经网络,包括记忆网络、Transforms、Bi-LSTM、attention和CNN。Bi-LSTM组件获取问题和段落的上下文表示。它的注意机制衍生出一种问题意识的篇章表征。然后,使用另一个LSTM生成文章的工作内存。最后,基于门控循环单元的回答模块输出预测结果。一些研究集中在公路网络与rnn和cnn的结合上。在典型的多层神经网络中,信息逐层流动。基于梯度的DNN训练随着深度的增加而变得更加困难。公路网[138]的设计是为了简化非常深的神经网络的训练。它们允许信息在信息高速公路上畅通无阻地跨层流动,类似于ResNet中的快捷连接[139]。Kim等人[140]在字符上使用带有CNN和LSTM的高速公路网络进行语言建模。如图16所示,第一层进行字符嵌入查找,然后应用卷积和最大池化操作获得单词的固定维表示,并将其给出给高速公路网络。公路网的输出作为多层LSTM的输入。最后,对LSTM的隐藏表示应用一个仿射变换和一个softmax,以获得下一个单词的分布。其他基于高速公路的混合模型包括循环高速公路网络[141]和带有高速公路的RNN[142]。
 

2.10 Transformers and Pre-Trained Language Models

RNNs的计算瓶颈之一是文本的顺序处理。尽管cnn的顺序性不如rnn,但捕获句子中单词之间关系的计算成本也会随着句子长度的增加而增加,这与rnn类似。transformer[5]克服了这一限制,它应用自注意并行计算句子中的每个单词,或者记录一个“注意分数”,以模拟每个单词对另一个2的影响。由于这个特性,transformer允许比cnn和rnn更多的并行化,这使得在gpu上对大量数据有效地训练非常大的模型成为可能。
自2018年以来,我们看到了一套大规模基于Transformers 的预训练语言模型(pre - training Language model, PLMs)的兴起。早些时候相比,更符合实际的嵌入模型基于cnn[143]或LSTMs [4], Transformer-based plm使用更深层次网络体系结构(例如,48-layer Transformers [144]),和pre-trained在更大数量的文本语料库学习上下文通过预测文本表示单词的背景条件。这些plm使用特定于任务的标签进行了微调,并在许多下游NLP任务(包括TC)中创建了新的技术状态。虽然预训练是无监督的(或自监督),但微调是有监督的学习。
Qiu等人[145]最近的一项调查根据其表示类型、模型架构、训练前任务和下游任务对流行的plm进行了分类。plm可以分为两类:自回归plm和自编码plm。
OpenGPT是最早的自回归plm之一[6,144],这是一个单向模型,它预测一个文本序列,从左到右(或从右到左),每个单词预测都依赖于之前的预测。OpenGPT的架构如图17所示。它由12层Transformer模块组成,每个模块由一个蒙面多头注意模块、一个层归一化和一个位置前馈层组成。OpenGPT可以通过添加特定于任务的线性分类器和使用特定于任务的标签进行微调来适应下游任务,比如TC。
使用最广泛的自编码plm之一是BERT[7]。与OpenGPT基于之前的预测预测单词不同,BERT使用蒙面语言建模(MLM)任务进行训练,该任务随机蒙面文本序列中的一些标记,然后根据双向转换器获得的编码向量独立恢复蒙面标记。关于改进BERT的研究已经有很多:
  • RoBERTa[146]比BERT更健壮,并且使用更多的训练数据进行训练。ALBERT[147]降低了BERT的内存消耗,提高了BERT的训练速度。
  • DistillBERT[148]在训练前利用知识蒸馏,将BERT的大小减少了40%,同时保留了99%的原始能力,推理速度提高了60%。
  • SpanBERT[149]扩展了BERT,更好地表示和预测文本跨度。
  • Electra[150]使用了比传销更有效的样本前训练任务,称为替换令牌检测。它不是屏蔽输入,而是用从小型生成器网络中采样的可信替代替代替换一些令牌,从而破坏输入。
  • ERNIE[151,152]从外部知识库(如命名实体)整合领域知识,用于模型前训练。
  • ALUM[14]为模型预训练引入了对抗损失,提高了模型对新任务的泛化能力和对对抗攻击的鲁棒性。
BERT及其变体已经被微调用于各种NLP任务,包括QA[153]、TC[154]和NLI[23,155]。人们一直试图将自回归和自编码plm的优势结合起来。
XLNet[156]整合了OpenGPT等自回归模型和BERT的双向上下文建模思想。XLNet在预训练期间使用了一个排列操作,该操作允许上下文包含从左到右的标记,使其成为一种通用的可感知顺序的自回归语言模型。这种排列是通过在Transformers 中使用一个特殊的注意掩模来实现的。XLNet还引入了一个双流自注意模式,以允许位置感知的单词预测。这是由于观察到单词的分布根据单词的位置有很大的不同而产生的。例如,一个句子的开头与句子中其他位置的分布有很大的不同。作为显示在图18,预测这个词标记在一个排列位置1 3-2-4-1,内容流是由包括位置嵌入和令牌嵌入之前所有的单词(3 2 4),然后查询流是由包括内容流和这个词的位置嵌入预测(位置1字),最后,该模型根据查询流中的信息进行预测。
如前所述,OpenGPT使用从左到右的Transformer来学习文本表示,以生成自然语言,而BERT使用双向Transformer来理解自然语言。
统一语言模型(UniLM)[157]旨在处理自然语言理解和生成任务。UniLM使用三种语言建模任务进行预训练:单向、双向和序列到序列的预测。统一建模是通过使用一个共享的Transformers 网络,并利用特定的自注意掩模来控制预测条件在什么环境下实现的,如图19所示。据报道,UniLM的第二个版本[158]在广泛的自然语言理解和生成任务上实现了新的技术水平,显著超过了之前的plm,包括OpenGPT-2、XLNet、BERT及其变体。
rafael等人[159]提出了一个统一的基于transformer的框架,可以将许多NLP问题转换为文本到文本格式。他们还进行了系统的研究,比较训练前的目标、体系结构、未标记的数据集、微调方法和其他因素对数十个语言理解任务。
 

2.11 Beyond Supervised Learning

使用自动编码器的无监督学习。与单词嵌入类似,句子的分布式表示也可以以无监督的方式学习。通过优化一些辅助目标,如自动编码器的重构损失[160]。这种无监督学习的结果是句子编码器,它可以将具有相似语义和句法属性的句子映射到类似的固定大小的向量表示。章节2.10中描述的基于变压器的plm也是可以用作句子编码器的无监督模型。本节讨论基于自动编码器及其变体的无监督模型。Kiros等人[161]提出了用于通用的句子编码器的无监督学习的Skip-Thought模型。一个编码器-解码器模型被训练重构周围的句子的编码句子。Dai和Le[162]研究了序列自动编码器的使用,它将输入序列读入向量,并再次预测输入,用于句子编码。他们表明,在大型无监督语料库上进行训练前的句子编码器比只进行训练前的单词嵌入具有更好的准确性。Zhang等[163]提出了一种mean-max注意自动编码器,该编码器利用多头自注意机制重构输入序列。在编码中使用均值-最大值策略,其中对隐藏向量的均值和最大值池操作都被应用于捕获输入的不同信息。自动编码器学习输入的压缩表示,变分自动编码器(VAEs)[164,165]学习表示数据的分布,可以被视为自动编码器[26]的正则化版本。由于VAE学会了对数据进行建模,我们可以很容易地从分布中取样来生成新的样本(例如,新的句子)。Miao等人[166]将VAE框架扩展到文本,提出了用于文档建模的神经变分文档模型(NVDM)和用于QA的神经答案选择模型(NASM)。如图20 (a)所示,NVDM使用MLP编码器将文档映射为连续语义表示。如图20 (b)所示,NASM利用LSTM和潜在的随机注意机制对问题-答案对的语义进行建模,并预测其相关性。注意力模型专注于答案中的短语,这些短语与问题语义紧密相连,并由潜在分布建模,从而允许模型处理任务中固有的歧义。Bowman等[167]提出了一种基于rnn的VAE语言模型,如图20 (c)所示。该模型包含了整个句子的分布式潜在表征,可以显式地对句子的整体属性(如风格、主题和高级句法特征)建模。Gururangan等人[168]将文档模型作为域内、未标记数据的VAE进行预训练,并将其内部状态作为文本分类的特征。一般来说,使用VAE或其他模型的数据增广[169,170]被广泛用于半监督或弱监督TC。对抗训练。对抗训练[171]是一种提高分类器泛化能力的正则化方法。它通过提高模型对对抗实例的鲁棒性来做到这一点,对抗实例是通过对输入进行小扰动而产生的。对抗训练需要使用标签,并应用于监督学习。虚拟对抗训练[172]将对抗训练扩展到半监督学习。这是通过正则化一个模型来实现的,因此给定一个例子,该模型产生了相同的输出分布,因为它产生了一个对抗扰动的例子。Miyato等[173]扩展了对抗性和虚拟对抗性
通过对RNN中的单词嵌入信息而不是原始输入本身施加扰动,对监督和半监督TC任务进行训练。Sachel等[174]研究了半监督TC的LSTM模型。他们发现,使用混合目标函数,结合交叉熵、对抗性和虚拟对抗性损失的标记和非标记数据,导致监督学习方法的显著改进。Liu等人[175]将对抗训练扩展到TC[36]的多任务学习框架中,旨在减轻任务独立(共享)和任务依赖(私有)的潜在特征空间相互干扰。
强化学习。强化学习(Reinforcement learning, RL)[176]是一种根据策略训练agent执行离散行为的方法,该策略的训练目标是使奖励最大化。Shen等[177]使用硬注意模型为TC选择输入序列的关键字标记子集。硬注意模型可以看作是一个代理,它采取是否选择令牌的行动。在完成整个文本序列后,它会收到一个分类损失,这个分类损失可以作为训练agent的奖励。Liu等人[178]提出了一种神经agent,将TC建模为一个顺序决策过程。受人类阅读文本认知过程的启发,智能体按顺序扫描文本,并在它希望的时候做出分类决定。分类结果和何时进行分类都是决策过程的一部分,由RL训练的策略控制。Shen等人[179]提出了一种用于机器阅读理解的多步推理网络(ReasoNet)。ReasoNets执行多个步骤来分析查询、文档和答案之间的关系。与在推理过程中使用固定数量的步骤不同,ReasoNets引入了终止状态来放松推理步骤上的约束。使用RL, ReasoNets可以动态地决定是在消化了中间结果后继续理解过程,还是在断定现有信息足以产生答案时终止阅读。Li等[180]将RL、gan和RNNs结合起来,建立了一种新的模型,称为类别句生成对抗网络(CS-GAN),该模型生成的类别句扩大了原始数据集,在有监督训练时提高了类别句的泛化能力。Zhang等人[181]提出了一种基于rl的文本分类结构化表示学习方法。他们提出了两个基于lstm的模型。第一种方法只选择输入文本中与任务相关的重要单词。另一个发现句子的短语结构。使用这两个模型的结构发现被表述为一个由策略网络指导的顺序决策过程,策略网络在每一步决定使用哪个模型,如图21所示。通过策略梯度优化策略网络
作为本节的总结,图22展示了自2013年以来TC上最流行的基于dlc的一些模型的时间线。
 

3 HOW TO CHOOSE THE BEST NEURAL NETWORK MODEL FOR MY TASK

“什么是TC最好的神经网络架构?”取决于目标任务和域的性质、域内标签的可用性、应用程序的延迟和容量限制等。尽管毫无疑问,开发文本分类器是一个反复试验的过程,但通过分析公共基准上最近的结果(例如GLUE[22]),我们提出了以下方法来简化这个过程。该食谱包括五个步骤:
(1) PLM的选择。如第5节所示,使用plm可以在所有流行的文本分类任务中带来显著的改进,而且自编码plm(例如BERT或RoBERTa)通常比自回归plm(例如OpenAI GPT)工作得更好。拥抱式Face3维护了一个丰富的plm库,这些plm是为各种任务和设置而开发的。
(2)域的适应。大多数plm都接受过通用领域文本语料库(如Web)的培训。如果目标域与一般域有很大的不同,我们可以考虑通过对所选的一般域PLM进行连续的预训练来使用域内数据来适应PLM。对于具有大量未标记文本的领域,如生物医学,从头开始的预训练语言模型可能也是一个不错的选择[182]。
(3)任务特异性模型设计。给定输入文本,PLM生成上下文表示的向量序列。然后,在顶部添加一个或多个特定于任务的层,以生成目标任务的最终输出。任务特定层结构的选择取决于任务的性质,例如,需要捕获文本的语言结构。如第2节所述,前馈神经网络将文本视为一袋单词,神经网络可以捕获词序,神经网络擅长识别模式,如关键短语,注意机制可以有效识别文本中的相关单词,暹逻神经网络用于文本匹配任务,如果自然语言的图结构(例如,解析树)对目标任务有用,那么gnn可以是一个很好的选择。
(4)特定于任务的微调。根据域内标签的可用性,特定于任务的层可以单独与固定的PLM一起训练,也可以与PLM一起训练。如果需要构建多个相似的文本分类器(例如,针对不同领域的新闻分类器),多任务微调[23]是一个很好的选择,可以利用相似领域的标记数据。plm服务成本很高。它们通常需要通过知识蒸馏等方式进行压缩[183,184],以满足实际应用中的延迟和容量限制。
Understanding Attention for Text ClassificationPredicting Returns with Text Data