APP下载

CGGA:一种CNN与并行门控机制混合的文本分类模型

2021-03-22马建红刘亚培刘言东陶永才

小型微型计算机系统 2021年3期
关键词:字符卷积神经网络

马建红,刘亚培,刘言东,陶永才,石 磊,卫 琳

1(郑州大学 软件学院,郑州 450002) 2(郑州大学 信息工程学院,郑州 450001) 3(河南省国土资源电子政务中心,郑州 450002)

1 引 言

新闻通过公开媒体传播,随着网络的快速发展,纸质新闻时代迅速转变为网络媒体时代,随之新闻文本数量呈指数级增长.如何在海量信息中对文本正确、高效地分类,是自然语言处理发展中一个重要的问题.相比国外文本分类技术的发展,国内文本分类技术起步较晚,且中英文表述方式不同,因此两者在文本分类技术研究中会面临不同的问题[1].

传统的文本分类方法是将特征工程与分类方法结合进行文本分类[2].特征工程中,文本通过词袋模型、n-grams词袋模型、向量空间模型等,将文本转化为计算机可理解的方式.之后,利用布尔权重计算、TF-IDF权重计算、基于熵概念的权重计算等方法,进行特征选择.最后利用朴素贝叶斯算法(Naive Bayesian algorithm)、K近邻算法(k-Nearest Neighbor,KNN)、决策树方法、支持向量机分类等分类方法,对文本进行分类.这些分类方法特征表达能力差,序列捕捉能力弱,很难深层次的表征文本信息.而对于文本数据,最重要的是如何更好的选取特征,以及快速捕捉到上下文等信息.

随着深度学习的发展,利用神经网络来处理文本分文本类问题成为研究热点.基于卷积神经网络(Convolutional Neural Networks,CNN)、循环神经网络(Recurrent Neural Network,RNN)的方法可以有效的缓解词语特征表征能力弱,序列捕捉能力差等问题.卷积神经网络[3]通过稀疏交互和权值共享,来进行特征提取,并能有效的减少学习参数的参数量,从而提高运算效率.循环神经网络通过上一时刻的信息和当前时刻的输入,来确定当前时刻的信息,保持了数据中的依赖关系,有效的解决了序列数据的处理问题.但是随着卷积神经网络、循环神经网络在文本处理上的研究越来越深入,关于以上两种网络处理序列型数据的缺点也随之暴露.CNN会出现忽略局部与整体之间的关联性的问题,RNN则存在随着递归,权重指数级爆炸或消失、难以捕捉长期时间关联等问题.并且,对于中文文本分类研究中,存在文本分类准确率不高、容易出现忽视上下文信息特征问题.

现有的神经网络文本分类模型大多是几个模型的简单堆叠,没有很好的对模型的缺点针对性的优化,并且对于中文的文本分类研究较少,且中文文本分类仍存在分类准确率低、缺少多方面特征提取等问题.为了解决以上问题,本文在卷积神经网络(CNN)的基础上引入双向门控循环单元(Bidirectional Gated Recurrent Unit,BiGRU)来学习上下文信息,增强局部与整体之间关联性,弥补卷积网络提取特征多样性的不足;利用门控Tanh-ReLU单元(Gated Tanh-ReLU Units,GTRU)控制信息流动,并缓解梯度弥散的问题;使用多头注意力机制(Multi-Head Attention)来优化模型,提高模型文本分类准确率.

2 相关工作

Kim Y等人[4]使用CNN进行句子级文本分类任务,其融合多个不同大小的卷积核进行卷积操作来进行特征提取,并利用Max-over-time pooling来选出每个特征映射中的最大值,之后传递给一个完全连接的softmax层,其输出是标签上的概率分布,该模型在多个基准上取得了很好的效果.Lai等人[5]提出了循环卷积神经网络(RCNN)分类方法,将左侧上下文向量、词嵌入、右侧上下文向量进行拼接,来得到上下文信息,利用线性变换和tanh激活函数得到最大池化层的输入,然后自动判断哪些单词在文本分类中扮演关键角色,从而进行文本分类任务.Johnson 等人[6]提出了一种低复杂度的词级深度卷积神经网络文本分类体系结构,将卷积层与步长为2 的池化构成叠加模块,可以有效地表示文本中的长距离关系,并加入残差模块来进行深层网络的训练.

