APP下载

基于级联卷积和Attention机制的情感分析

2020-07-01龙彦霖李艳梅陶卫国刘文秀

关键词:级联注意力卷积

龙彦霖,李艳梅,陶卫国,苗 晨,刘文秀

(1.西华师范大学,四川 南充 637009;2.四川德尔博睿科技股份有限公司,四川 南充 637000)

0 引言

随着信息技术的发展,更多的网络用户喜欢在网站上发表评论和寻找参考意见,这使得互联网上的信息量急速增长.从网络信息中分析出情感倾向并且对其进行判别就是文本情感分析的研究内容.作为自然语言处理领域的研究重点,情感分析被广泛应用于政策反馈、舆论分析和服务产品的改进等各个领域.与传统的情感分析方法相比,基于卷积神经网络的情感分析可以学习到文本的局部特征并获得较好的情感分类效果.这几年,关于卷积神经网络的情感分类研究逐渐增多.在2014年kim[1]等人使用词向量表示文本,通过卷积神经网络抽取出句子表征,取得了比传统机器学习更好的情感分类效果.2016年,Wang[2]等人设置不同长度的卷积核,将文本数据根据语句结构分成几个区域,使用卷积和池化操作学习多个文本区域的局部特征,再通过LSTM模型提取长距离依赖信息并进行分类.2017年,张绮琦[3]等人改进了卷积神经网络,在多个不同的卷积核获取的特征信息中添加一个跨通道连接,学习不同通道之间的复杂信息.

注意力机制近几年在自然语言处理领域被普遍地使用,其理论是由Bahdanau[4]等人提出,并被应用在机器翻译任务中.Mnih[5]等人结合了RNN模型和注意力机制进行图像分类,使得注意力机制开始流行起来.Wang[6]等人提出了基于注意力机制和长短时记忆网络模型,并将其用于基于方面分析任务中,该模型通过注意力的形式将向量化表示的特定方面信息加入LSTM网络,使得模型能够在训练过程中重点关注句子中特定方面的情感信息,在具有多个目标的句子中能够对不同方面的情感进行有效分类.图片与文本中的重要信息会出现分布不均的情况,利用注意力机制[7,8]可以对图像元素分配不同的注意力权重,获取重要的信息,协助网络模型完成各自的任务.同时注意力机制也可以为文本向量的语义编码分配不同的注意力权重以区分文本中信息的重要性大小,因此在自然语言处理领域中起到关键的作用.注意力机制最开始用于自然语言处理中的seq2sqe机器翻译任务中[9,10],通过计算注意概率分布来突出关键输入对输出的影响.2018年,冯兴杰[11]等人结合卷积神经网络和注意力机制进行情感分析,证明了该方法的分类性能比传统的机器学习方法和卷积神经网络有明显的提高.胡荣磊[12]等人于2019年提出LSTM网络添加注意力机制的方法进行情感判别,实验证明了该方法优于单独的长短时记忆网络.本文主要将级联层引入到多层卷积和注意力机制中,提出一种级联卷积层和注意力机制的深层网络,通过注意力层为不同的词语赋予不同的权重,再将其与卷积层提取的特征进行融合,使模型得到新的有效特征表示.

1 卷积神经网络概述

1.1 卷积层

卷积层是通过滤波器对数据进行卷积计算获得若干个特征面(Feature Map),实现对输入数据提取特征的过程.卷积层采用网络局部连接和卷积核参数共享的方式与前一层相连[13].输入数据的矩阵表示是局部的元素联系较为紧密,距离较远的元素相关性比较弱,因而每个神经元只需要感知输入数据的局部区域,感知的各个局部区域会被连接到下一层,这就是卷积层的局部连接;卷积核共享是指在特征面上的每一个像素值共享卷积核,可以减少网络的参数,同时降低过拟合的风险.卷积层主要有两个关键操作:局部关联和窗口(receptive field)滑动.局部关联是将每个神经元视为一个卷积核(kernel);窗口滑动是要设置滤波器的大小、数量、窗口滑动的步长(stride)以及改变特征图大小的填充值(zero-padding)等参数对局部数据进行卷积运算.卷积操作是对输入数据和卷积核做内积运算,运算公式如下所示:

(1)

1.2 池化层

池化层[14]通常是卷积层后面一层,主要作用是下采样(downsampling),去掉特征图中不重要的样本,减少数据和参数的量.池化的方法主要为最大池化(Max Pooling)和平均池化(Mean Pooling),最大池化就是取样本中最大的值,平均池化取各样本的平均值.最大池化层的做法比较简单,仅仅是在卷积运算后的输出值中通过滤波器滑动区域内取最大值,保留特征图中最重要的特征,降低了噪音影响,提高网络健壮性;平均池化层是将池化窗口内的所有值求平均再输出.

1.3 全连接层

全连接层(fully connected layers,FC)一般出现在卷积和池化层之后,其输出层的所有节点与输入层的每个节点都连接.它将学习到的特征表示映射到一维空间中,对特征进行加权和,以简易的方式学习非线性组合特征.目的是高度提纯特征,以便最后的分类器分类.

2 注意力机制

注意力机制通过注意力描述目标输出对每一个原输入数据之间的依赖关系,让机器在做任务时将注意力集中在输入中的某些部分.在文本处理任务中,注意力模型可以表示文本句子中的词与输出结果之间的相关性,将其求得的注意力权重分配给输入向量的语义编码,使得注意力集中在文本的重要内容上,如主语、形容词等;忽略掉不相关的内容,如停用词等,以区分文本中信息的重要性大小.这对于情感分析之类的文本分类任务是有很大的意义的,可以提高数据的利用率,从而提升模型的分类准确率.注意力计算公式如下:

f(xi,q)=wTσ(W1x1+W2q)

(2)

(3)

其中,σ(·)是一个非线性函数,xi表示原输入序列,q为目标中的查询,W∈Rd是权重矩阵,d为输入向量的维度,f(xi,q)计算输入数据与目标输出的相似性分数.g是softmax函数,是将计算得到的相似性分数通过softmax函数被映射为0-1之间的权重,将这个权重与输入序列xi进行加权求和即为注意力值.

3 级联卷积和Attention机制模型

3.1 模型结构

本文提出一种基于级联卷积和注意力机制的情感分析模型.模型结构如图1所示,该模型包含Embedding层、卷积层、Attention层、级联层、全局平均池化层和输出层.首先使用Embedding层将原始文本向量化,使得每个词中包含的信息可以被表达出来.

Embedding层之后是多个卷积层和Attention机制层的操作.若每一个卷积层使用宽度为kernel_size,数目为kernel_number的卷积核,则在第一个卷积层之后(Conv1)生成长度为n-kernel_size+1,通道数为kernel_number的特征图F1,n代表一段文本中最大的词数量.F1被组合成大小为{ n-kernel_size+1,kernel_number}的特征图,本文称为跨通道组合.随后对组合后的特征图进行两层卷积操作(Conv2,Conv3),生成特征图F3.然后通过Attention_1机制层提取特征图F1中的词语或特征重要性.将Conv2,Conv3层与Attention_1层级联(Concat)在一起,得到卷积层和注意力机制的级联特征,使提取的特征更具有辨别性.把级联的特征分别输入到支路1即Conv4,Conv5层和支路2即Attention_2层,同样将两条支路的特征通过级联操作整合在一起.最后再通过一个级联块(Concat3)把Conv6,Conv7层和Attention_3层的特征进行级联,得到级联卷积和注意力机制的最终特征图.

图1 网络结构图

本文模型的所有卷积层后均接入Batch Normalization(BN)层[15],对网络中间层数据进行归一化处理,可以加快网络的收敛速度和防止过拟合,BN层的前向传播算式为:

(4)

(5)

(6)

(7)

3.2 PReLU激活函数

激活函数的功能是向神经网络中引入非线性因素,使深度学习网络完成非线性映射.为了改善卷积神经网络中激活函数存在的问题,本章节使用PReLU (Parametric Rectified Linear Unit,参数化修正线性单元)[16]激活函数提取模型的非线性特征.它是针对ReLU[17]函数的改进型,在负数区域内进行线性运算,其避免ReLU让网络出现神经元死掉的问题.PReLU函数的公式如下所示:

