基于CNN和LSTM的多通道注意力机制文本分类模型

2021-12-12 02:51滕金保孔韦韦田乔鑫王照乾
计算机工程与应用 2021年23期
关键词:注意力语义卷积

滕金保,孔韦韦,田乔鑫,王照乾,李 龙

1.西安邮电大学,西安 710121

2.桂林电子科技大学,广西 桂林 541004

3.陕西省网络数据分析与智能处理重点实验室,西安 710121

4.广西可信软件重点实验室,广西 桂林 541004

文本分类是自然语言处理中最经典、最重要的任务之一,主要任务是将给定的文本数据集按照已知的类别进行归类。文本分类技术便于人们对文本数据处理,有助于提取文本中最有价值的信息,也是自然语言处理中一项最基本的任务,在情感分析[1]、垃圾邮件识别[2]、舆情分析[3]等任务中有重要的研究意义,受到了人们的高度重视。

传统的文本分类算法主要是基于统计的分类算法,结合特征工程与机器学习模型实现对文本的分类[4]。Hindi等[5]提出了一种改进的KNN模型,该模型的距离函数利用词频和它们之间的顺序关系进行距离计算,首先对文本数据进行预处理和特征提取,然后使用KNN算法对文本分类数据集的距离进行了评估。Ying等[6]提出了改进的贝叶斯算法来解决文本分类问题,首先使用贝叶斯算法进行文本分类并计算准确率,同时与其他方法进行比较,确定所用方法的有效性,然后通过修改设定的阈值来提高预测的准确率,使得模型能够更有效地预测出具有特定意义的文本。文献[7]提出用改进的朴素贝叶斯来解决文本分类问题,通过构造一个相关因子,该因子包含了不同类之间的总体相关性,有效地利用了自举的思想,对于较小的训练集数据仍然有不错的效果。以上改进的机器学习模型虽然在一定程度上提高了文本分类的效果,但文本特征需要人工提取,且没有考虑不同特征之间的相关性,忽略了特征之间的相互影响,同时文本存储存在高维稀疏、表达能力弱的缺点[8]。

随着研究的深入,Word2vec通过对大规模文本数据进行训练,将文本表示成低维稠密的向量空间,大大降低了文本数据存储的难度,且考虑了词语之间的相关性,更好地表示了文本数据,这极大地推动深度学习在文本分类上的广泛应用[9]。卷积神经网络(Convolutional Neural Network,CNN)是近年来最流行的深度学习算法之一,卷积核通过设置不同的权重来提取多维特征,然后经过池化层获取局部关键信息,通过其特有的网络结构和权值共享策略使得降维速度更快且训练的参数相对较少,网络结构简单高效且适应性强[10]。Fesseha等[11]提出基于卷积神经网络和低资源语言词汇嵌入的文本分类方法,构建了一个连续词袋方法的CNN,一个跳字方法的CNN,以及是否包含Word2vec的CNN来评价新闻文章,实验结果相较于传统机器学习方法有很大的提升。Qiu等[12]提出一种基于奇异值分解算法(SVDCNN)的卷积神经网络模型,首先采用奇异值分解算法代替池化层进行特征提取和降维,然后采用部分采样梯度下降算法(PSGD)对模型参数进行优化,在保证模型训练稳定的同时加快了模型的收敛速度。基于改进卷积神经网络的短文本分类模型[13]用改进的CNN提取不同粒度的短文本特征,有效提取到关键信息且模型分类准确率较高。虽然CNN和其改进模型可以有效提取局部关键信息,且分类效果较好,但忽略了上下文语义信息[14]。循环神经网络(Recurrent Neural Network,RNN)作为自然语言的标配,可以更好地处理文本上下文信息,高效地挖掘文本潜在的语义信息,但由于在处理长文本时会导致部分信息的丢失,因此目前多采用RNN的变体长短时记忆网络(Long Short-Term Memory,LSTM)进行文本上下文语义信息的提取。Ibrahim等[15]提出一种用于多标签生物医学文本分类的混合神经网络,首先利用CNN提取最具区分度的特征,同时用BiLSTM获取上下文信息,然后将两个网络的输出进行融合。该算法结合了CNN和LSTM提取文本特征的优点,大幅度提高了模型预测的效果,但没有考虑到文本中最关键的信息,没有将注意力集中在重要的词语上[16]。CNN和LSTM在提取文本信息时都有各自的优势,但都存在可解释性弱的不足的缺点,为此,Bahdanau等[17]将注意力(Attention)机制引入RNN并在机器翻译任务中取得了不错的成绩,开启了Attention机制在自然语言的先河。Zhang等[18]提出基于注意力的双向GRU情感分析模型,利用双向门循环单元提取上下文语义信息,结合注意力机制进行情感分析,模型预测的准确率和训练速度都有极大的提升。Li等[19]提出了一种基于门控注意力机制的双向长短时记忆网络和基于正则表达式分类器相结合的文本分类方法,利用了基于规则算法的可解释性,并通过引入注意力机制将注意力集中在句子的关键部分,大幅度提高了文本分类的效果。以上模型虽然有效地提升了模型预测的效果,但大都采用递进式网络结构,提取到的信息向后传递时容易发生梯度消失和爆炸问题,同时递进式网络结构提取文本特征时只用到单一网络的优势,无法融合CNN和RNN提取文本特征的优势,因此分类效果有待提升。