随着网络的加深,会出现梯度弥散的现象,以至于难以训练深层次的网络.Dauphin等人[7]第一次将门限控制引入到CNN中,介绍了门控线性单元(Gated Linear Units,GLU)和门控双曲正切单元(Gated Tanh Units,GTU),并在其论文中构建了门控卷积网络的语言建模体系结构,利用门控线性单元(GLU),来控制层次结构中信息的传递,该模型在WikiText-103上实现了一个新的技术状态,并在谷歌亿字基准上实现了一个新的最佳单gpu结果.Gehring等人[8]提出完全基于卷积神经网络的序列到序列(ConvS2S)的翻译模型,分别在编码与解码的卷积操作之后,引入GLU激活单元作为非线性运算以优化梯度传播,证明了其有效性.Xue等人[9]建立了方面嵌入的门控卷积网络(GCAE),将词嵌入经过卷积操作之后经门控Tanh-ReLU单元(Gated Tanh-ReLU Units,GTRU)来控制情感特征和方面特征的传播,从而进行方面级情感分类.这里我们将门控Tanh-ReLU单元进行简化并应用到中文新闻文本分类处理的问题中,来进行文本特征选取,优化文本分类模型.

由于RNN的迭代性会造成梯度消失问题和梯度爆炸问题[10],Hochreiter等人[11]提出长短期记忆(Long Short-Term Memory,LSTM)解决了梯度反向传播过程中梯度消失问题,并能够保持数据中的长期依赖关系,其表现优于RNN,之后经改良和推广到广泛应用.Cho等人[12]提出门控循环单元(Gated Recurrent Unit,GRU),GRU是LSTM的一种简化结构,与LSTM性能相当,但参数更少,收敛速度更快,不容易过拟合[13],Cho等将其应用到机器翻译领域,并取得不错的效果.郑诚等人[14]提出了一种基于密集连接循环门控单元卷积网络的混合模型(DC-BiGRU_CNN)用于处理短文本分类,在多个公开数据集上,该模型的文本分类准确率有显著提升.

注意力机制(Attention Mechanism)来源于人类的视觉,人类可以将有限的视觉资源进行有效的分配,从而来关注比较重要的信息.Vaswani等人[15]利用多个相同的放缩点积注意力(Scaled Dot-Product Attention)构成多头注意力(Multi-Head Attention),并提出一种完全基于注意力机制的翻译模型,在两个机器翻译任务上取得了更优的效果,证明了注意力机制的有效性.Zehui等人[16]提出了多任务多头部注意记忆网络(MMAM),用多头文档注意机制作为内存对共享文档特征进行编码,用多任务注意机制来提取特定类别的特征,在餐厅领域和汽车领域的两个中文细粒度情感分析数据集上的结果优于其他细粒度情感分析模型.王吉俐等人[17]利用循环神经捕捉文本的上下文信息,通过引入注意力机制得到文本类别的特征向量矩阵后,运用卷积神经网络模型完成文本的分类.

在学习与探索了前人在中文文本分类方面的研究上,本文构建了一种基于卷积神经网络的混合门控文本分类模型(CGGA).将预先处理好的字符级词向量作为卷积层的输入,利用卷积进行局部特征提取,从而得到特征向量;与双向门控循环单元(BiGRU)结合,来获取数据内部联系以进行上下文建模,来提取数据间的关系特征;利用门控Tanh-ReLU单元(GTRU)进一步筛选上层的输出特征,并减轻模型的梯度弥散问题;之后利用多头注意力机制来关注不同子空间信息,对权重进行更新计算;最后用softmax多分类器进行文本类别分类.本文构建的CGGA中文文本分类模型在 THUCNews数据集、搜狐数据集(SogouCS)上取得了较好的效果,证明该模型在结构和提高分类准确率等方面具有一定的实用性与创新性.

3 模型实现

本文结合卷积神经网络(CNN)、门控Tanh-ReLU单元(GTRU)、双向门控循环单元(BiGRU)和多头注意力机制(Multi-Head Attention),构建一个中文文本分类模型,具体工作如下.

