相关综述
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).
FFN在很多TC(文本分类)任务中实现了高精确度。它把文本看做成一袋单词。每个单词都用word2vec或者Glove等嵌入模型表示成词向量,然后将词向量取和或者平均来代表文本,然后通过一层或多层的前馈神经网络(例如:MLPs),然后使用分类器(例:逻辑回归,朴素贝叶斯,或SVM)对最后一层的表示进行分类。
例如:DAN网络, fastText,doc2vec等
RNN-Based models 将文本看做一序列的单词,旨在为TC捕获单词依赖性和文本结构。但是传统的RNN模型表现并不好,还没有前馈网络表现好,于是出现了很多变体。其中以LSTM最流行,旨在更好的捕捉长期依赖关系。
前面提到的RNN模型被训练来识别跨时间的模式,而CNN学习跨空间的识别模式。RNN适用于需要理解远程语义的NLP任务,比如POS标记或者QA。而CNN更适用于局部检测和位置不变模式。在CNN中,预训练的词向量会比随机初始化好,并且采用maxpooling比其他的pooling好。
CNN已经能够通过卷积、池化操作进行文本和图片的分类,为什么还要提出胶囊网络呢?主要是因为CNN模型丢失了信息的空间关联,也就是既是位置不正确,也能够正确识别,比如当图片中人的五官位置都不正确,CNN也能识别出是人脸。(池化操作的锅)
胶囊网络是一组神经元,它的活动向量代表一个特定类别的实体的不同属性,向量的长度代表实体存在的可能性,向量的方向表示实体的属性。
与选择一些信息而丢掉其他信息的最大池化不同,胶囊网络从底层的胶囊到高层的胶囊之间会有一个路径规划,寻找最佳的高层胶囊来作为低层胶囊的父辈。
前面提到的注意力机制在编码过程中的隐藏状态可以看成模型内部存储器,而记忆增强网络可以能够将神经网络与一种外部存储器结合在一起,模型可以读写到外部存储器。
TextRank 最早的基于图的模型。节点表示各种类型的文本,比如单词、搭配、句子等。边来表示节点之间的不同类型的关系,例如词汇、语义关系、上下文重叠等。
Graph Neural Networks (GNNs) 通过扩展图数据的深度学习方法
Graph Convolutional Networks (GCNs) 是图上的CNN的一种变形,可以更有效方便的与其他的神经网络结合
graph-CNN,首先将文本转换成词图,然后使用图卷积操作对词图进行卷积。使用词图去表示文本更加能够捕捉到非连续和长距离语义。
对于一个大的文本集建立GNN是很耗时的,现在有些研究来降低模型复杂度或者改变训练策略。降低复杂度的模型有Simple Graph Convolution(SGC),它将卷积GNN相邻层的非线性操作去掉,将权重矩阵降为线性变换。在改变训练策略方便,模型有Text-level GNN,它将文本用滑动窗划分为不同的chunk,然后对这些chunk进行graph表示,以此来减少内存消耗。
S2Nets,也叫深度结构化语义模型(DSSMs)是用来进行文本匹配的。很多NLP任务,比如问题文本排序,抽取式问答的答案选择等都可以看做TC的特例。
正如图12所示,S2nets包含一对DNN,f1,f2分别将x,y映射到相同的低纬度语义空间,然后用cosine来计算x,y的相似度。f1f2可以是相同的结构,也可以是不同的结构。f1和f2能够根据x,y来选取不同的结构。例如,为了计算图相似度,f1可以是一个深度卷积神经网络,f2可以是一个循环神经网络或者多层感知机。因此这个模型可硬广泛应用到NLP任务中。
很多混合模型结合LSTM和CNN来获取句子和文档的局部或者全局特征。
Transformer 采用自注意力机制解决了长距离依赖问题,还能够并行计算,这就使得在GPU上训练大模型和处理大数据称为了可能。
预训练模型分类(按照表示类型、模型架构、预训练任务、下游任务)
autoregressive and autoencoding PLMs. 自回归和自编码
- 自回归预训练模型:OpenGPT,
OpenGPT是一个单向模型,从左向右(或从右向左)逐个单词的预测文本序列,对每一个单词的预测取决于前一个单词。OpenGPT结构如下:
包含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引入了对抗性损失,提高了模型对新任务的泛化能力和对抗鲁棒性
自回归和自编码相结合的预训练语言模型:
(1) PLM Selection : https://huggingface.co/models
(2)Domain adaptation
(3)Task-specific model design
(4)Task-specific fine-tuning
(5)Model compression