文本分类综述

Deep Learning Based Text Classification: A Comprehensive Review

相关综述
Deep Learning Based Text Classification: A Comprehensive Review

文本分类综述

一、介绍

自动文本分类的方法可以分为两类:
• Rule-based methods
• Machine learning (data-driven) based methods

Typical TC tasks:
sentiment analysis
news categorization
topic classification.

NLU任务:
Question Answering (QA)
Natural language inference (NLI).

二、文本分类的深度学习模型

1. Feed-Forward Neural Networks(前馈神经网络)

FFN在很多TC(文本分类)任务中实现了高精确度。它把文本看做成一袋单词。每个单词都用word2vec或者Glove等嵌入模型表示成词向量,然后将词向量取和或者平均来代表文本,然后通过一层或多层的前馈神经网络(例如:MLPs),然后使用分类器(例:逻辑回归,朴素贝叶斯,或SVM)对最后一层的表示进行分类。

例如:DAN网络, fastText,doc2vec等

  • DAN(Deep Average Network)框架如下:
    文本分类综述_第1张图片
  • fasttext
    跟DAN一样,fasttext把文本视为一袋单词。但不同的是,fasttext使用一袋n-gram作为附加特征来捕获本地词序信息(在实践中非常有效)。
  • doc2vec
    doc2vec可以使用无监督算法来学习可变长度文本片段的固定长度特征提取。其架构与CBOW迷行类似,唯一的区别是通过矩阵D映射到段落向量的附加段落标记。其架构图如下:
    文本分类综述_第2张图片

2. RNN-Based Models(基于循环神经网络的模型)

RNN-Based models 将文本看做一序列的单词,旨在为TC捕获单词依赖性和文本结构。但是传统的RNN模型表现并不好,还没有前馈网络表现好,于是出现了很多变体。其中以LSTM最流行,旨在更好的捕捉长期依赖关系。

  • LSTM 通过引入记忆单元来记住任意时间间隔的值,并通过三个门来控制输入输出和遗忘。
  • Tree-LSTM 树形的比链式的LSTM更好,作者认为自然语言将词组合成短语来表达语义信息的,所以Tree-LSTM可以捕获更丰富的语义表征。
    文本分类综述_第3张图片
  • 为了模拟机器阅读的长跨度单词关系,采用记忆网络代替单个记忆单元来增强LSTM架构
  • Multi-Timescale LSTM (MT-LSTM) 用来捕获长距离依赖,将LSTM中的隐藏状态分为多组,每个组在不同的时间范围内进行激活和更新。据报道,MT-LSTM在TC上优于baseline(包括基于RNN和LSTM的模型)
  • TopicRNN,整合BNN和潜在主题模型的优点。它使用RNN捕获本地依赖关系,并使用潜在主题捕获全局依赖关系。

3. CNN-Based Models (基于CNN的模型)

前面提到的RNN模型被训练来识别跨时间的模式,而CNN学习跨空间的识别模式。RNN适用于需要理解远程语义的NLP任务,比如POS标记或者QA。而CNN更适用于局部检测和位置不变模式。在CNN中,预训练的词向量会比随机初始化好,并且采用maxpooling比其他的pooling好。

  • DCNN(Dynamic CNN) 采用动态的k-max pooling,可以根据句子大小和卷积的层级进行动态选择k。
  • VDCNN 在字符级别进行操作,并且仅使用小的卷积核池化操作。其性能随着深度的增加而提高

4. Capsule Neural Networks (胶囊网络)

CNN已经能够通过卷积、池化操作进行文本和图片的分类,为什么还要提出胶囊网络呢?主要是因为CNN模型丢失了信息的空间关联,也就是既是位置不正确,也能够正确识别,比如当图片中人的五官位置都不正确,CNN也能识别出是人脸。(池化操作的锅)
胶囊网络是一组神经元,它的活动向量代表一个特定类别的实体的不同属性,向量的长度代表实体存在的可能性,向量的方向表示实体的属性。
与选择一些信息而丢掉其他信息的最大池化不同,胶囊网络从底层的胶囊到高层的胶囊之间会有一个路径规划,寻找最佳的高层胶囊来作为低层胶囊的父辈。

  • TC model based on a variant of CapsNets
  • CapsNet-based model

