贾翔顺,陈 玮,尹 钟
(上海理工大学 光电信息与计算机工程学院,上海 200093)
互联网中遍布图像、语音、文本等信息,其中文本信息占比较大。因此,自然语言处理领域的文本分类成为广泛研究的方向之一。在推荐算法、情感分析、舆情分析、新闻主题分类等领域中,文本分类算法都扮演着越来越重要的角色[1]。
传统的文本分类方法主要使用词频逆文档频率(Tf-idf)作为文本表示,调用机器学习算法如支持向量机[2]、贝叶斯[3]、决策树[4]等进行分类。这些模型在提取文本特征等方面仍有很大不足,如容易忽略文本语义与结构信息。近年来,研究者们将更多的目光转向深度学习。
深度学习方法突出结构深度以及对特征的提取与学习,被应用于许多领域。循环神经网络(Recurrent Neural Network,RNN)与卷积神经网络(Convolutional Neural Network,CNN)是深度学习领域的两大主流模型,RNN网络可以捕捉长距离的依赖关系,但是,梯度消失和梯度爆炸等问题会随着时间序列的增长而出现。针对这些问题,学界提出了改进模型,如长短时记忆神经网络(Long Short-Term Memory,LSTM)、门限循环单元 (Gated Recurrent Unit,GRU)。CNN网络具有强大的特征提取能力,常与池化操作结合使用,在一些领域中取得了很大成功,但是,这种模型会丢失掉一些重要特征信息,例如,在人脸识别中把脸颠倒过来,网络将不再能够识别眼睛、鼻子、嘴巴以及它们之间的空间关系。胶囊网络由Sabour等人[5]在2017年首次提出并应用于图像领域。它是一种基于动态路由的网络架构,使用胶囊来代替卷积神经网络中的神经元,使用矢量特征代替标量特征,使得网络可以保留对象间详细的姿态信息和空间关系,并采用动态路由的方式取代池化操作来加强特征整合。对于自然语言处理领域来说,这是一个可供借鉴的研究方向,本文希望将这种网络结构带到文本分类任务中。
在此基础上,本文提出了融合胶囊网络的双通道神经网络文本分类模型(BC-CapsNet),在多个数据集上的大量实验表明,该模型能够有效地提高文本分类效果。
一个高效的词嵌入工具对于自然语言处理领域的研究有着重要的影响。在过去的十年里,人们提出了许多经典的词嵌入方法,其中Word2Vec[6]是目前NLP词嵌入领域中最常用的模型,Pennington等人[7]在2014年提出Glove模型,有效提高了模型的训练速度与稳定性。近几年语言表征模型(如ELMo、GPT和BERT)的出现大幅提升了自然语言处理任务的性能指标。2017年,Google提出了Transformer模型[8],该模型通过注意力机制捕捉长距离的依赖关系,时间复杂度相较于传统网络也大幅降低;之后Google在Transformer的基础上提出了使用预训练模型的双向编码器表示模型[9](Bidrectional Encoder Representations from Trans-formers,BERT),通过在所有层中联合调节上下文来预训练深层的双向表示,可以根据任务需求对BERT预训练模型为适应更多业务场景进行微调。
在网络架构方面,Kim等人[10]使用CNN 将整段文本视为一个嵌入矩阵,通过多个不同尺寸卷积核滑动获得每个视野内的特征,但该模型的缺点是易丢失上下文顺序与位置信息。朱烨等人[11]将传统的最近邻算法与注意力机制相结合获得空间属性值并对距离加权,然后与卷积神经网络构成新的文本分类模型,取得了不错的成绩。王海涛等人[12]提出了一种基于LSTM和CNN的文本分类方法,并使用双通道方法进行特征筛选。王伟等人[13]提出了一种结合BiGRU和注意力机制的混合情感分类模型,有效提高情感分类的准确率。针对文本分类任务,大多数学者在CNN与RNN网络模型的基础上进行改进与创新,本文也将在此基础上进行改进。Hinton等人[14]提出了一种基于EM算法改进的新路由迭代模型,并运用到胶囊网络中。该方法在smallNORB数据集上获得了更高的准确性。Zhao等人[15]提出了三种动态路由算法来减少包含冗余信息的噪声胶囊的干扰,并将其应用于文本分类。实验结果表明,胶囊网络在文本分类方面也取得较好效果。Ren等人[16]提出了一种改进K均值路由算法进行文本分类,该方法不仅在准确性上有所提高,而且参数更少。Su等人[17]将预训练的语言模型与胶囊网络相结合,实验结果表明,该模型性能明显优于传统词嵌入模型。Wang等人[18]提出了一个方面层次情感胶囊模型(AS-capsule)进行检测和分类层面的情感分析。这些研究表明,胶囊网络在文本领域可以获得很好的效果,可以利用胶囊的特点充分挖掘文本中的单词位置、语义以及依赖关系。
为了进一步提高文本分类任务的准确度,本文提出了BC-CapsNet模型,将文本数据输入BERT预训练模型,生成词向量作为双通道神经网络的输入。双通道模块采用CNN进行局部特征采集和BiGRU进行全局语义特征提取,并对采集到的特征进行特征融合表达,从而增强或减弱某些特征的表达效果,为后续模块提供更全面的文本特征,解决了不能选择性关注重要单词的问题。利用胶囊(向量神经元)接替标量神经元继续进行文本建模,取得了比其他方法更好的分类性能,实验证明了胶囊模型的特征表达能力满足任务需求,有效提高了文本分类效果。模型的结构如图1所示。
BERT提出的掩码语言模型(Masked Language Model,MLM)允许表征融合左右两侧的语境,以此训练出一个深度双向Transformer。如图2所示,每一句话使用CLS作为开头标记,用SEP作为结尾标记。最终词向量输出结果由这3个Embedding层合并而来。
图2 BERT输入表示
在本文之后的实验中采用了官方预训练好的中/英BERT模型来对文本进行处理。经过BERT预处理得到文本输入矩阵X∈Rn×m,其中n为文本长度且统一切片为48,每一个文本生成的矩阵维度m为768。
模型在词嵌入后的主要任务是提取足够多的特征信息。而这里的信息可以分为上下文关联语义信息与文本局部关键特征,这两点分别对应RNN与CNN两种网络功能。因此本文采用双通道完成特征提取的任务。GRU在LSTM的基础上进行了简化,所需参数更少,训练速度更快,有效降低了过拟合的可能性。CNN作为图像领域的常用技术,在关键特征提取方面有着不错表现。将BiGRU与CNN进行结合,可以丰富文本的特征多样性,再辅以特征融合机制,可以对重要信息进行聚焦操作,进一步提升模型性能。
2.2.1 BiGRU通道
BiGRU模型通过两个方向相反的GRU进行文本学习,隐藏状态由t时刻前向隐藏层状态的输出和t-1时刻反向隐藏层状态的输出共同决定,其结构如图3所示。
图3 BiGRU模型结构
2.2.2 卷积网络通道
为解决局部特征丢失的问题,本文使用多通道CNN提取信息。将文本向量作为CNN模型的输入,使用多窗口尺寸卷积核进行卷积操作,从而提取不同类型的多维特征。多通道CNN的特征提取过程如图4所示。
图4 卷积网络特征提取
使用大小为k×m(m是词向量的维数) 的卷积核对文本输入X进行卷积运算,运算过程如式(8)所示。在实验中卷积运算使用“padding=same”模式。然后将卷积运算的提取结果构造成一个大小为n×T的特征矩阵V。T为卷积核个数,n为文本长度。
图5 特征融合过程
文本语义表示R的计算过程如式(5)、式(6)所示。
式(5)表示加权运算,语义特征乘以相应的注意力权重,通过累加运算得到融合特征rt。通过式(6)得到融合语义特征R。
特征融合操作的意义在于,利用CNN提取局部特征能力并通过加权注意力的方式调整BiGRU的特征表达,从而增强或减弱某些特征的表达效果,使模型能够捕捉更多的文本特征。
胶囊网络是Sabour等人[5]提出的一种用于图像分类领域的方法,是一种可以用于学习空间关系的图像分类器。其中胶囊输出向量表示对应类别的特征信息,向量长度表示对应文本类别的预测概率。这种动态路由的算法相比于静态路由可以有效地提高模型性能。由于胶囊网络能够充分抽取局部和全局的空间位置信息,所以在图像处理得到广泛应用。在文本中,胶囊网络可以通过多个维度提取包括语义、位置、类别等信息。
初级胶囊层这是胶囊网络的第一层,上层神经网络单元传递到本层的标量信息无法在胶囊网络中使用,但这些数据却记忆了上下文之间的语义以及特征信息。因此,初始胶囊层的作用是对模型之前提取到的特征信息进行初始的特征矢量化,首先通过非线性激活函数将特征向量Ri转化为特征胶囊ui。然后使用输出胶囊ui来计算预测向量uj|i,计算方法是将其与权重矩阵wij相乘。具体计算如式(7) 所示。
(7)
主胶囊层胶囊网络利用“协议路由”的原理生成下一层胶囊。此过程主要取代池化操作,因为池化操作会丢失角度、位置、等方差等信息。路由过程如图6所示。
图6 动态路由过程
如图6所示,在两个相邻的L层和L+1层之间,使用预测向量与权重cij线性组合生成胶囊sj。具体计算如式(8)所示。
(8)
在胶囊网络中,ui为输入向量,vj为L+1层中第j个胶囊的输出向量。cij用来预测上层胶囊与下层胶囊间的相似性,称为耦合系数。在路由过程中,可以选择全连接的权重矩阵或者共享的权重矩阵。共享权重矩阵将与L层ui相连的wij变为wj,这样既减少了训练参数,又避免了过度拟合。实验结果表明,共享权重矩阵不仅训练参数少,而且分类效果更加优异。
压缩函数为了保持非线性,胶囊网络没有使用Sigmoid、Tanh等非线性激活函数,而是对sj使用压缩函数,如式(9)所示。将L+1胶囊层的输出向量vj的模长转换为0到1之间。这种函数以非线性方式压缩胶囊的长度,通过这个过程,短向量的模长被压缩到0,长向量的模长被压缩到1。压缩后的向量模长越大,其表征的特征就越强。
(9)
动态路由对于上述学习参数wij,cij通过动态路由算法进行迭代。bij的初始值赋值为0,这样vj的初始值为uj|i的均值,通过迭代更新bij,从而更新cij与vj的值。具体更新如式(10)、式(11)所示。
动态路由算法的迭代流程如表1所示。
表1 动态路由算法的迭代流程
胶囊网络和一般神经网络的主要区别在于输出不同,胶囊网络的输出是向量Vout=[v0,v0,…,vn-1]。每个向量的长度表示该样本为某一类别的概率,表示了文本所属类别的不同情况。分类结果通过式(12)表示。
argmaxVout=argmax(v0,v1,…,vn-1)
(12)
对于分类任务,可将多分类问题分解为多个二分类问题,使用argmax找到Vout中的最大值vj-1,该值表示输入文本是第j类的最高概率。模型的损失函数Lj如式(13)所示。
(13)
其中,j表示分类类别,Tj指示当前样本与该类别之间的关系。Tj=1表示该样本属于j类,在这种情况下vj的长度(概率)越大越好。如果Tj=0,vj的长度(概率)越小越好。m+为上边界常取0.9,m-为下边界常取0.1,λ=0.5,最终目标是使这些损失值之和最小化。
实验平台环境如表2所示。
表2 实验环境及配置
本文采用THUCNews和Ag_News新闻文本分类数据集进行实验。THUCNews合计20万条数据,共分为财经、房产、股票、教育、科技等10个分类类别,每个类别2 000条数据。Ag_News合计19 600条数据,共分为国际、体育、商业、科技4个类别,每个类别4 900条数据。将两个数据集按一定比例划分成训练集、验证集和测试集。数据集中每个类别的数据量保持一致,以保证数据的分布平衡。
文本分类主流的性能评价指标有Accuracy (准确率)、Precision(精确率)、Recall(召回率)、F1-Score。本文使用这些指标对BC-CapsNet模型进行性能评价。首先构建混淆矩阵,如表3所示。
表3 混淆矩阵
在二分类的情况下具体计算如式(14)~式(17)所示。
而对于多分类问题采用pmacro、Rmacro、F1macro来表示所有类别的宏精度,宏召回和宏F1分数。
本文在固定其他参数的前提下,依次改变可变参数的数值,从而得到实验的最佳参数。表4列出了模型主要参数及参数值。
表4 模型参数设置
3.5.1 模型结果对比
采用多种模型进行比较,实验结果与模型性能对比如表5所示。
表5 多种模型的实验结果 (单位: %)
BERT[9]不附加任何模块,仅用BERT预训练模型进行文本分类。
BERT-BiGRU-Att[19]使用BiGRU模型提取文本信息,并对其最后输出进行注意力加权。
BERT-TextCNN[10]使用多个不同尺寸的卷积窗口来扩大感受野,提取句子中的关键信息,并用于最终的分类。
BERT-Capsule-A/B[15]Capsule-A是用于文本分类的单个胶囊网络,而Capsule-B是三个胶囊网络的级联,用于提高分类性能。
从表5可以看出,仅使用BERT的预训练模型便可以获得很好的分类效果,在两个数据集上F1macro分别为93.96%、89.90%。在BERT的基础上增加TextCNN、BiGRU-Att模块后分类效果都得到了提高。Zhao的Capsule-A网络是将卷积与胶囊网络相结合,在两个数据集上都取得了不错的效果。而Capsule-B是在Capsule-A的基础上又增加了两条通道,从而获得更多的特征信息,类似于TextCNN网络的多卷积策略,最终,F1macro提高至95.21%、91.74%。本文提出的BC-CapsNet在两个数据集上的F1macro分别为95.46%、92.20%,进一步提高了分类效果。
图7展示的是测试集混淆矩阵可视化图,混淆矩阵以矩阵的形式展现样本真分类和模型预测分类之间的关系,其可视化图可以通过颜色清晰地观察到分类情况。从图中可以看出AG_News的商业类样本错误率较高,主要因为模型将许多该类样本错分为科技类,这是导致该数据集的准确率不如THUCNews的重要因素。在实验中BC-CapsNet在两个epoch后准确率便高于其他模型。BERT模型的收敛速度较快,但准确率要低于其他方法。Capsule-B的准确率一直高于Capsule-A,说明多通道策略相较于单通道可以提取到更多的特征信息。本文方法BC-CapsNet在双通道相结合的基础上融合胶囊网络模型,由于Capsule-B拥有BiGRU模块,所以它能够更好地保留文本语义信息,从而有效地提升准确度。
图7 混淆矩阵可视化
3.5.2 多卷积核策略对模型结果的影响
通过实验评估多卷积核策略的尺寸选择,从而获得更立体和更全面的特征筛选,Nguyen等人[20]提出多尺寸卷积核2-3-4-5的组合达到最佳效果,而Zhao等人[15]发现N-gram值为3-4-5在其模型中表现最佳。此外,为了寻找到最佳窗口尺寸,除了上述两种组合外,本文还验证了以下两种组合: 1-3-4-5和1-2-3-4-5。本文在THUCNews数据集上进行实验。
从图8所示的实验结果可以看出,3-4-5的窗口尺寸获得了最好的性能表现。在此基础上,本文添加了一个额外的窗口大小为1的卷积核,以强调单词的固有信息,但效果并不理想。将卷积窗口大小为2的卷积核添加到3-4-5组以及1-3-4-5组合中时,前者效果大幅下降,后者略有下降。为获得更好的效果,BC-CapsNet模型将采用3-4-5的组合。
图8 多卷积核策略的影响
3.5.3 胶囊层之间权重共享
如果使用全连接权重矩阵, 则整个过程显然等效于一般神经网络中的完全连接层,参数矩阵的数量等于输入胶囊数量乘以输出胶囊数量。如果采用权重共享方式,参数矩阵的数量则等于分类数。具有权重共享的网络不仅计算量较小,而且具有更好的分类效果,表6中的实验结果能说明这一点。
表6 共享权重和完全连接的比较 (单位: %)
3.5.4 动态路由迭代次数
由于动态路由需要多次迭代的过程,为研究迭代次数对模型的影响,实验在不改变其他参数的情况下,调整动态路由迭代次数。实验结果如表7所示,表中T表示迭代次数。
表7 动态路由迭代次数对模型的影响 (单位: %)
表7的统计结果表明,THUCNews在迭代5到6次时取得较好的性能,AG_News在迭代4到5次时取得较好的性能。最终在BC-CapsNet模型上综合考虑使用5次路由迭代。而在此基础上增加路由迭代次数并没有提高模型的性能,而且如果迭代次数过多,不仅会带来更大的计算代价,而且会导致性能下降。
本文将双通道的神经网络和胶囊网络结合起来并提出了BC-CapsNet模型,通过实验将其应用于文本分类任务中。将双通道捕获的信息特征进行特征融合后输入胶囊网络进行分类,其中动态路由算法从低级到高级胶囊的传输过程,可以使模型更有效地利用实体和位置信息,从而提高分类效果。本文研究的是单标签多分类问题,在今后的研究工作中,希望将本模型进行改进来适应多标签、多分类的文本分类任务。其次,对于小样本的任务,该模型是否具有优势需要进行进一步实验。