CNN提取特征时通过设置不同大小的卷积核可以有效地提取局部关键信息。LSTM相较于RNN可以更有效地处理长文本,缓解梯度问题,可以更好地提取上下文语义信息。Attention机制通过设置不同的权重可以将注意力放到对最终结果影响较大的单词上。因此,为进一步提升文本分类的效果,充分利用文本信息中最关键最有价值的信息,本文提出一种基于CNN和LSTM的多通道注意力机制文本分类模型MCCL(Multi-Channel-CNNAtt-LSTMAtt),主要内容如下:

(1)利用词嵌入技术训练词向量,将文本信息表示成低纬的稠密矩阵;

(2)用CNN和LSTM提取文本局部信息和上下文特征,将输出信息作为多通道注意力的输入提取注意力分值;

(3)将多通道注意力的输出信息融合,得到最终的文本信息向量表示,根据这个向量进行文本分类。

本文提出的MCCL模型充分利用了CNN和LSTM提取文本特征的优点,在此基础之上引入多通道注意力机制,根据不同单词对分类结果影响的大小赋予不同的权重,使单词在分类任务中起更不同的作用,达到提高分类效果的目的。

图1 模型总体架构图Fig.1 Overall architecture diagram of model

1 MCCL模型

本文提出MCCL模型,主要包含词嵌入层、CNNAttention层、LSTM-Attention层,总体架构如图1所示。

1.1 词嵌入层

分类任务前需要将文本转换成计算机可以识别的数字矩阵,并用固定长度的实数表示,这种表示方式称为词嵌入[20]。发展初期多采用独热编码的方式进行转换,根据词汇表的大小将每个单词表示成相应维度的数字矩阵,矩阵中对应词汇表顺序编号位置为1,其余位置为0,这种方式表示虽然可以唯一标识每个词语但无法体现词语之间的相关性,且向量维数与词汇表大小正相关,容易导致维数灾难问题的发生。

MCCL模型采用Word2vec模型训练词向量,该模型是通过对大规模文本数据进行训练而得到的低纬且稠密的词向量,可以更好地表示词语之间的关系及信息。Word2vec模型有Skip-gram和CBOW两种结构,如图2所示。

图2 Skip-gram结构和CBOW结构Fig.2 Skip-gram structure and CBOW structure

Skip-gram和CBOW都由输入层、映射层、输出层组成,Skip-gram使用中心词预测周围的词,CBOW使用周围的词预测中心词。CBOW的训练速度比Skip-gram快,但Skip-gram比CBOW表达文本语义的效果更好[21],因此本文选用Skip-gram训练词向量。Skip-gram在训练时通过中间词向量Wt的条件概率值来求解上下文词向量,计算公式为:

假设输入到模型中的一条文本的单词数为N,用向量[W1,W2,…,Wn]来表示这条文本,在经过词嵌入层后文本表示转换成X=[x1,x2,…,xn],xi∈Rd,其中d为词向量维度。

1.2 CNN-Attention层