(8)

其中,i表示不同的通道,斜率ai是可以学习的,若ai=0,则PReLU函数退化为ReLU;若ai是一个固定的数,并且值很小(如0.01,不会趋于0),则PReLU函数退化为Leaky ReLU.PReLU相对于ReLU函数只增加了少量的参数,即计算量也只增加了少许,当不同通道使用时,参数会更少,但其性能却比ReLU提高很多.在反向传播时,采用带动量的方式更新ai,公式如下:

(9)

其中,系数a,b分别是动量和学习率,更新ai时不使用权重衰减,因为其会把ai压缩为0.

3.3 全局平均池化层

在深度学习网络的最后,一般是全连接层,其作用是把在卷积层获取的二维特征图映射到一维的向量,对这个向量做乘法,降低其维度,然后输入到输出层中得到每个类别的对应分数.但是全连接层使得网络参数过多并且易于发生过拟合的现象,因此本文使用全局平均池化层代替传统的全连接层,将提取的特征图中的值加起来求平均值,把得到的平均值输入到输出层中进行分类.这样做既减少了参数的数量也减轻了过拟合的发生.

4 实验结果及分析

4.1 实验数据

本文实验以NLPCC2014微博情感分类语料作为实验数据,选取2120条数据作为样本数据,使用其中的80%作为训练数据,20%做为测试数据.每一笔数据都被标注了情感类别,包含8个标签,分别为“like”“disgust ” “sadness”“ happiness” “surprise”“anger”“fear”“none”,“none”表示文本不含任何情感.表1是总文本的类别分布比例.

表2是一个微博文本及其标签的样例,表中的情感标签用集合{1,0,0,1,0,0,0,0}表示,集合中的八个数字分别对应“like”“disgust ” “sadness”“ happiness” “surprise”“anger”“fear”“none”,相应的数值为0表示微博文本属于该标签,为1表示不属于该标签.此时的集合{1,0,0,1,0,0,0,0}表示表2中的微博文本标签属于“like”和“ happiness”.

表1 文本类别分布比例

表2 微博文本和情绪标签示意表

4.2 参数设置

整个实验使用Python 3.6作为编译器,使用word2vec工具训练词向量,网络架构使用Keras套件开发,Keras套件使用Tensorflow套件作为后端.所有的模型架构都固定句子的长度(最大词语个数)为200,句子长度超过200的部分删除,不足200的句子后面补词向量为0,词向量维度为300.每个epoch的批处理大小batch_size为64,训练100次epoch,.实验中每个卷积层使用的卷积核数量均为100个,宽度为3.注意力机制的权重和偏置项通过均匀分布方法初始化,在模型训练期间不断更新,学习率为0.001.

4.3 评价指标

本文实验使用准确率A、精度P、召回率R和综合评价F1指标来来比较各个模型的分类效果,具体公式如下:

(10)

(11)

(12)

(13)

其中True positive(TP)表示真实情感为积极的,模型分类为积极的;False positive(FP)是真实情感是消极的,模型分类为积极的;False negative(FN)是真实情感是积极的,模型分类为消极的;True negative(TN)是真实情感是消极的,模型分类为消极的.对于多标签文本,需要先计算每一标签的Precision、Recall和F1,再综合各个标签的评估指标计算出多标签文本的分类性能指标.

4.4 实验结果分析

4.4.1 激活函数对比

本文将基于ReLU、PReLU、ELU、LeakyReLU、SELU及Softplus六种激活函数的级联卷积和注意力机制模型进行对比.表3显示了六种激活函数的分类性能,结果表明PReLU激活函数的准确率较其他函数均有所提高,说明PReLU具有更好地非线性特征提取能力.同时,PReLU函数在保持较高的准确率下,其损失值也很小,证明PReLU具有良好的稳定性.

表3 各种激活函数的分类性能对比