3.1 门控Tanh-ReLU单元(Gated Tanh-ReLU Units,GTRU)

门控线性单元(Gated Linear Units,GLU)表示为fl-GLU(X)=(X*W+b)⊗σ(X*V+c),即将卷积后的结果分别经过线性映射和S形门控,并将两者的输出相乘,作为下一层的输入.门控双曲正切单元(Gated Tanh Units,GTU)表示为fl-GTU(X)=tanh(X*W+b)⊗σ(X*V+c),即将卷积后的结果分别经过tanh门控和S形门控,并将两者的输出相乘,作为下一层的输入.其中σ是sigmoid函数,⊗是矩阵间的元素相乘.

在本文中,我们引入门控Tanh-ReLU单元(Gated Tanh-ReLU Units,GTRU)[9],并去掉式子relu(X*W+Vv+b)中方面类别的嵌入向量v,将GTRU简化表示,如公式(1)所示:

fl-GTRU(X)=relu(X*W+b)⊗tanh(X*V+c)

(1)

其中,X∈RN×m是l层的输入,其是单词嵌入或是前一层的输出,N为词序列的长度,m为词向量的维度,W∈Rk×m×n、V∈Rk×m×n表示不同的卷积核,k为卷积核的大小,n表示输出维度,b∈RN、c∈RN表示偏置参数.

GTRU将卷积后的输出分别经过一次线性映射relu(X*W+b)和门tanh(X*W+c)控制,将两者的输出相乘作为下一层的输入,从而控制信息向下层流动的力度.Sigmoid函数与tanh函数线性相关,Sigmoid在输入处于[-1,1]时,其函数值变化比tanh函数更敏感,一旦接近或超出区间就失去敏感性,使处于饱和状态,影响神经网络预测的精度值;而tanh函数的输出和输入能够保持非线性单调上升和下降关系,其收敛速度快、容错性好、有界,且其饱和期晚于Sigmoid函数[20].GTRU和GLU只有一个衰减项,相比GTU可以较好地减轻梯度弥散,且GTRU和GLU都拥有线性的通道,可以使梯度很容易通过激活的单元,反向传播且不会减小,但在相同的训练时间下,GTRU比GLU、GTU获得更高的精度.因此,采用GTRU来构建文本分类模型,以提高文本分类性能.

3.2 双向门控循环单元(BiGRU)

LSTM 解决了传统RNN中反向传播过程中出现的梯度消失等问题,而GRU 保持了 LSTM 效果,具有更加简单的结构,更少的参数,更好的收敛性.门控循环单元(GRU)由两个门组成,分别为重置门r(reset gate)与更新门z(update gate),这两个门控机制能够保存长期序列中的信息,且不会随时间而清除或因为与预测不相关而移除.其结构如图 1所示.

图1 GRU模型Fig.1 Gated Recurrent Unit model

GRU模型的计算过程如公式(2)~公式(5)所示:

rt=σ(Wr·[ht-1,xt])

(2)

zt=σ(Wi·[ht-1,xt])

(3)

(4)

(5)

双向门控循环单元(BiGRU)在文本序列建模时,在每一时刻,输入会同时提供两个方向相反的GRU,而输出则由这两个单向GRU共同决定.BiGRU的具体结构如图2所示.

图2 双向门控循环单元模型结构(BiGRU)Fig.2 Bidirectional Gated Recurrent Unit model structure

其具体计算过程如公式(6)~公式(8)所示:

(6)

(7)

(8)

3.3 多头注意力机制(Multi-Head Attention)

(9)

在多头注意力操作之前,先将Q、K、V进行线性变换,之后将其映射到h个不同的子空间,在每个子空间中进行放缩点积注意力计算,以关注不同子空间的重要信息.之后将以上子空间上的注意力的输出进行拼接.多头注意力总体架构如图3所示.

图3 多头注意力Fig.3 Multi-Head Attention

多头注意力机制的计算如公式(10)所示.

(10)

图4 CGGA模型Fig.4 CGGA model

3.4 CGGA中文文本分类模型