CNN由若干卷积层、Pooling层、全连接层组成,具有较强的特征提取能力,通过设置不同大小的卷积核可以有效地提取局部关键信息,然后通过Pooling层对输入的特征图进行压缩,使特征图变小,简化网络计算复杂度,最后由全连接层连接所有的特征,将输出值送给分类器。MCCL模型采用TextCNN[19]结构提取特征,如图3所示。

Attention机制的本质是为不同的特征赋予一组权重值,在文本分类任务中表示为权重越大的词越重要,对最终的结果影响也就越大。将注意力放在对文本分类结果影响较大的词上可以有效提升分类的效果。

CNN-Attention层进行特征处理时首先将文本表示成词向量矩阵形式,然后使用多个不同大小的卷积核对矩阵进行卷积,将卷积后的结果进行最大池化操作得到一个新的特征向量Yi,然后作为多通道注意力的输入,计算每个特征向量与整个特征向量匹配得分为:

图3 Text-CNN模型Fig.3 Text-CNN model

公式中是比词向量更高一级的文本表示形式,开始时初始化该向量,随着模型训练时更新,分数值越大表明对应注意力越大,该词也越重要。特征向量得分占总体百分比为:

公式中j∈[0,L],得到每个特征向量对应的百分比后再对所有特征向量进行求和再平均,得到最终向量V,计算公式为:

1.3 LSTM-Attention层

LSTM是一种改进的RNN,通过在神经元加入输入门i、遗忘门f、输出门o、内部记忆单元c使得在处理长序列文本时更加有优势,缓解了梯度消失和爆炸的现象的发生,相较于RNN可以更有效地提取文本上下文信息。输入门i控制当前时刻网络的输入Xt有多少保存到单元状态Ct,遗忘门f决定上时刻的单元状态Ct-1有多少保留到当前时刻Ct,输出门o控制单元状态Ct有多少输出到LSTM的当前输出值Ht。模型结构如图4所示。

图4 LSTM结构图Fig.4 LSTM structure diagram

当输入的文本词向量矩阵为X=[x1,x2,…,xk]时,则LSTM的更新公式为:

公式中σ(·)为Sigmoid激活函数,tanh(·)为双曲正切函数,W为对应的权重,b为偏置,Ht为最终的输出。将LSTM提取文本上下文信息后的输出Ht作为多通道注意力的输入,模型结构如图5所示。

图5 LSTM-Attention结构图Fig.5 LSTM-Attention structure diagram

Ht经过公式(2)~(4)计算后得到经过LSTM-Attention最终向量T,即包含了文本上下文信息,又将注意力放在了重要的词语上,更好地表示了语义信息。

2 实验结果及分析

2.1 实验环境与数据集

实验在Ubuntu 18.04系统上进行,CPU为Intel®Xeon®Gold 5218,深度学习框架为Tensorflow2.1.0,使用Python3.6编程语言,为更好地表示语义信息采用Skip-gram训练词向量,且采用CUDA10.1进行加速计算,具体实验环境如表1所示。

表1 实验环境Table 1 Experimental environment

数据集采用IMDB英文电影评论数据集、复旦大学中文数据集、THUCNews数据集。IMDB数据集为二分类数据集,分为消极评论和积极评论,数据集噪声特征少,分类难度低。复旦大学中文数据集共有20个类别,文本多为文献内容且篇幅较长,噪声特征较多。THUCNews数据集共有14个类别,噪声特征较少,由于数据全集样本过多,本文随机抽取了42 000条样本进行实验。各数据集均进行了预处理,去除特殊字符以及标点符号,并进行分词处理,详细信息如表2所示。

表2 数据集统计信息Table 2 Data set statistics

2.2 训练参数设置

词向量训练时,为了更好地表示语义信息,采用Skip-gram结构进行训练,同时为了避免不常用单词对实验结果造成影响,在训练词向量时选取词频前6 000的单词进行训练。为了防止过拟合现象的发生在CNN、LSTM网络层中设置Drop_out值为0.5,随机失活50%的神经单元,采用ReLu激活函数在加快收敛速度的同时也可以进一步防止过拟合现象的发生。采用多分类任务中常用的交叉熵损失函数,优化器为Adam,Batch_size为256,Epoch为10,具体参数如表3~5所示。

