APP下载

基于多头自注意力和并行混合模型的文本情感分析

2021-01-21李辉黄钰杰

关键词:向量卷积注意力

李辉,黄钰杰

(1.河南理工大学 物理与电子信息学院,河南 焦作 454000;2.河南理工大学 电气工程与自动化学院,河南 焦作 454000)

0 引 言

近年来,随着互联网产业快速发展,出现了众多新兴媒体,它们通过互联网可以获得用户评论、品牌、情感、政治和观点等大量数据。情感分析是一种特殊的文本挖掘工作,是从给定的文本中提取人们的态度或情感。目前,文本情感分析[1]是自然语言处理(natural language processing,NLP)领域中的研究热点,它是针对非结构化信息,挖掘其蕴涵的深层次情感或倾向。

目前,有很多使用基于机器学习的情感分析技术进行文本分析,取得了不错的效果[2-3],但是这些方法不能有效地表达复杂的函数计算,并且需要人工选择数据特征,泛化能力较弱,而深度学习能够从原始数据中自动学习重要的数据特征,并处理各种复杂任务,在建模、解释、表达能力以及优化等方面优势明显。将深度学习应用于文本情感分析领域,极大地推进了文本情感分析的研究与发展[4]。G.E.Hinton等[5]提出了深度学习的概念,即利用深度学习网络构建一个高质量的语言模型处理自然语言问题。在现有的深度学习模型中最热门的网络模型是循环神经网络(recurrent neural network,RNN)模型[6]和卷积神经网络(convolutional neural network,CNN)模型[7]。CNN是目前应用最为广泛的一种深度学习结构,具有局部感受野、权值共享和下采样3个特点,使其在捕捉文本局部特征信息上具有很大的优势。它处理的是序列化特征信息,RNN是通过一种链式神经网络对历史信息进行储存和传播,减少网络的训练参数,提升训练速度。N.Kalchbrenner等[8]提出一种DCNN网络模型,使用一种动态池化的方法,能够处理可变长度的输入;王煜涵等[9]提出单一的CNN结构模型,进行文本情感分析,取得了不错的效果;S.Kai等[10]则使用长短期记忆网络(long and short term memory,LSTM)解决情感分析问题,并使分类效果明显提升;I.Augenstein等[11]提出的双向LSTM网络模型,该模型能同时捕捉词语的前后时序关系,获得词语间的前后关系;K.Cho等[12]提出门限循环单元(gated recurrent unit,GRU),GRU是LSTM的改进,将遗忘门和输入门合并成一个更新门,使其结构更加简单,从而减小模型的训练时间;曹宇等[13]提出双向门限循环神经网(bi-directional gated recurrent unit,BiGRU)进行中文文本情感分析,取得了不错的效果。

考虑到仅使用单一的神经网络使更深层次的特征提取不充分,于是S.Lai[14]提出了RCNN模型,首先利用双向循环神经网络对序列化的特征进行提取,再经过卷积、池化等操作进行文本情感分类;A.Hassan等[15]在CNN网络后引入RNN,构建了混合模型,证明采用多个神经网络模型结合的方式能更好地完成文本情感分析。由于在文本中,每个词或者句子对整个文本的情感分类有着不同的影响,使用注意力机制能够捕捉文本中最具代表性的特征,优化模型结构;王丽亚等[16]提出RCNN并引入注意力机制,有效地提高了文本情感分类的效果。目前,基于注意力的方法已经成功应用于各种任务中,在机器翻译领域为了更准确地提取文本特征,A.Vaswani等[17]提出多头自注意力(multi-head self-attention,MA)方法构建了Transformer模型;LEI Z等[18]采用MA对CNN处理过的特征矩阵进一步学习情感特定句子表示;关鹏飞等[19]运用双向LSTM捕捉词语间的语义依赖关系,再利用自注意力进一步学习重点词的特征信息。

本文模型结构在文献[14]的基础上进行改进,由于这种传统的RNN-CNN模型没有充分考虑序列内部的关键信息对情感分类的影响,于是本文模型结构在此基础上结合文献[17]加入MA机制,构建基于DLMA-BiGRU-CNN模型的文本情感模型,区别于传统的RNN-CNN引入注意力的方法。此外,针对文献[17]单一的MA层进行改进,采用双层的MA表示句子,学习序列内部的词依赖关系,使文本分类的准确率得到提升。考虑到神经网络存在特征抽取不充分或无法学习到更深层的语义信息的问题,对文献[14]的模型进行改进,使用并行输入的方式,充分提取文本信息,从而使文本分类的效果更好。

1 相关研究工作

1.1 BiGRU

