开放科学(资源服务)标志码(OSID):
文本分类是自然语言处理领域的一项基础任务,在问答系统、主题分类、信息检索、情感分析、搜索引擎等方面发挥重要的作用。传统文本分类方法大部分在向量空间模型的基础上实现,文献[1]提出一种基于TF-IDF的改进文本分类方法,文献[2]提出使用支持向量机的分类方法,文献[3]提出一种特征加权的贝叶斯文本分类方法。但是,在使用传统特征提取方法表示短文本时存在数据稀疏与特征向量维度过高的问题。
随着深度学习技术的快速发展,越来越多的学者们将深度学习模型应用到自然语言处理中[4]。文献[5]通过构建神经网络语言模型训练词向量来获得文本的分布式特征。但是,其将词视为不可分割的原子表征,忽略了词的结构信息,这一不足引起了部分学者的注意,并对利用词的结构信息的方法进行了研究。文献[6-7]在学习过程中使用部首词典提取字词特征。文献[8]提出一种使用笔画n-gram提取汉字的笔画序列信息的方法,该方法可以训练得到含有汉字结构信息的词向量。深度学习技术在文本分类中也得到广泛应用,文献[9]利用卷积神经网络和预先训练的词向量对输入向量进行初始化,文献[10]通过使用循环神经网络(Recurrent Neural Network,RNN)来提取全局特征,文献[11]提出使用门控循环单元(Gated Recurrent Unit,GRU)和注意力机制进行文本分类,文献[12]提出胶囊网络并将其应用在文本分类任务中,减少了卷积神经网络(Convolutional Neural Network,CNN)在池化操作中的特征丢失问题。
本文提出一种结合GRU、注意力机制和胶囊网络的混合神经网络模型GRU-ATT-Capsule。使用GRU提取2种词向量的上下文特征,结合注意力机制对GRU提取的特征重新进行权重分配,对文本内容贡献较大的信息赋予较高的权重,并将重新计算得到的特征进行融合。利用胶囊网络进行局部特征提取,从而解决CNN在池化过程中的特征丢失问题。
1 相关工作 1.1 中文词向量表示方式传统词向量表示方式主要基于分布式假设,即上下文相似的词应具有相似的语义[13]。Word2Vec和Glove是2种具有代表性的词向量训练方式,由于高效性与有效性得到广泛应用[5, 14]。
汉语词向量表示方式的研究在早期多数是参照英文词向量表示方式:先对中文进行分词,再在基于英文的方法上进行大规模语料的无监督训练。但是,该方式忽略了汉字本身的结构信息[15]。因此,汉语学者们针对用于汉语的词向量进行研究。文献[16]设计汉字和词向量联合学习模型,该模型利用汉字层次结构信息改进中文词向量的质量。文献[7]在学习过程中使用部首词典提取字词特征,实验结果表明在文本分类以及词相似度上均有所提升。文献[17]使用卷积自动编码器直接从图像中提取字符特征,以减少与生词相关的数据稀疏问题,实验结果显示利用字符结构特征进行增强会取得一定的效果。文献[8]首先对汉字的笔画特征进行建模,将词语分解为笔画序列,然后使用笔画n-gram进行特征提取,在文本分类任务上相比于传统方法提升了1.9%的准确率。
1.2 基于胶囊网络的文本分类文献[18]提出胶囊网络,其思想是使用胶囊来代替CNN中的神经元,使模型可以学习对象之间的姿态信息与空间位置关系。文献[19]提出胶囊间的动态路由算法与胶囊网络结构,其在MNIST数据集上达到了当时最先进的性能。
胶囊网络与CNN的区别在于:1)使用胶囊(向量)代替神经元(标量);2)使用动态路由算法进行低层到高层的参数更新,而不是使用池化操作,从而避免信息丢失;3)使用压缩函数代替ReLU激活函数。由于高层胶囊是由底层胶囊通过动态路由算法利用压缩函数计算得出,由多个向量神经元共同决定与整体的关系,因此使得胶囊网络可以学习到文本的局部与整体之间的关联信息。
文献[12]使用两个并行的卷积层进行特征提取,并且其中一个卷积层使用ELU激活函数进行激活,然后将提取的特征按位置对应相乘,输入到胶囊网络,在精度和训练时间上均取得了较好的效果。
1.3 GRU和注意力机制文献[9]将CNN应用于文本分类,其使用预先训练的词向量来初始化输入向量,首先在卷积层中利用多个不同尺度的卷积核进行特征提取,然后采用池化操作提取主要特征,最后使用softmax分类器进行分类。文献[11]使用门控循环单元学习文本序列的上下文特征,并结合注意力机制为文本中的特征学习权重分布,相比基于LSTM的方法在准确度上取得了2.2%的提升。文献[20]提出一种结合CNN、双向门控循环单元(Bidirectional Gated Recurrent Unit,BiGRU)和注意力机制的文本分类方法,其首先使用CNN提取局部短语特征,然后使用BiGRU学习上下文特征,最后通过增加注意力机制对隐藏状态进行加权计算以完成特征权重的重新分配,相比基于attention-CNN的方法与基于attention-LSTM的方法在准确率与F1值上均有所提升。
2 模型设计本文提出一种GRU-ATT-Capsule混合模型用于文本分类。该模型由文本表示、全局特征提取和胶囊网络分类等3个模块组成,结构如图 1所示。
![]() |
Download:
|
图 1 GRU-ATT-Capsule混合模型结构 Fig. 1 Structure of GRU-ATT-Capsule hybrid model |
将文本序列表示为计算机能够处理的形式,表示方法主要包括离散表示和分布式表示。离散表示将文本中的每个词用向量表示,向量的维度就是词表的大小,该方式构建简单,但是不能表示词与词之间的关系,忽略了词的上下文语义。分布式表示考虑了词的上下文语义信息并刻画了词与词之间的语义相似度,并且维度较低,主要包括Word2Vec、Glove等常用的词向量表示。由于汉语的文字系统与英语为代表的字母语言存在不同,因此为了融合汉字结构特征,采用双通道输入策略,利用基于文献[8]的笔画n-gram方法来提取每个字对应的笔画向量,然后使用Skip-gram模型进行词向量训练获得CW2Vec。
假定文本序列包含n个词,将其One-hot表示为
$ {\boldsymbol{W}}_{i}={\boldsymbol{x}}_{i}{\boldsymbol{W}}_{k}^{p\times V} $ | (1) |
然后,得到词向量矩阵
循环神经网络是一种专门用于处理序列数据的神经网络,通过网络中的循环结构记录数据的历史信息,即当前隐藏层单元的输出不仅与当前时刻的输入有关,还依赖上一时刻的输出。RNN还可以处理变长序列。本文采用门控循环单元提取文本特征,它是LSTM的一种变体,在结构上与LSTM相似,不同点在于GRU简化了LSTM的门控结构。LSTM网络由输入门、输出门、遗忘门和记忆单元来实现历史信息的更新和保留。GRU将LSTM中的输入门和遗忘门合并,称为更新门
![]() |
Download:
|
图 2 GRU结构 Fig. 2 Structure of GRU |
GRU单元在时刻t的更新过程如式(2)~式(5)所示:
$ {\boldsymbol{r}}_{t}=\sigma \left({\boldsymbol{W}}_{\boldsymbol{r}}{\boldsymbol{x}}_{t}+{\boldsymbol{U}}_{\boldsymbol{r}}{\boldsymbol{h}}_{t-1}+{\boldsymbol{b}}_{\boldsymbol{r}}\right) $ | (2) |
$ {\boldsymbol{z}}_{t}=\sigma \left({\boldsymbol{W}}_{\boldsymbol{z}}{\boldsymbol{x}}_{t}+{\boldsymbol{U}}_{\boldsymbol{z}}{\boldsymbol{h}}_{t-1}+{\boldsymbol{b}}_{\boldsymbol{z}}\right) $ | (3) |
$ {\boldsymbol{h}}_{t}'=\mathrm{t}\mathrm{a}\mathrm{n}\mathrm{h}\left({\boldsymbol{W}}_{\boldsymbol{c}}{\boldsymbol{x}}_{t}+{\boldsymbol{U}}_{\boldsymbol{c}}\left({\boldsymbol{r}}_{t}\odot {\boldsymbol{h}}_{t-1}\right)+{\boldsymbol{b}}_{\boldsymbol{c}}\right) $ | (4) |
$ {\boldsymbol{h}}_{t}={\boldsymbol{z}}_{t}\odot {\boldsymbol{h}}_{t}'+\left(1-{\boldsymbol{z}}_{t}\right)\odot {\boldsymbol{h}}_{t-1} $ | (5) |
其中:
通过文本表示模块,长度为n的语句S可分别表示如下:
$ \begin{array}{l}{\boldsymbol{S}}_{a}=\left({\boldsymbol{z}}_{1}^{1}, {\boldsymbol{z}}_{2}^{1}, \cdots , {\boldsymbol{z}}_{i}^{1}\right), {\boldsymbol{z}}_{i}^{1}\in {\boldsymbol{W}}_{a}^{n\times V}\\ {\boldsymbol{S}}_{b}=\left({\boldsymbol{z}}_{1}^{2}, {\boldsymbol{z}}_{2}^{2}, \cdots , {\boldsymbol{z}}_{i}^{2}\right), {\boldsymbol{z}}_{i}^{2}\in {\boldsymbol{W}}_{b}^{n\times V}, i\in n\end{array} $ |
其中:
将文本表示
注意力机制是一种权重分配机制,对于重要的语义信息分配较多的注意力。在文本分类任务中,句子中不同的词对分类效果的影响是不同的,本文引入注意力机制识别文本中的重要信息。将GRU的隐藏层输出
$ {\boldsymbol{u}}_{i}=\mathrm{t}\mathrm{a}\mathrm{n}\mathrm{h}\left({\boldsymbol{W}}_{\boldsymbol{a}}{\boldsymbol{h}}_{t}+{\boldsymbol{b}}_{\boldsymbol{a}}\right) $ | (6) |
$ {\boldsymbol{a}}_{i}= \ \mathrm{s}\mathrm{o}\mathrm{f}\mathrm{t}\mathrm{m}\mathrm{a}\mathrm{x}\left({\boldsymbol{u}}_{i}\right) $ | (7) |
$ {\boldsymbol{v}}_{i}=\sum\limits _{i}{\boldsymbol{a}}_{i}{\boldsymbol{h}}_{i} $ | (8) |
其中:
将GRU的输出
CNN的池化操作会丢失大量的特征信息使得文本特征大幅减少,其中神经元为标量。在胶囊网络中使用胶囊(即向量)来代替CNN中的标量神经元。胶囊网络的输入输出向量表示为特定实体类别的属性,通过使用动态路由算法在训练过程中迭代调整低层胶囊与高层胶囊的权重
卷积胶囊层的输入为融合层的输出
$ {c}_{ij}=\frac{\mathrm{e}\mathrm{x}\mathrm{p}\left({b}_{ij}\right)}{\sum\limits _{k}\mathrm{e}\mathrm{x}\mathrm{p}\left({b}_{ik}\right)} $ | (9) |
其中:i表示底层;j表示高层。
路由算法利用式(10)中的变换矩阵
$ {\widehat{\boldsymbol{u}}}_{j\mid i}={\boldsymbol{W}}_{ij}{\boldsymbol{u}}_{i}' $ | (10) |
$ {\boldsymbol{s}}_{j}=\sum\limits _{i}{c}_{ij}{\widehat{\boldsymbol{u}}}_{j\mid i} $ | (11) |
$ {\boldsymbol{v}}_{j}=\frac{{‖{\boldsymbol{s}}_{j}‖}^{2}}{1+{‖{\boldsymbol{s}}_{j}‖}^{2}}\cdot \frac{{\boldsymbol{s}}_{j}}{‖{\boldsymbol{s}}_{j}‖} $ | (12) |
$ {b}_{ij}={b}_{ij}+{\widehat{\boldsymbol{u}}}_{j\mid i}\cdot {\boldsymbol{v}}_{i} $ | (13) |
为验证GRU-ATT-Capsule混合模型在文本分类中的效果,采用基于TensorFlow的Keras进行开发,编程语言为Python3.6。数据集被随机打乱。服务器配置如下:CPU为Intel Core i5-8500主频3.0 GHz,内存32 GB,硬盘1 TB,操作系统为Ubuntu16.04,GPU为GeForce RTX 2080 SUPER。
3.2 实验数据为评估GRU-ATT-Capsule混合模型的有效性,采用搜狗实验室的中文新闻数据集,该数据集包含419 715条数据,可被标出类别的共有14类,去掉4类样本数不足的数据,保留其中的10类作为分类文本分解。每类数据选择2 000条文本,训练集、验证集和测试集的划分比例为8∶1∶1。数据集分布如表 1所示。
![]() |
下载CSV 表 1 数据集样本类别分布 Table 1 Dataset sample category distribution |
实验的预处理部分首先将文本数据进行转码,然后使用Jieba分词工具对每条数据进行分词,再加上对应的标签。
3.3 评价指标与实验设置实验采用准确率作为评价标准,准确率计算公式如下:
$ {A}_{\mathrm{A}\mathrm{c}\mathrm{c}}=\frac{{T}_{\mathrm{T}\mathrm{P}}+{T}_{\mathrm{T}\mathrm{N}}}{{T}_{\mathrm{T}\mathrm{P}}+{F}_{\mathrm{F}\mathrm{N}}+{F}_{\mathrm{F}\mathrm{P}}+{T}_{\mathrm{T}\mathrm{N}}} $ | (14) |
其中:
使用搜狗语料SogouCA训练CW2Vec词向量作为第1个通道的词向量。窗口
从训练集、验证集和测试集出发比较TextCNN、BiGRU-ATT和GRU-ATT-Capsule混合模型的文本分类效果,实验结果如表 2所示。
![]() |
下载CSV 表 2 3种神经网络模型的分类准确率对比 Table 2 Comparison of classification accuracy of three neural network models |
3种模型的epoch设置为40,在训练集上的准确率均达到98%以上,其中基于GRU-ATT-Capsule混合模型的文本分类准确率最高,达到99.63%。在验证集上的分类准确率均达到82%以上,仍是基于GRU-ATT-Capsule混合模型的文本分类准确率最高,达到89.25%。对于测试集,3种模型在测试集上的分类准确率明显低于训练集和验证集,但是本文GRU-ATT-Capsule混合模型的准确率仍为最高,达到87.55%。由此可见,在文本分类任务中,本文提出的GRU-ATT-Capsule混合模型的分类效果要优于TextCNN模型和BiGRU-ATT模型。
由于卷积神经网络的池化操作会导致特征信息丢失,因此采用动态路由机制的胶囊网络用于获得合适的权重,将低层胶囊的特征信息传递到高层胶囊中,从而更好地捕捉文本序列中的特征信息。为进一步证明本文融合的笔画特征对文本分类的有效性,设置模型对比实验进行分类性能验证。将GRU-ATT-Capsule混合模型的输入分别设置如下:
1)Single:采用单通道输入,使用随机初始化的Word2Vec词向量作为输入,在训练过程中通过模型的反向传播进行不断调整。
2)Dual:采用双通道输入,一个通道采用包含笔画特征的CW2Vec词向量作为输入,另一个通道采用随机初始化的Word2Vec词向量作为输入,在训练过程中可以通过模型的反向传播进行不断调整。
2种输入方式下的GRU-ATT-Capsule混合模型分类准确率对比结果如表 3所示。由表 3可知,本文提出的融合笔画特征的GRU-ATT-Capsule混合模型在验证集和测试集上的分类准确率相比基于单通道输入的GRU-ATT-Capsule混合模型分别提高了0.15和0.45个百分点,由此说明本文所提出的融合笔画特征的GRU-ATT-Capsule混合模型相比基于单通道输入的GRU-ATT-Capsule混合模型能够提取包括汉字结构在内的更多的文本特征,从而提高文本分类效果。
![]() |
下载CSV 表 3 2种输入方式下的GRU-ATT-Capsule混合模型分类准确率对比 Table 3 Comparison of classification accuracy of GRU-ATT- Capsule hybrid model with two input modes |
本文提出一种融合笔画特征的胶囊网络文本分类方法。通过2种不同的词向量来表示文本内容,补充文本的汉字结构特征。使用GRU模型提取全局文本特征,在GRU后引入注意力机制,并利用注意力机制对词的权重进行调整进一步提取文本序列中的关键信息。融合2种表示结果作为胶囊网络的输入,通过胶囊网络解决了卷积神经网络池化操作的信息丢失问题。实验结果证明了GRU-ATT-Capsule混合模型的有效性。后续将对GRU-ATT-Capsule混合模型的词向量融合方式进行改进,进一步提高文本分类准确率。
[1] |
叶雪梅, 毛雪岷, 夏锦春, 等. 文本分类TF-IDF算法的改进研究[J]. 计算机工程与应用, 2019, 55(2): 104-109, 161. YE X M, MAO X M, XIA J C, et al. Improved approach to TF-IDF algorithm in text classification[J]. Computer Engineering and Applications, 2019, 55(2): 104-109, 161. (in Chinese) |
[2] |
WANG Z Q, SUN X, ZHANG D X, et al. An optimal SVM-based text classification algorithm[C]//Proceedings of 2006 International Conference on Machine Learning and Cybernetics. Washington D.C., USA: IEEE Press, 2006: 1378-1381.
|
[3] |
ZHANG L G, JIANG L X, LI C Q, et al. Two feature weighting approaches for naive Bayes text classifiers[J]. Knowledge-Based Systems, 2016, 100: 137-144. DOI:10.1016/j.knosys.2016.02.017 |
[4] |
OTTER D W, MEDINA J R, KALITA J K. A survey of the usages of deep learning for natural language processing[J]. IEEE Transactions on Neural Networks and Learning Systems, 2021, 32(2): 604-624. DOI:10.1109/TNNLS.2020.2979670 |
[5] |
MIKOLOV T, CHEN K, CORRADO G, et al. Efficient estimation of word representations in vector space[EB/OL]. [2020-12-15]. https://arxiv.org/pdf/1301.3781.pdf.
|
[6] |
SUN Y M, LIN L, YANG N, et al. Radical-enhanced Chinese character embedding[C]//Proceedings of 2014 International Conference on Neural Information Processing. Berlin, Germany: Springer, 2014: 279-286.
|
[7] |
武娇, 洪彩凤, 顾永春, 等. 基于类邻域字典的线性回归文本分类[J]. 计算机工程, 2021, 47(8): 93-99, 108. WU J, HONG C F, GU Y C, et al. Linear regression text classification based on class-wise nearest neighbor dictionary[J]. Computer Engineering, 2021, 47(8): 93-99, 108. (in Chinese) |
[8] |
CAO S, LU W, ZHOU J, et al. CW2Vec: learning Chinese word embeddings with stroke n-gram information[EB/OL]. [2020-12-15]. https://ojs.aaai.org/index.php/AAAI/article/view/12029.
|
[9] |
KIM Y. Convolutional neural networks for sentence classification[EB/OL]. [2020-12-15]. https://arxiv.org/abs/1408.5882.
|
[10] |
TIAN Z X, RONG W G, SHI L B, et al. Attention aware bidirectional gated recurrent unit based framework for sentiment analysis[C]//Proceedings of International Conference on Knowledge Science, Engineering and Management. Berlin, Germany: Springer, 2018: 67-68.
|
[11] |
DU C S, HUANG L. Text classification research with attention-based recurrent neural networks[J]. International Journal of Computers Communications & Control, 2018, 13(1): 50-60. |
[12] |
KIM J, JANG S, PARK E, et al. Text classification using capsules[J]. Neurocomputing, 2020, 376: 214-221. DOI:10.1016/j.neucom.2019.10.033 |
[13] |
HARRIS Z S. Distributional structure[M]. Berlin, Germany: Springer, 1970.
|
[14] |
PENNINGTON J, SOCHER R, MANNING C. Glove: global vectors for word representation[C]//Proceedings of 2014 Conference on Empirical Methods in Natural Language Processing. Stroudsburg, USA: Association for Computational Linguistics, 2014: 1532-1534.
|
[15] |
赵浩新, 俞敬松, 林杰. 基于笔画中文字向量模型设计与研究[J]. 中文信息学报, 2019, 33(5): 17-23. ZHAO H X, YU J S, LIN J. Design and research on Chinese word embedding model based on strokes[J]. Journal of Chinese Information Processing, 2019, 33(5): 17-23. (in Chinese) |
[16] |
CHEN X, XU L, LIU Z, et al. Joint learning of character and word embeddings[C]//Proceedings of International Joint Conference on Artificial Intelligence. Palo Alto, USA: AAAI Press, 2015: 1236-1242.
|
[17] |
SU T R, LEE H Y. Learning Chinese word representations from glyphs of characters[EB/OL]. [2020-12-15]. https://arxiv.org/abs/1708.04755.
|
[18] |
HINTON G E, KRIZHEVSKY A, WANG S D. Transforming auto-encoders[C]//Proceedings of International Conference on Artificial Neural Networks. Berlin, Germany: Springer, 2011: 44-51.
|
[19] |
SABOUR S, FROSST N, HINTON G E. Dynamic routing between capsules[EB/OL]. [2020-12-15]. https://arxiv.org/abs/1710.09829.
|
[20] |
王丽亚, 刘昌辉, 蔡敦波, 等. CNN-BiGRU网络中引入注意力机制的中文文本情感分析[J]. 计算机应用, 2019, 39(10): 2841-2846. WANG L Y, LIU C H, CAI D B, et al. Chinese text sentiment analysis based on CNN-BiGRU network with attention mechanism[J]. Journal of Computer Applications, 2019, 39(10): 2841-2846. (in Chinese) |