表3 Word2vec网络参数Table 3 Word2vec network parameters

表4 CNN网络参数Table 4 CNN network parameters

表5 LSTM网络参数Table 5 LSTM network parameters

2.3 模型评估标准

采用分类任务常见的评估标准:准确率、精确率、召回率以及F1值对MCCL模型进行评估。准确率(Acc)表示预测正确的样本占总样本的比重,精确率(Pre)表示实际类别且预测类别都为正的样本占所有预测类别为正的样本比重,召回率(Rec)表示实际类别且预测类别都为正的样本占所有实际类别为正的样本比重,F1值为准确率和召回率的加权调和平均值。混淆矩阵如表6,指标计算如式(10)~(13)所示。

表6 混淆矩阵Table 6 Confusion matrix

2.4 对比实验

为验证提出的MCCL模型预测性能,在同等实验环境下与以下基准模型进行对比:

(1)CNN-LSTM[22]:首先用CNN提取文本局部关键信息,然后用LSTM提取CNN输出的上下文语义信息。

(2)CNN-RNN[23]:首先用CNN提取局部关键信息,然后用RNN提取CNN输出的上下文语义信息。

(3)LSTM-CNN[24]:首先用LSTM提取文本上下文语义信息,然后用CNN提取LSTM输出的局部关键信息系。

(4)CNN-Attention[25]:首先用CNN提取局部关键信息,然后用Attention计算CNN输出信息的注意力分值。

(5)LSTM-Attention[26]:首先用LSTM提取上下文语义信息,然后用Attention计算LSTM输出信息的注意力分值。

(6)CNN-LSTM-Attention(CLA)[27]:首先用CNN提取局部关键信息,然后用LSTM提取CNN输出信息的上下文语义信息,最后用Attention计算注意力分值。

(7)LSTM-CNN-Attention(LCA)[28]:首先用LSTM提取上下文语义信息,然后用CNN提取LSTM输出信息的局部关键信息,最后用Attention计算注意力分值。

(8)CNN+LSTM[29]:首先用CNN和LSTM提取文本局部关键信息和上下文语义信息,然后将输出信息进行融合后分类。

MCCL和以上基准模型在3个公开数据集上的实验结果如表7~9。

表7 IMDB实验结果对比Table 7 Comparison of IMDB experimental results%

表8 复旦大学中文数据集实验结果对比Table 8 Comparison of experimental results of Chinese data sets in Fudan University %

表9 THUCNews数据集实验结果对比Table 9 Comparison of experimental results of THUCNews data set%

