基于谱聚类胶囊网络的文本分类方法

2022-03-04 00:17张凌慷仝明磊
科技创新与应用 2022年4期
关键词:路由聚类卷积

张凌慷,仝明磊

(上海电力大学 电子与信息工程学院,上海 201306)

随着互联网中海量文本数据的不断涌现,文本分类已经成为自然语言处理领域(Natural Language Processing,NLP)中的一个重要研究方向。如何在海量数据中高效而精确地理解文本语义,亟需学术界进一步探索。

随着深度学习的流行,基于深度学习的神经网络也被应用于文本分类任务,并取得了相对较好的分类效果[1]。Kim[2]在卷积神经网络(Convolutional Neural Network,CNN)的基础上提出了TextCNN网络,直接对句子进行文本分类。

Zhao等[3]首先在文本分类任务中引入了胶囊网络(Capsule Network),在句子中的不同位置用卷积操作提取局部特征,接着训练两层胶囊层提取全局特征,最后在全连接层输出每个文本类的概率送入Softmax分类器进行分类。Kim等[4]将静态路由代替动态路由机制,忽略句子中部分空间信息,达到简化路由计算的目的。

由于动态路由依赖聚类的密集计算,这导致了训练效率低下,阻碍了胶囊网络在实际任务中的应用。本文采取谱聚类(Spectral clustering)算法来取代原有胶囊网络中的动态路由算法,提出SC-Caps胶囊网络模型,将低层胶囊输出的特征向量进行降维,减少计算复杂度,提高网络性能。在搜狗新闻数据集SogouCA上进行实验,以模型的预测准确率和F1值作为评价标准,得到了较好的分类准确率。

1 相关研究

1.1 胶囊网络

CNN在计算机视觉、自然语言处理领域都取得了成功。CNN在每次卷积之后,都会进行池化操作对特征图进行下采样来简化计算并改善局部特征。但池化操作从上一层传递到下一层的是标量,导致无法考虑一些位置与姿态的信息。因此CNN在识别具有空间关系的特征时存在很大的局限性。

为了解决CNN中存在的问题,Hinton等[5]于2011年首次提出了“胶囊”的概念。其创新之处就是使用向量胶囊来取代CNN中的标量神经元,使得胶囊可以保留输入对象之间的空间信息。基于此,Sabour等[6]在2017年进一步提出了具有动态路由算法的胶囊网络结构,该网络包括一层卷积层来提取特征;初级胶囊层将标量特征图编码为向量胶囊;高层胶囊层进行分类。但初级胶囊层与高层胶囊层之间动态路由算法繁琐,有待进一步完善。为了解决此问题,Hinton等[7]于2018年对动态路由算法和胶囊网络结构进行改进,提出基于最大期望算法(Expectation-Maximization,EM)来实现动态路由的矩阵胶囊网络。该网络鲁棒性强,但仍存在计算量大,复杂度高的问题。

1.2 谱聚类

由于动态路由需要多次迭代通过softmax来获取相似度,不断地计算调整新的高层胶囊,最后将点划分到各个高层胶囊中。因此当数据量大时,动态路由的计算开销是非常大的。而谱聚类是由图论衍生出的聚类算法[8],它将输入的高维向量降维达到简化计算的目的。其主要思想就是将所有输入数据视为空间中的点,再将所有点连起来构成无向带权图。距离近的两点连成的边权重值高,而距离远的点连成的边权重值低,来构建相似度矩阵,之后由K近邻法构建邻接矩阵。

首先将低层胶囊转换后的预测向量X={x1,x2,x3,…,xn},利用下列方法来构建对称的邻接矩阵W={Wij}n×t:

再根据邻接矩阵构建度矩阵Dn×n,度矩阵D为对角矩阵,其中即为邻接矩阵的对应行元素之和。

计算拉普拉斯矩阵L:L=D-W。利用Ncut切法,求出拉普拉斯矩阵L的k个最小特征值构建特征矩阵F:

首先构建标准化拉普拉斯矩阵LS:

接着计算LS的特征值,选取前k个最小的特征值(k为聚类数),并求出对应的的特征向量f1,f2,f3,…,fk;最后将上述k个特征向量作为列向量构成的矩阵按行标准化,形成维度为的向量空间;

令hi∈Rk为特征矩阵F的第i行作为新的中间数据样本点,其中i=1,2,3,…,n。利用k-means算法将聚类成簇。

将求得的簇送入挤压函数得到高层胶囊:

1.3 SC-Caps模型构建

胶囊网络最早应用于图像分类任务中,Zhao等[3]将胶囊网络引入到文本分类任务当中,效果明显优于CNN、LSTM。

该模型如图1所示分为4层:第1层是卷积层,用于提取低层特征;第2层是初级胶囊层,将标量特征转换为矢量特征,保留句子中的词序和语义信息;第3层是卷积胶囊层,根据谱聚类结果得到高层胶囊;第4层是全连接胶囊层,经过谱聚类生成最终胶囊概率送入softmax分类器进行分类。

图1 基于谱聚类胶囊网络的文本分类模型

1.3.1 卷积层

卷积层利用卷积操作在句子不同位置提取特征。输入为n×k的矩阵,使用一个卷积核w与一个滑动窗口xi:i+h-1,产生一个特征mi。

其中,h为窗口中的单词数;b0为偏置参数;f(·)为非线性函数。每一次卷积操作都相当于一次对特征的提取。对于相同大小的B个卷积核,可以产生B个特征,这些特征可以重新排列为:

1.3.2 初级胶囊层

此胶囊层为第一个胶囊层,用矢量输出胶囊替换CNN中的标量输出。胶囊大小为d,使用一个大小为Mi窗口在标量特征上滑动,Wb表示不同的滑动窗口之间的共享滤波器,生成胶囊的实例化参数pi。其表达式如下。

其中:g(·)表示非线性压缩函数;b1为偏置项。胶囊的特征向量p可以表示:

1.3.3卷积胶囊层

在卷积胶囊层中,每个胶囊仅连接到局部区域中的胶囊。该区域中的胶囊乘上转换矩阵来学习低层胶囊跟高层胶囊之间的关系,然后根据谱聚类路由来更新高层胶囊的权重。

令变换矩阵WC属于RK×C×D×d×d,其中K×C为低层胶囊区域中的胶囊数,d为低层胶囊发送到高层胶囊的胶囊数。预测向量由式(9)得出:

1.3.4 全连接胶囊层

卷积胶囊层生成的胶囊在谱聚类路由后,被挤压成一个胶囊,并被送入全连接胶囊层中。

全连接胶囊层从谱聚类路由中学习到全局特征。

其中:x为输入;hw,b(x)为输出;T为W的转置。

最后将全连接胶囊层的输出送入softmax分类器,完成文本分类任务。

2 实验与结果分析

2.1 实验环境

为了验证算法在文本分类任务上的效果,采用基于Tensorflow的Keras进行开发,编程语言为Python3.6。服务器配置如下:操作系统为Ubuntu16.04,CPU为Inter Xeon E5-1620,主频为3.6 GHz,内存为16 G,GPU为Nvidia GeForce Titan X。

2.2 实验数据

采用搜狗实验室SougouCA数据集进行实验。SougoCA数据集包含429 819条文本,可被标出类别的共有14类,去掉4类样本数不足的数据,保留剩下10类样本作为分类文本分解。每类数据都选取2 000条文本,随机打乱数据集。训练集、验证集和测试集的划分比例为8∶1∶1。

实验的预处理部分先将下载好的文本转码,采用jieba分词工具对新闻文本数据进行分词处理,再加上对应的标签。

2.3 评价指标与实验设计

本文实验的性能评价指标主要包括:准确率、精确率、召回率、F1值。设TP为将正确类预测为正确类的个数;TN为将错误类预测为正确类的个数;FP为将错误类预测为正确类的个数;FN为将正确类预测为错误类的个数。评价指标的计算公式如下:

本文进行的实验基于keras框架实现,使用Adam优化器,使用训练后的word2vec词向量作为第一个通道的词向量。在SogouCA数据集上的实验模型参数设置见表1。

表1 实验参数设置

其中高层胶囊个数11个,对应10类新闻分类,其中标签0不用,胶囊的模长代表所属分类的概率。

2.4 对比实验

为了验证本文提出方法的有效性,本文进行了3个实验。实验(1)与深度学习领域主流实验模型进行对比实验,实验(2)与其他胶囊网络论文所提出方法进行对比实验;实验(3)改变谱聚类k值进行实验。

实验(1)选取深度学习领域主流的模型在SogouCA数据集上进行比较实验,包括:LSTM、BiLSTM[9]、C-LSTM[10]、SC-Caps。使用上述模型进行实验3次,取平均值。实验结果见表2。

表2 实验(1)数据结果

从表2可以看出,与传统的CNN、LSTM网络相比,本文提出的胶囊网络模型在文本分类任务中表现更好。相较于传统的LSTM模型,F1值提高了5.76个百分点。而CNN和LSTM结合的网络中进行的池化操作会导致特征信息丢失,使用胶囊网络将标量信息转化为矢量信息,通过谱聚类路由将低层胶囊的特征信息传递到高层胶囊中,从而更好地捕捉文本中的特征信息。

实验(2)中将本文提出方法与其他不同路由方式的胶囊网络方法进行比较,对比结果见表3。

表3 实验(2)数据结果

通过比较可以发现,本文提出的方法相较于文献[3]提出的模型准确率提高了0.34个百分点、F1值提高了2.02个百分点,该模型使用了32个高层胶囊,模型较为复杂,训练所需时间较长。相较于文献[4]使用的静态路由胶囊网络准确率提升了1.75个百分点,F1值提升了0.22个百分点。由此说明本文提出的SC-Caps文本分类模型实验(3)中改变SC-Caps中第一次谱聚类的k值,在数据集SogouCA上做对比实验,第二次谱聚类的k值对应类别数固定为11,实验结果如图2所示。

图2 不同k值的分类结果对比(准确率)

基于上述实验结果,谱聚类中选定的k值对SCCaps网络有一定影响,在k=15时达到SC-Caps的最佳效果;但继续增加k值后,分类效果反而下降。这是由于当聚类数k值较大时,会使得聚类不均匀,影响算法的精确性,导致准确率下降。因此在本文的其他实验中设置SC-Caps的谱聚类k值为15,以获得更好的表现。

3 结论

本文结合谱聚类和CapsNet的优点,提出了一种基于谱聚类胶囊网络的文本分类模型。该模型用谱聚类路由取代了原有胶囊网络的动态路由机制,将初级胶囊层送入的高维特征转化为低维的子特征再送入高层胶囊中,进而提高胶囊网络的运算效率和精度。此外,本文还在搜狗语料库SogouCA上进行了文本分类实验,与其他算法的对比表明本文提出的SC-Caps文本分类算法表现较好,有效提高了文本分类的准确率。

本文在路由方式上进行了改进,在一定程度上实现分类算法的改善,但胶囊网络的卷积层特征提取能力和网络整体结构有待进一步优化。下一步研究工作将加强对特征提取算法和胶囊网络模型结构的研究。

猜你喜欢
路由聚类卷积
基于3D-Winograd的快速卷积算法设计及FPGA实现
铁路数据网路由汇聚引发的路由迭代问题研究
卷积神经网络的分析与设计
基于K-means聚类的车-地无线通信场强研究
多点双向路由重发布潜在问题研究
一种基于虚拟分扇的簇间多跳路由算法
从滤波器理解卷积
路由重分发时需要考虑的问题
基于傅里叶域卷积表示的目标跟踪算法
基于高斯混合聚类的阵列干涉SAR三维成像