5.Models with Attention Mechanism (注意力机制模型)

  • hierarchical attention network 分层注意力网络
    模型有两个显著的特征,1、是一个分层的结构来反应文档的层次结构。2、在单词和句子级别应用了两个级别的注意力机制,使其能够在构建文档表示时以不同的方式关注重要和不重要的内容。
  • 应用于cross-lingual sentiment classification,在每种语言中,都是用LSTM网路对文档进行建模,然后使用分层注意力机制实现分类。 其中句子级别的注意力模型学习文档中的哪一个句子对于判断情感更加重要。而词级别的注意力模型学习句子中的哪一句话更具有决定性。
  • directional self-attention network for RNN/CNN-free language understanding 只基于注意力机制没有任何的RNN/CNN结构。
  • LSTM model with inner-attention for NLI(自然语言推理)这个模型对用户两个阶段的过程来编码一个句子。首先,在word-level Bi-LSTMs 基础上采用平均池化来生成第一个阶段的句子表示,然后,用注意力机制来代替平均池化在同一个句子上进行更好的表示。
  • 将TC任务看成标签和单词匹配任务,每个标签与词向量用相同的方法嵌入表示。

6.Memory-Augmented Networks (记忆增强网络)

前面提到的注意力机制在编码过程中的隐藏状态可以看成模型内部存储器,而记忆增强网络可以能够将神经网络与一种外部存储器结合在一起,模型可以读写到外部存储器。

  • Neural Semantic Encoder (NSE) 应用于TC和QA任务,其具有可变大小的编码内存,随着时间的推移而演变,并能够通过读写改操作来保证对输入序列的理解。
  • Dynamic Memory Network(DMN) 通过处理输入序列和问题来形成情景记忆,从而生成相关回答。在QA和POS方便取得了更好的进展。

7.Graph Neural Networks (图神经网络)

  • TextRank 最早的基于图的模型。节点表示各种类型的文本,比如单词、搭配、句子等。边来表示节点之间的不同类型的关系,例如词汇、语义关系、上下文重叠等。

  • Graph Neural Networks (GNNs) 通过扩展图数据的深度学习方法

  • Graph Convolutional Networks (GCNs) 是图上的CNN的一种变形,可以更有效方便的与其他的神经网络结合

  • graph-CNN,首先将文本转换成词图,然后使用图卷积操作对词图进行卷积。使用词图去表示文本更加能够捕捉到非连续和长距离语义。

    对于一个大的文本集建立GNN是很耗时的,现在有些研究来降低模型复杂度或者改变训练策略。降低复杂度的模型有Simple Graph Convolution(SGC),它将卷积GNN相邻层的非线性操作去掉,将权重矩阵降为线性变换。在改变训练策略方便,模型有Text-level GNN,它将文本用滑动窗划分为不同的chunk,然后对这些chunk进行graph表示,以此来减少内存消耗。

8.Siamese Neural Networks(S2Nets)

S2Nets,也叫深度结构化语义模型(DSSMs)是用来进行文本匹配的。很多NLP任务,比如问题文本排序,抽取式问答的答案选择等都可以看做TC的特例。

文本分类综述_第4张图片
正如图12所示,S2nets包含一对DNN,f1,f2分别将x,y映射到相同的低纬度语义空间,然后用cosine来计算x,y的相似度。f1f2可以是相同的结构,也可以是不同的结构。f1和f2能够根据x,y来选取不同的结构。例如,为了计算图相似度,f1可以是一个深度卷积神经网络,f2可以是一个循环神经网络或者多层感知机。因此这个模型可硬广泛应用到NLP任务中。