从表中可以看出MCCL模型在三个数据集上的表现最优,大幅度提升了文本分类的效果。相较于CNNLSTM模型效果分别提升了4.98个百分点、4.20个百分点、6.30个百分点,这是因为CNN-LSTM模型使用的是递进结构,CNN提取特征时虽然可以有效提取局部关键信息,但会导致部分信息的丢失,经过CNN提取后的语义信息向后传递时是不完整的,而MCCL模型不仅提取到了局部关键信息,还有效地提取了上下文信息,信息向后传递时是完整的,因此分类效果会更好。相较于CNN-RNN模型效果分别提升了5.39个百分点、5.20个百分点、6.99个百分点。相较于LSTM-CNN模型效果提升了3.48个百分点、3.24个百分点、4.89个百分点,这是因为LSTM-CNN模型提取文本信息时虽然可以有效提取上下文信息,但进行分类时认为每个单词对最终的结果影响相同,没有将注意力集中在更重要的单词上,而MCCL模型不仅可以有效提取特征,还将注意力集中在对分类结果影响大的单词上。同时可以看出CNNLSTM模型的分类效果要优于CNN-RNN模型,这是因为处理同样的信息LSTM可以有效地解决文本长依赖问题,且有效地缓解了梯度弥散和爆炸问题,而RNN无法处理长文本序列,更容易发生梯度弥散和爆炸问题,因此CNN-LSTM模型的性能优于CNN-RNN模型。对比LSTM-CNN模型和CNN-LSTM模型可以看出LSTM-CNN的性能要明显优于CNN-LSTM模型,这是因为CNN提取的是局部关键信息,如果在LSTM之前提取文本关键信息会导致对文本原始信息提取不全问题的发生,提取的信息向后传播时是不完整的,无法准确表示整个文本信息,而LSTM提取的是文本上下文信息,在提取信息层面可以更好地表示文本,向后传播时仍然是完整的信息,因此LSTM-CNN模型的分类效果要优于CNN-LSTM。相较于CNN-Attention模型效果分别提升了5.69个百分点、4.50个百分点、5.60个百分点,相较于LSTM-Attention模型效果分别提升了3.29个百分点、3.13个百分点、4.16个百分点,这是因为MCCL不仅将注意力放到了对分类结果影响大的单词上,更充分地提取了文本潜在的语义信息,而CNN-Attention模型在提取特征时只考虑了局部关键信息,LSTM-Attention模型提取特征时只考虑了上下文信息,因此MCCL模型性能更好。相较于CLA模型性能分别提升了3.28个百分点、3.33个百分点、3.60个百分点,相较于LCA模型性能分别提升了3.09个百分点、1.98个百分点、2.52个百分点,这是因为使用递进式的结构更容易出现梯度消失和爆炸的问题,而MCCL模型采用并行结构提取特征,有效缓解了梯度的问题,进行特征提取时更是结合了CNN和LSTM的优势,因此分类效果要明显优于以上模型。相较于CNN+LSTM模型效果分别提升了2.29个百分点、1.58个百分点、1.40个百分点,CNN+LSTM模型虽然可以有效提取局部关键信息和上下文信息但进行分类认为每个词对最终的结果起同等作用,而在文本分类任务中一些词语相对于其他词语起的作用可能更大,甚至决定了最终分类的结果,而MCCL模型在CNN+LSTM的基础上引入了Attention机制,通过计算注意力分值赋予每个单词不同权重,从而可以有效识别对分类结果影响较大的词语,因而分类效果要优于CNN+LSTM。

从表7~9中可以看出MCCL模型不仅在准确率上有很大的提升,在精确率、召回率、F1值上的提升效果也比较明显。在IMDB数据集上精确率、召回率、F1值分别提升了2.90个百分点、2.53个百分点、3.11个百分点,在复旦大学中文数据集上精确率、召回率、F1值分别提升了2.41个百分点、2.04个百分点、2.27个百分点,在THUCNews数据集上精确率、召回率、F1值分别提升了2.08个百分点、1.87个百分点、2.40个百分点,充分显示了MCCL模型的优势。

为进一步展示MCCL模型的优越性,本文对每个模型的训练过程进行了进一步探究,得出了复旦大学中文数据集训练过程的校验集准确率,如图6所示。

从图中可以看出CNN-LSTM模型和LSTM-CNN模型曲线波动较大,在第8个Epoch才开始收敛,CLA模型和LCA模型曲线相对平滑,最终的准确率较高,但收敛速度相对较慢,提出的MCCL模型不仅收敛速度更快,且曲线整体相对平缓,训练过程稳定且准确率高,且在后续的训练过程中一直处于领先优势,进一步体现了MCCL模型的优势。

图6 复旦大学中文数据集校验集准确率Fig.6 Accuracy of Chinese data set check set in Fudan University

分类的准确率是评价模型效果的重要指标,但训练过程中的消耗也是一个重要的指标。因此,在以上实验的基础上对比模型的训练时间,如表10所示。

表10 训练时间实验结果Table 10 Experimental results of training time min

训练时间实验是在单机下进行的,系统为Ubuntu Server 18.04 LTS,CPU为Intel®Xeon®Gold 5218,GPU:Ampere A100 77 40 GB,采用CUDA10.1加速计算。从表中可以看出MCCL模型的训练时间较短,接近所有对比实验中最短训练时间,这是因为多通道并行结构相较于串行结构不仅能有效提取文本语义特征,还可以充分地利用计算机性能进行加速运算。由此可见,MCCL模型在训练阶段具有较快的收敛速度,可以有效地减少训练时间的消耗。

2.5 参数分析

超参数的设置对最终实验结果有重要的影响,为进一步提升MCCL模型的性能,对卷积核大小、Embedding维度、LSTM隐藏层大小进行进一步探究。固定其他超参数,设置卷积核大小为1~10,实验结果如图7所示。