由于标准RNN无法学习到句子的长期依赖关系,容易出现梯度爆炸或梯度消失问题,且单向的GRU[20]只能获取上文的依赖信息,无法充分考虑到下文的特征信息,造成在文本建模中存在明显缺陷,于是本文使用并行的BiGRU对文本进行特征提取。如图1所示,BiGRU是由一个正向GRU和一个反向GRU构成,GRU模型是LSTM的一个变体,相对LSTM而言,GRU具有结构简单、计算效率更高、处理速度更快等优点。与具有3个门的LSTM不同,GRU结构只有2个门,即重置门和更新门。

图1 GRU结构Fig.1 GRU structure diagram

GRU[21]模型通过门控机制学习文本的序列特征,控制信息的传递与输出,不仅可以保持信息不受时间影响,而且可以删除与预测无关的信息。重置门将新的输入与以前的存储相结合,而更新门则决定了要保留多少以前的存储。所以GRU的具体工作原理公式为

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

(1)

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

(2)

(3)

(4)

式中:xt为输入数据;ht为最终的输出;zt为更新门;rt为重置门;σ为激活函数sigmoid,函数在[0,1]内取值;tanh为双曲正切函数;wr,wz和w分别为隐藏层、重置门和更新门的权重矩阵;下标t为当前时刻;下标t-1为前一时刻;ht-1为前一时刻的细胞隐藏状态。

融合前置GRU和后置GRU的输出,其融合计算公式为

(5)

1.2 CNN

CNN是基于多层网络结构训练的监督学习算法,是一种前馈人工神经网络[22]。CNN采用一系列卷积层、池化层和全连接层构造模型。

卷积层:卷积层的结构是由不同单独层组成的,其核心操作就是利用卷积核对输入特征进行运算。卷积过程的实质是滤波器在输入数据特征上滑动计算的过程,用来对文本词语间的信息进行捕捉。首先将词向量矩阵输入到DCNN网络中,其词向量矩阵公式为

xi=x1⊕x2⊕x3⊕…⊕xl,

(6)

式中:xi为一个句子里第i个单词对应的词向量;下标l为句子的长度;⊕为连接运算符。

特征表达式为

ci=f(w·xi+h-1+b),

(7)

式中:w为高度h、宽度d、窗口h×d的卷积核;b为偏置向量;f为激活函数Relu。

经过卷积操作后,得到特征图c,

c=[c1,c2,c3,…,cl]。

(8)

池化层:在经过卷积层之后,得到了很多特征维度较高的特征图。在卷积操作后进行最大池化操作,降低特征维度,保持特征在空间与结构上不变,减小特征图c的大小,并简化卷积层输出的信息。其池化表达式为

(9)

全连接层:将提取到的局部特征信息融合为全局特征,最后使用softmax分类函数计算概率大小,得到文本的情感倾向。

2 模型建立

2.1 模型提出

本文提出一种基于DLMA-BiGRU-CNN模型的文本情感分析方法,模型构建如图2所示。模型包括文本输入层、DLMA层、并行BiGRU层、并行CNN层和文本分类层。首先,在输入层利用word2vec模型捕捉单词的语义特征并训练词向量;其次,在DLMA层借助DLMA学习文本内部的词依赖关系;再次,在并行BiGRU层使用并行的BiGRU模型获取文本的序列特征;最后,并行CNN层借助并行CNN模型提取深层次特征信息,在分类层完成文本情感分析。

图2 基于DLMA-BiGRU-CNN的文本情感分析模型Fig.2 Text sentiment analysis model based on DLMA-BiGRU-CNN

2.2 文本输入层

首先使用结巴(Jieba)分词对词语进行精准的分词处理,其次利用Word2vec模型训练词向量。Word2vec是由Google在2013年提出的深度学习模型。Word2vec模型包括CBOW和Skip-gram两种创建词向量的模型,CBOW模型基于周围的上下文词语计算某个词出现的概率,Skip-gram模型根据目标词计算前后出现几个词的概率。本文选用Skip-gram模型对本文词向量进行训练,并将单词转换为高维向量,作为模型的输入数据。将训练文本中句子的最大长度设置为l,作为模型的输入大小,将每个句子表示成大小为I×dk的文本词向量矩阵E,其表达式为

E=[e1,e2,e3,e4,…,el]T

,

(10)