从表中看到,Softplus激活函数的分类性能是最差的,说明它提取非线性因素的能力较差且很不稳定.SELU激活函数性能也较差,由于在负数区域内的两个系数是一个固定值,无法在模型训练时学习一个更好的参数,导致它在特定任务上取得了较好的性能,但在其他任务中效果并不理想.

本文也进行了基于ReLU、PReLU、ELU、LeakyReLU、SELU及Softplus六种激活函数的CNN所用时间的比较,并通过表3记录了不同激活函数对应的时间数据.结果表明,Softplus激活函数所用时间最长,ReLU激活函数最短,但其性能不是最好的.PReLU和ELU函数所用时间差不多,但是PReLU的分类性能是最好的.本文通过两组不同的实验验证基于PReLU激活函数的网络性能.在第一组实验中,PReLU较高的准确率说明其提取非线性特征的能力更强;在第二组实验中,六种函数所用时间的对比表明,PReLU在保持较高分类准确率的情况下,它所需的训练时间较短,收敛速度更快.

4.4.2 模型对比

为更好地评价级联卷积和注意力机制模型,本文将其与CNN-Att、BiLSTM-Att、多层CNN和CNN-Att-LSTM四种模型进行对比,验证本章方法的性能.表4显示了各个模型的准确率和F1值,CNN-Att、BiLSTM-Att、多层CNN三种方法对应的准确率分别为86.05%、85.91%和88.99%,其中多层CNN比前两种模型高2.94%和3.08%,说明深层神经网络提取特征的能力在一定程度上优于浅层神经网络.而CNN-Att-LSTM方法的准确率和F1值分别为89.96%和50.78%,均高于CNN-Att、BiLSTM-Att和多层CNN模型,这是因为其结合了CNN、LSTM和注意力机制的特性,可以抽取出文本的局部特征,词语相关性和序列特征.

表4 模型对比实验结果

如表4所示,CNN-Att模型的召回率、精度分别比BiLSTM-Att高0.4%和0.35%,说明相比于BiLSTM模型,CNN与注意力机制结合能取得更好的识别性能.这是因为CNN提取句子的相邻n个词语的局部特征,并保留下来由后面的注意力机制分配不同的注意力权重,获取重要的局部特征,加强有关情感信息的语义权重.而BiLSTM整合整个输入句子的关键在于只取最后一个时间步的输出向量,其会记住文本更多的最后部分的信息,从而包含较少开头的信息,将这个信息交于注意力机制,只会捕捉到后面词的情感,无法获得前面词的语义特征权重.而CNN-Att-LSTM方法的recall和precision又比CNN-Att高2%和1.84%,这是由于文本具有语序特征,CNN只是提取了相邻n个词语的局部特征,无法捕捉超过n个词语的更长距离的信息,所以在CNN-Att的基础上加入文本的长序列信息,能够提升模型的分类性能.本文算法的R和P高于其他模型,这是因为其在卷积层和注意力机制中加入了级联层,将词语的局部特征与其重要的情感语义特征级联在一起,加强提取深层网络中间层的特征.虽然本章模型的准确率略低于CNN-Att-LSTM,其中F1值、R和P较高,所以综合评价,本文方法的性能优于其他模型.

5 结语

本文提出了一种基于级联卷积和注意力机制的文本情感分析模型,该模型使用多层卷积提取序列文本的局部特征,同时使用多层注意力机制获取之前卷积层所提取特征的重要性.接着通过多个级联层反复融合相邻词语间的局部特征和注意力权重,加强其关联性.为了减少网络的参数,将全连接层替换为全局平均池化层.实验部分首先比较了几种不同的激活函数,选取出具有较优性能的激活函数.并且比较了本文提出的方法与其他模型,综合证明了本文模型是有效的.

猜你喜欢

级联注意力卷积
铀浓缩厂级联系统核安全分析
让注意力“飞”回来
基于3D-Winograd的快速卷积算法设计及FPGA实现
如何培养一年级学生的注意力
卷积神经网络的分析与设计
从滤波器理解卷积
基于傅里叶域卷积表示的目标跟踪算法
A Beautiful Way Of Looking At Things
整体级联式增压空气冷却器的进气模块
一种改进的脉冲级联分离中间组分