图7 卷积核大小对实验结果影响Fig.7 Influence of convolution kernel size on experimental results

设置Embedding维度为50、100、200、300,实验结果如图8所示。

图8 Embedding维度大小对实验结果影响Fig.8 Influence of Embedding dimension size on experimental results

设置LSTM隐藏层大小为64、128、256、512,实验结果如图9所示。

图9 LSTM隐藏层大小对实验结果影响Fig.9 Influence of LSTM hidden layer size on experimental results

从图7中可以看出卷积核为3时分类准确率最高,其次是2和4,且分类接近,选取最优的卷积核大小结合分类结果相近的卷积核可以提升效果[19],因此MCCL模型最佳的卷积核大小设置为2、3、4。从图8中可以看出当Embedding维度为200时效果最好,维度为300时接近最佳分类效果,但考虑到模型复杂度及分类效率等问题,因此选择Embedding维度为200。从图9中可以看出FuDan数据集的分类效果随着LSTM隐层数的增大而增大,当隐层数大于256时增长的速率减缓,且隐层数为512时的分类效果和隐层数为256时的分类效果接近,这是因为FuDan数据集文本中单词数较多,增加隐藏层数可以更好地提取语义信息,当隐藏层数大于文本单词数时,分类效果会随着隐藏层数增大而递减。而IMDB和THUCNews数据集在隐层数为256时分类效果最好,因此LSTM隐藏层应设置为256。

2.6 消融实验

为验证MCCL模型的有效性,进行消融实验。将MCCL模型分解,设置CNN、LSTM、CNN+LSTM、CNNAttention、LSTM-Attention,实验结果如表11~13所示。

表11 IMDB消融实验结果Table 11 Experimental results of IMDB ablation%

表12 复旦大学中文数据集消融实验结果Table 12 Experimental results of Chinese data set ablation in Fudan University %

表13 THUCNews数据集消融实验结果Table 13 Experimental results of ablation on THUCNews data set %

从表中可以看出CNN和LSTM分类效果接近,CNN+LSTM分类效果要明显优于CNN和LSTM,这是因为CNN+LSTM结合了CNN和LSTM提取特征的优势,因此分类效果要优于单一的提取器。CNN-Attention分类效果明显优于CNN,这是因为CNN-Attention在CNN提取文本特征基础上引入Attention可以将注意力放在重要的特征上,而LSTM-Attention效果优于CNNAttention,这是因为LSTM相较于CNN可以有效提取到文本上下文语义信息,经过Attention后这种在提取文本信息上的差异在最终结果上被放大,因此LSTM结合Attention的效果要优于CNN结合Attention。MCCL分类效果最好,这是因为MCCL在提取文本信息时结合了CNN和LSTM的优势,有效提取了局部关键信息和上下文信息,在此基础上引入多通道注意力将注意力集中在对最终结果影响较大的单词上,提高了模型分类的效果。

3 总结

针对文本分类问题提出一种基于CNN和LSTM的多通道注意力机制文本分类模型MCCL,模型首先通过词嵌入将文本表示成低纬稠密词向量矩阵,然后利用CNN和LSTM提取局部关键信息和上下文语义信息,并用多通道注意力机制提取CNN和LSTM输出信息的注意力分值,最后将多通道注意力机制的输出信息进行融合,实现了有效提取文本特征的基础上将注意力集中在重要的词语上,提升了文本分类的效果。通过与其他模型对比实验进一步证明了MCCL模型的优势。下一阶段的研究工作是分析MCCL模型的各个参数对分类结果的影响,从而使模型分类效果更好,进一步提高文本分类的准确率。

猜你喜欢
注意力语义卷积
让注意力“飞”回来
基于3D-Winograd的快速卷积算法设计及FPGA实现
语言与语义
从滤波器理解卷积
基于傅里叶域卷积表示的目标跟踪算法
“扬眼”APP:让注意力“变现”
A Beautiful Way Of Looking At Things
“上”与“下”语义的不对称性及其认知阐释
认知范畴模糊与语义模糊
一种基于卷积神经网络的性别识别方法