本文的所构建的CGGA中文文本分类模型结构如图4所示.已有研究表明,字符嵌入可以最大程度的保持原文本信息,故实验中将字符级词向量作为卷积层的输入.在数据预处理阶段,将原始中文序列文本按字符划分为单个汉字与符号,再构建大小为5000的词汇表,使用one-hot编码对每个字符进行量化,之后将输入的中文序列转化为相应的向量序列.这里字符向量序列最大长度设置为700,输入序列长度不足700或字符不在词汇表中的用零向量表示,超过设置长度的字符都忽略.

模型中,首先将字符级词向量输入到卷积层进行卷积操作,得到局部特征矩阵;然后将特征矩阵分别输入到GTRU和BiGRU,对整个输入特征进行上下文建模,学习数据上下文之间的联系;之后将两者的输出结果进行拼接,作为全局平均池化(Global Average Pooling,GAP)的输入,这里使用全局平均池化替代全连接层,以进行特征压缩并防止过拟合;然后利用多头注意力机制进行特征权重更新计算,使模型在相应文本类别上有着更高的输出;最后利用softmax进行中文文本分类.

4 实 验

4.1 实验环境

本文的实验环境及其配置如表1所示.

表1 实验环境配置Table 1 Experimental environment configuration

4.2 实验数据集

1)THUCNews数据集,是由清华大学自然语言处理实验室推出的中文新闻文本分类数据集,包含74万篇新闻文档,分为14个新闻类别.本文选取其中的10个类别,每个类别包含6500篇新闻文档,其中5000为训练集、500验证集、1000为测试集.

2)搜狐新闻数据集(SogouCS),是搜狐实验室推出的中文新闻文本数据集,本文选取其中的12个类别,每个类别大约包含3000篇新闻文档,其中2000左右为训练集、500验证集、500为测试集.

4.3 实验评价指标

本文使用宏平均精确率(Macro average precision,MAP)、宏平均召回率(Macro average recall,MAR)、宏平均F1-Score(Macro average F1-Score,MAF1)来作为文本分类评测指标,它们分别是指每个类别的精确率、召回率、F1-Score的算术平均.各评价指标的计算公式如式(11)~式(13)所示:

(11)

(12)

(13)

其中,n为总分类数,Pk为第k类的精确率,Rk为第k类的召回率,F1k为第k类的F1-Score.

4.4 实验参数设置

在实验中,模型的参数值的设置会影响到实验的最终结果,这里列出本文实验中的部分参数,以此为基准进行实验.本实验的模型参数设置如表2所示.

表2 模型参数设置Table 2 Model parameter setting

4.5 实验结果对比与分析

使用单一的字符级卷积神经网络(CCNN)作为基线文本分类模型.这里字符级卷积神经网络的基本结构包括:输入层、卷积层、激励层、全局平均池化层、输出层.

4.5.1 不同优化操作对比

在CCNN模型中,分别使用ReLU激活函数、门控线性单元(GLU)、门控双曲正切单元(GTU)和门控Tanh-ReLU单元(GTRU)来对比不同激活操作对文本分类性能的影响.其中,以最常用的ReLU激活函数作为基础,进行测试对比.

图5 不同激活层对比1Fig.5 Different activationlayers were compared by 1图6 不同激活层对比2Fig.6 Different activationlayers were compared by 2

图5和图6是分别在THUCNews数据集和在搜狐数据集(SogouCS)上,具有不同激活操作的CCNN模型的宏平均F1-Score(MAF1).从两个图中可以看出,使用GLU和GTRU的CCNN模型文本分类结果的MAF1值均高于使用ReLU激活函数,且使用GTRU的结果更好.使用GTU的文本分类结果MAF1值低于使用ReLU激活函数.其中,使用门控Tanh-ReLU单元(GTRU)的模型MAF1值比使用ReLU激活函数在THUCNews数据集和在搜狐数据集(SogouCS)上分别高1.24%、6.28%.由此证明了门控Tanh-ReLU单元(GTRU)在卷积网络中的优化效果更好.

4.5.2 不同并行结构模型对比