式中:ei为句子中第i(1

2.3 DLMA特征提取层

多头注意力机制的目的是为了从多方面捕获序列的关键信息,目前MA已经在各个领域都有很多应用。本文将双层的MA模型作为一个单独的层,有别于传统的CNN结合注意力的方法,将双层的MA模型置于词向量层后,采用双层MA学习序列内部的词依赖关系。工作原理如下。

(1)第一层MA层。将文本的词向量矩阵E输送到第一层MA层进行句子表示学习,从而捕获句子的长距离依赖性和学习不同位置的不同语义空间的序列信息。首先通过h个不同的线性变换,将词向量矩阵E分别转换为相同维度的Q和V,表达式为

Q=EWiQ,

(11)

K=EWiE,

(12)

V=EWiV,

(13)

式中:Q为查询向量序列;K为键向量序列;V为值向量序列;WiQ、WiE和WiV为第i个线性表示的参数矩阵。

同时进行h次自注意力计算,单头自注意力进行逐个向量计算,将qt∈Q(1≤t≤l)和各个ks∈K(1≤s≤l)进行内积运算,并利用softmax获得qt∈Q(1≤t≤l)和各个vs∈V(1≤s≤l)的相似度,进行加权求和计算,得到一个dv维度的向量,表达式为

(14)

其中,Z为归一化因子。

通过计算单头自注意力,得到一个输出,即

(15)

式中,ais为第i次单头自注意力计算得到的vs的权重系数。

拼接h次单头自注意力计算结果,并进行线性变换,得到多头自注意力结果。形成第一层MA句子表示,即

MA1=concat(head1,head2,…,headi)wo,

(16)

式中,wo为输入空间到输出空间的映射参数。

(2)第二层MA层。将第一层得到的MA1和词向量矩阵E进行拼接后得到N1,

N1=concat(MA1,E)。

(17)

将N1输入到第二层MA层,提取出文本更高层次的特征信息,得到DLMA的输出结果:

MA2=MultiHead(N1,N1,N1)。

(18)

2.4 并行BiGRU信息提取层

在需要输入上下文的情况下,BiGRU在获取特征信息方面比LSTM更加有效,用BiGRU模型文本信息不仅使用2种隐藏状态从后向前传递,而且还使用2种隐藏状态从前向后传递。由于单一的BiGRU模型随着网络层数增加性能将受到影响,不能够充分地提取文本特征,因此,为了解决单通道模型提取信息不充分和受无关信息干扰较大的问题,本文使用并行的BiGRU模型获得全局的深层信息,提高网络的收敛性。

将经过DLMA的输出结果MA2输入到并行的BiGRU模型中,进行式(1)~(5)序列化的特征提取,得到并行的BiGRU输出h1t和h2t,之后h1t和h2t作为CNN层的输入进行深层次的特征提取。

2.5 并行CNN特征提取层

由于BiGRU主要处理的是时间序列问题,考虑到不同的上下文组成也有可能造成不同的语义表达,为了更大程度地提取不同粒度的层次化文本特征,本文在并行BiGRU层后接入并行CNN层,处理深层次的特征向量。并行CNN特征提取部分由2个的卷积神经网络(CNN)组成,且每个CNN由卷积层、池化层以及全连接层3部分组成。

在卷积层,对h1t和h2t使用多个卷积核进行卷积处理,每个CNN的卷积层是由3个3×3,4×4,5×5的滤波器构成,且滤波器每次的滑动步长为1,这样经过一系列的卷积操作后就可得到维度较高的特征图c1和c2。在池化层进行最大池化操作,得到c′1和c′2。在全连接层将c′1和c′2进行融合,得到va,i。

2.6 分类层

在经过上述特征提取后,在分类层使用softmax函数计算文本情感分类的概率大小,即

p=softmax(w2va,i+b2),

(19)

式中,w2和b2分别为权重矩阵和偏置矩阵。

3 实 验

3.1 实验环境

为了确保实验的准确性,使用Python 3.5和Keras深度学习开源框架进行实验。本文使用的2个数据集分别如下。

SST-2:斯坦福情感数据库二元分类版本,只有2种标签,非常积极和积极的评论被标记为正面,消极和非常消极的评论被标记为负面。

自然语言处理及中文计算会议(natural language processing and Chinese computing,NLPCC)2014数据集:该语料共包含中文和英文2种语言,本文使用其中的中文数据。

如表1所示,在文本情感分类时将文本分成

表1 实验数据设置

2类,即积极和消极。每个数据集都按8∶2分成训练集和测试集。

3.2 实验参数

在实验过程中要调试参数,因为参数的不同就会导致结果出现差异,为保证网络输入词向量矩阵的大小统一,将文本的训练样本数定为500,序列长度定为250,长度不足的进行补零操作,长度超出的截断。词向量维度设置为128。对于并行BiGRU神经网络,每个隐层神经元个数设置为128;对于并行CNN神经网络,使用不同尺寸的卷积核,设定为(3,4,5),每个尺寸的卷积核个数设置为128。为了防止过拟合,设定Dropout率为0.5,批处理大小(batch_size)为64,迭代次数(epoch)为20。

3.3 模型分类标准

为了验证模型的可靠性,设置了多个模型进行对比。在本文实验中将准确率(Accuracy)以及F-Score作为模型分类的评价标准。其计算式为

(21)

Precision=∑ci∈cTrue(ci)/∑ci∈cDoc(ci), (22)

Recall=∑ci∈cTrue(ci)/∑ci∈cResponse(ci),(23)

3.4 结果分析

为了验证本文模型的有效性,设置了多个对比模型,将模型参数进行微调,如表2所示。经过实验,得出各个模型情感分析结果,模型如下。

(1)BiGRU:由文献[14]提出的单一双向GRU网络模型。

(2)CNN:由文献[10]提出的单一卷积神经网络模型。

(3)BiRNN-DCNN:由文献[15]提出的结合双向LSTM与CNN的模型。

(4)DLMA-BiGRU:该模型是由一个双层多头自注意力模型和一个双向门限循环神经网络组成,对文本进行情感分析。

(5)DLMA-CNN:该模型是由一个双层多头自注意力模型和一个卷积神经网络组成,对文本进行情感分析。

(6)ATT-BiGRU-CNN模型:由文献[17]提出基于BiGRU-CNN-ATT模型的文本情感分析模型。

(7)DLMA-BiGRU-CNN:本文提出的基于双层多头自注意力机制和并行BiGRU-CNN的文本情感分析模型。

表2 5个模型情感分析结果

通过对比2个数据集可知,本文所提模型在准确率和F-Score上较其他网络模型有显著提升,模型准确率分别为92.71%和91.08%。

将单一模型CNN或BiGRU模型与BiRNN-DCNN模型对比,发现将多个模型的优势结合,混合模型使用了BiRNN学习文本序列信息,并结合CNN获取局部信息特征,更加充分地提取了文本特征,丰富了特征向量,比单一模型的分类效果有明显提高。

将单一模型CNN或者BiGRU模型与DLMA-BiGRU模型或者DLMA-CNN模型进行对比,发现使用双层多头自注意力模型比单一模型具有更好的文本情感分类效果。

BiRNN-DCNN混合模型相对于ATT-BiGRU-CNN模型可以看出,其在正确率上有显著提升。这是因为在混合模型中引入注意力模型,使用注意力层能够提取文本的重要特征,忽略掉不重要的特征,使分类结果受无关词语的影响尽可能小,从而提升了正确率和分类性能。

将ATT-BiGRU-CNN混合模型和本文ATT-BiGRU-DCNN模型对比,可以看出,引入双层多头自注意力机制后,模型性能得到显著提升。因为双层多头自注意力机制区别于传统的注意力模型,不仅对浅层的词向量有更好的关注,而且更好地获取深层次的句子向量,提升重要部分对文本情感分类的影响力,减小无关信息的干扰,从而在准确率上能够有显著提高。

为了更加直观地显示不同模型准确率和F-Score的变化趋势,将各个模型在NIPCC数据集上ACC变化和F-Score变化情况绘制成如图3~4所示的折线图,将各个模型在SST-2数据集上ACC变化和F-Score变化情况绘制成如图5~6所示的折线图。

图3 各个模型在NIPCC数据集上的ACC折线

图4 各个模型在NIPCC数据集上的F-Score折线

图5 各个模型在SST-2数据集上的ACC折线

由图3~6可以看出,本文提出的基于DLMA-BiGRU-CNN的文本情感分析模型在准确率和F-Score上都有明显提高,证明了本文模型的有效性和优越性。

图6 各个模型在SST-2数据集上的F-Score折线

4 结 语

本文提出一种基于多头自注意力和并行混合模型的文本情感分析方法,通过实验对比,该模型在准确率和F-Score上都有明显提高,证明了本文模型的优越性。由于神经网络结构的复杂性,下一步工作将继续深入研究模型,并考虑对文本进行多分类或者进行更细粒度的分析,以更加贴合文本的原始情感。

猜你喜欢

向量卷积注意力
向量的分解
让注意力“飞”回来
一种基于卷积神经网络的地磁基准图构建方法
基于3D-Winograd的快速卷积算法设计及FPGA实现
一种并行不对称空洞卷积模块①
聚焦“向量与三角”创新题
从滤波器理解卷积
A Beautiful Way Of Looking At Things
向量垂直在解析几何中的应用
向量五种“变身” 玩转圆锥曲线