9.Hybrid Models 混合模型

很多混合模型结合LSTM和CNN来获取句子和文档的局部或者全局特征。

  • Convolutional LSTM (C-LSTM) network 利用CNN来获取高层次短语表示,然后将其喂给LSTM网络获得句子表示。
  • Dependency Sensitive CNN (DSCNN),主要用于文档模型,是一个分层模型,LSTM学习句子向量,然后喂给卷积层、最大池化层来生成文档表示
  • Hierarchical Deep Learning approach for Text classification (HDLTex) 用于文本分类
  • Stochastic Answer Network (SAN) 用于机器阅读理解
    。。。。

10.Transformers and Pre-Trained Language Models 预训练语言模型

Transformer 采用自注意力机制解决了长距离依赖问题,还能够并行计算,这就使得在GPU上训练大模型和处理大数据称为了可能。
预训练模型分类(按照表示类型、模型架构、预训练任务、下游任务)
autoregressive and autoencoding PLMs. 自回归和自编码
- 自回归预训练模型:OpenGPT,
OpenGPT是一个单向模型,从左向右(或从右向左)逐个单词的预测文本序列,对每一个单词的预测取决于前一个单词。OpenGPT结构如下:
文本分类综述_第5张图片
包含12层Transformer块,每层包含一个带掩码的多头注意力模块。每一层后边是一个层归一化和一个位置前馈层。
OpenGPT可以通过添加特定线性分类器和微调标签来适应TC等下游任务。

- 自编码:BERT
与OPenGPT通过之前的预测来预测当前词不同,BERT是使用MLM任务进行训练,该任务是随机掩蔽文本序列中的一些token,然后通过调节双向transformer获得的编码向量来独立恢复被掩蔽的token。
BERT的改进:
(1)RoBERTa 比BERT更加强大,可以使用更多的训练数据进行训练。
(2) ALBERT 降低了内存系消耗并提高了BERT的训练速度
(3)DistillBERT在预训练期间通过利用知识蒸馏,将BERT的大小减小到40%,保留BERT原有的99%的功能,并提高60%的速度。
(4) SpanBERT扩展了BERT以更好的进行表示和预测文本跨度。
(5)Electra 利用比MLM更加简单有效的预训练任务–eplaced token detection,它不是mask输入,而是从一个小型生成网络中抽取出一些合理的替代方案来代替一些token
(6)ERNIE结合了来自外部知识库的知识,例如命名体识别等进行预训练。
(7)ALUM引入了对抗性损失,提高了模型对新任务的泛化能力和对抗鲁棒性

自回归和自编码相结合的预训练语言模型:

  • XLNet
  • Unified language Model (UniLM)

11.Beyond Supervised Learning

  • Unsupervised Learning using Autoencoders.
  • Adversarial Training
    对抗训练是用来改进分类泛化器的这一种正则化方法。
  • Reinforcement Learning

三、如何选取适合自己任务的神经网络模型

(1) PLM Selection : https://huggingface.co/models
(2)Domain adaptation
(3)Task-specific model design
(4)Task-specific fine-tuning
(5)Model compression

四、文本分类数据集

4.1情感分析

  • Yelp
  • IMDb
  • Movie Review
  • SST
  • Amazon

4.2新闻分类

  • AG News
  • 20 Newgroups
  • Sogou News
  • Reuters news

4.3话题分类

  • DBpedia.
  • Ohsumed
  • EUR-Lex
  • WOS
  • PubMed

4.4问答数据集

  • SQuAD
  • MS MARCO
  • TREC-QA
  • WikiQA
  • Quora

4.5自然语言推理

  • SNLI
  • Multi-NLI
  • SICK
  • MSRP文本分类综述_第6张图片

你可能感兴趣的:(深度学习,分类,机器学习,深度学习)