CCNN-BiGRU模型:将字符级向量分别作为单一的CCNN模型和BiGRU模型的输入,之后将两者的输出拼接,然后进行分类实验;CCNN(GTRU)-BiGRU模型:将字符级向量分别作为使用GTRU的CCNN模型和BiGRU模型的输入,之后将两者的输出拼接,然后进行分类实验;CGG模型.将本文所构建的CGGA模型(如图4所示)去掉注意力机制,这里简写为CGG模型.将这3个具有并行结构的模型进行实验对比.

表3为3个不同的并行结构在两个数据集上的宏平均召回率(MAR).在THUCNews数据集上和搜狐数据集(SogouCS)上,模型CNN(GTRU)-BiGRU比模型CNN-BiGRU的宏平均召回率(MAR)分别高0.08%、0.20%,说明使用GTRU优化的CCNN模型与BiGRU并行的分类结果更好,且证明了GTRU的有效性.模型CGG比模型CNN(GTRU)-BiGRU的MAR分别高0.32%、0.05%,比模型CNN-BiGRU的MAR分别高0.40%、0.25%,证明本文的并行结构分类效果更好.

表3 并行结构模型对比Table 3 Parallel structure model comparison

4.5.3 不同分类模型对比

表4为5个模型分别在THUCNews数据集和搜狐数据集(SogouCS)上分类的宏平均精确率(MAP),这5个模型分别为:字符级卷积神经网络(CCNN)、双向门控循环单元(BiGRU)、增加了多头注意力的字符级卷积神经网络(CCNN-A)、CGG模型、本文构建的分类模型CGGA.由CCNN模型和CCNN-A模型、CGG模型和CGGA模型两组对比模型的宏平均精确率(MAP)值可以看出,增加了多头注意力机制后的模型在两个数据集上的MAP更高,这证明了多头注意力机制可以优化模型,使模型的分类精确率更高.在THUCNews数据集上CGGA模型分类的宏平均精确率比单一的CCNN模型和BiGRU模型的分别高2.24%、0.76%;在搜狐数据集上CGGA模型分类的宏平均精确率比单一的CCNN模型和BiGRU模型的分别高6.78%、0.92%.从实验结果可以看出,本文构建的CGGA模型可以有效的提高文本分类的精确率.

表4 模型分类精确率对比Table 4 Model classification precision rate comparison

4.5.4 不同卷积核尺寸大小对比

这里本文将分别测试尺寸大小分别为3、4、5、6、7的卷积核对CGGA模型文本分类的影响.

由图7可以看出,在两个数据集上的宏平均精确率(MAP)的折线走向,先下降后上升再下降,在卷积核尺寸为6时取得最高的宏平均精确率.由此说明了在CGGA模型上,卷积核尺寸的不同会影响模型的分类效果.

图7 CGGA模型不同卷积核大小对比Fig.7 CGGA model is compared with different convolution kernel sizes

5 结 论

本文提出了一种基于卷积神经网络的并行门控混合文本分类模型,即CGGA模型.在字符级卷积网络的基础上引入了双向门控单元(BiGRU)和门控Tanh-ReLU单元,学习数据间的依赖关系,有效的弥补了卷积神经网络忽略局部与整体之间的关联性的缺陷,提高卷积网络的性能;并引入多头注意力机制(Multi-Head Attention)来关注不同子空间的重要信息,以提高模型文本分类的准确率.CGGA模型在THUCNews数据集和搜狐数据集(SogouCS)上分别进行训练和测试,其实验结果证明,中文文本分类任务中,在卷积神经网络中使用并行的门控机制和注意力机制有利于文本分类任务的研究.由于本文中模型使用的卷积神经网络较简单,在接下来的学习与研究中,来探索如何使用深层的卷积神经网络来进一步提高分类准确率.

猜你喜欢

字符卷积神经网络
基于全卷积神经网络的猪背膘厚快速准确测定
基于FPGA的卷积神经网络加速优化方法
基于神经网络的船舶电力系统故障诊断方法
基于人工智能LSTM循环神经网络的学习成绩预测
基于图像处理与卷积神经网络的零件识别
MIV-PSO-BP神经网络用户热负荷预测
Python实现图片转字符画
正则表达式快速入门
基于深度卷积网络与空洞卷积融合的人群计数
图片轻松变身ASCⅡ艺术画