基于CNNGRU-Attention模型的文本情感分析

2019-09-27 05:05郑媛媛任鹏举
制造业自动化 2019年9期
关键词:注意力向量卷积

李 辉,郑媛媛,任鹏举

LI Hui,ZHENG Yuan-yuan,REN Peng-ju

(河南理工大学 物理与电子信息学院,焦作 454000)

0 引言

近年来,随着互联网产业的快速发展,出现了众多新兴媒体,这些新媒体不断地冲击和改变着人们的生活方式。各种电商平台的崛起,使得足不出户的网络购物变得简单也流行,这种情况产生了大量带有人们情感色彩的评论文本,对这些带有感情色彩的文本进行情感分析,是对电商平台或者消费者群体都有益的工作。

情感分析,也称意见挖掘[1]。作为自然语言处理重要的一个分支,主要任务是完成带有感情色彩的文本的分类工作。文本情感分析主要包括文本分类,信息提取和文本生成技术[2]。目前,有很多使用基于机器学习的情感分析技术进行文本分析,取得了不错的效果[3,4]。但是,机器学习算法需要大量人工选择的数据特征,随着社会发展,出现大量新兴词汇和文本,人工设计的特征不能够全面囊括多样性的文本特征。因此,在有限的文本数量和计算条件的情况下,机器学习对于复杂问题的处理以及复杂功能的实现上会受到一定程度的限制。

为了克服传统机器学习算法的缺陷,很多工作开始利用深度学习算法来处理NLP任务,深度学习是机器学习的一部分,是使用具有多个处理层的复杂网络结构对数据所蕴含的特征信息进行抽象表达的算法。近年来,深度学习算法在计算机视觉[5]和语音识别方向[6]取得了较好的成绩。卷积神经网络CNN和循环神经网络RNN是现在文本情感分析中较多使用的网络模型。CNN网络在设计上的特点是通过融合学习的局部特征,最终实现全局特征的提取,此方法使得模型对局部特征较为敏感[7]。另一个被广泛使用的神经网络RNN,通常被用来学习序列特征信息。RNN能够通过一种链式神经网络来对历史信息进行储存和传播,即在每个时间点,网络隐藏层的输入不仅取决于当前时刻的输入,还有上一时刻隐藏层的输出。但是,随着时间点的增加,标准RNN就无法学习到句子的长期依赖关系,还会出现梯度爆炸或梯度消失的问题。为了解决这一现象,LSTM网络被引入,其通过刻意的“门”设计来避免长期依赖问题,取得了很好的效果[8]。Cho K等人[9]在2014年对LSTM作出重大改进,提出GRU网络模型,其降低了LSTM的复杂度,减少了计算量,是非常流行的变体。

文本情感分析任务中,利用CNN和RNN的主要研究有文献[10]首次将CNN应用于短文本情感分析,证明了其在情感分类任务中的可行性,但是其只使用了英文的数据集。文献[11]使用卷积神经网络对中文文本进行分析,从字级别词向量和词级别词向量两个方面进行特征提取。文献[12]使用RNN对中文的微博语料进行情感分析,训练带有词语信息和句子信息向量特征,最终证明计算句子向量的方式可以帮助学习句子的深层结构。文献[13]使用LSTM网络来捕捉文本的序列特征及上下文的依赖关系,缓解梯度爆炸或梯度消失现象,性能优于标准RNN,证明了其在自然语言处理领域的适用性。文献[14]在CNN网络后引入LSTM,在英文数据集上使用模型,得到了不错的分类效果。文献[15]取消传统CNN池化层,将CNN学习到的文本特征直接作为LSTM网络的输入,从而更大限度的学习文本序列特征。

值得注意的是,在文本中,每个词或者句子对整个文本的情感极性有着不同的决定作用,而传统的CNN和RNN是基于整个文本进行无差别的特征提取,无法对文本重要的信息进行识别。因此引入注意力机制(Attention Mechanism)来解决自然语言处理问题。注意力机制的原理是对于重要的部分分配较多的注意力,该模型最初在计算机视觉领域有很好的应用。文献[16]首次将注意力机制引入NLP领域的机器翻译任务中,其本质上是一种自动加权,将想要联系的两个不同的模块通过加权的形式进行联系。文献[17]将注意力模型与卷积神经网络相结合,并提出了三种不同位置的结合的方式。Venugopalan将LSTM与注意力模型结合,在语音处理任务上取得了不错的效果。文献[18]提出一种分层注意网络来对篇章级的文本进行分类,其中注意力机制用于给不同的句子赋予不同的权重。注意力机制还可以在其他任务中发挥重要作用,如句子理解,选择回答等。

为了克服传统神经网络结构单一,提取特征不充分的缺点,本文提出一种基于注意力机制的混合神经网络模型,主要工作如下:

1)使用GRU代替传统CNN的池化层,将CNN的局部特征提取能力和GRU的序列信息学习能力结合在一起,并引入注意力机制,学习文本重要特征,抑制无关信息对分类结果的干扰。

2)在中文数据集上对所提模型进行实验验证与评估,并与一般神经网络设置实验对比,证明使用GRU和引入注意力机制确实能够提升分类效果。

如图1所示,本文所提的CNNGRU-Attention混合文本情感分析模型,在对文本进行向量化表示后,使用CNN进行卷积操作,提取文本局部特征,将其作为GRU的输入,来学习更深层次的文本词语之间的关系,然后利用Attention层来学习重要的文本信息,对文本特征进行高度抽象化的表示之后,输入分类层进行分类。

1 CNNGRU-Attention模型

1.1 词向量表示层

与图像不同,文本本身并不具有丰富的高维向量表示,其本身不能直接作为输入数据来进行分析,因此文本情感分析的一部分重要工作就是训练词向量,将文本的信息转换为计算机能够识别的特征,才能够对其中蕴含的语义信息进行学习。

使用神经网络训练词向量的方法由Bengio[19]提出,主要思想是将词分布式地映射在一个较低维度的空间,该方法的训练目的就是由已知的ωt-n+1,…,ωt-1共n-1个词,推测第n个词ωt。现在,很多词向量训练工作都使用Word2vec词向量训练工具,该模型由Mikolov[20]所提出,通过固定大小的窗口来预测目标词,窗口越大,所提取的上下文信息越完善,但是会耗费较多的时间。

在本文实验中,使用Gensim库中的Word2vec模型实现词向量训练,将生成的词向量按照句子顺序拼接后得到的词向量矩阵作为模型的输入特征。

图1 本文模型结构示意图

1.2 CNN信息提取层

卷积的过程就是一个一维的滤波器划过由词向量组成的矩阵,在不同的位置检测特征。若xiRd为一个句子中第i个单词所对应的的词向量,xRl×d代表所输入的一整个句子,其中,l代表句子的长度,则一个句子所代表的词向量矩阵可以表示为:

式(1)中,⊕代表连接运算符,若滤波器的窗口大小为d,宽度为k,卷积过程可以表示为:

式(2)中b∈R为偏置项,f为非线性激活函数,本实验采用ReLu作为激活函数,如式(3)所示:

卷积之后,生成如下所示的特征图:

式(4)中,分号表示向量连接卷积操作产生的文本特征表示ci,为了提取更多的文本特征,我们选用多个卷积核,得到多个代表不同特征信息的特征图,在深度上进行排列。

对于传统的基于卷积神经网络的文本情感分析,在生成特征图后,都会进行最大池化或者平均池化,来选择一个或多个能够表示文本的重要特征信息,但是池化操作会损失很多文本的重要信息,所以,在本文所提的混合模型中,将不再进行池化操作,而是使用GRU单元对卷积操作后的特征进行序列特征学习,

1.3 GRU信息提取层

图2 GRU内部结构示意图

GRU模型是LSTM的发展历程中,比较成功的变种,其结构示意图如图2所示。通过设计“门”的结构来让信息选择性通过,使用递归操作单元来进行输入矩阵的处理,其结果取决于上一时刻的细胞状态ht-1和当前时刻的输入xt,其中t代表当前时刻,t-1代表前一时刻。GRU的具体工作原理可以表达为如下公式:

其中,σ是激活函数,输出在[0,1]之间,作用是控制信息通过的多少;tanh是双曲正切函数,输出在[-1,1]之间;重置门r和更新门z用来控制记忆单元的储存内容。重置门用来控制多大程度上擦除记忆单元上一时刻的内容,更新门决定多大程度的保存前一时刻储存单元的内容。

相对于LSTM,GRU模型更为简单,参数更少,在训练速度上也会有所提升,因此,本文选用GRU作为序列信息学习的工具。

1.4 注意力层

在文本中,每一个词语句子对于文本类别的贡献度是不一样的,为了识别重要的特征,增加Attention层来提取更深层次的文本特征。该层首先将GRU网络中的隐藏uw层状态hi非线性变换为ui,然后初始化注意力矩阵,与ui进行点乘运算,将初始化的注意力矩阵与之前网络学习到的特征联系起来,使用softmax函数对其进行归一化操作,得到一个概率分布,即GRU隐层的输出权重系数,最终得到注意力矩阵,可以描述为以下公式:

向量x是经过注意力层后所提取到的文本特征向量,将其作为预测层的输入,使用softmax函数来计算每个文本分属不同类别的概率大小。

1.5 模型训练

从上式中可以看出,当损失值越接近于0,模型预测值与真实值y越接近,模型训练过程中使用Adam优化算法来使模型损失最低。

2 实验设置

2.1 实验数据和实验环境

本文采用从互联网采集的真实评论对所提混合模型进行性能测试,数据集详细信息如表1所示:

表1 数据集详细信息

由于网上数据集较乱,需要对文本进行一些预处理工作,包括分词和去除停用词,使用结巴分词完成中文的分词处理,根据网上搜集到的停用此表去除停用词。数据集文本类型分为积极(标签为1)和消极(标签为0)两类,选用80%的数据集作为训练集,20%的数据集作为验证集。本文实验环境为python3.5,使用Keras深度学习开源框架。

2.2 参数设置

不同参数的组合会对实验结果产生不同的影响,在本文中实验中,超参数设置如表2所示。

表2 模型参数设置

2.3 对比试验

本文总共设置四组对比试验,来对比使用GRU和注意力模型对分类结果的影响。

模型一:CNN,基于卷积神经网络的文本情感分析模型,使用Word2vec训练的词向量作为网络输入。

模型二:GRU,基于GRU的文本情感分析模型,使用Word2vec训练的词向量作为网络输入。

模型三:CNN-GRU,结合卷积神经网络和GRU单元的网络模型,其中GRU模型替代了卷积神经网络的池化层,用来进一步学习文本的序列特征信息,使用Word2vec训练的词向量作为网络输入。

模型四:CNNGRU-Attention,本文所设计的基于注意力机制的混合神经网络模型,实质上是在模型三的GRU层后使用注意力层,以捕捉文本的重要特征信息。

3 实验结果与分析

在本文实验中,选取准确率(Accuracy)和F-SCORE作为模型评价指标,其公式如下:

F-SCORE由精准率和召回率得到,假设精准率为P,召回率为R,则:

其中,TP表示分类为积极且分类正确的样本数目,FP表示错误的分类为积极的消极数据样本,FN表示被错误的分类为消极的积极数据样本。

实验结果如表3所示,从表3结果可见,本文所提的CNNGRU-Attention混合模型在准确率和F-SCORE上较其他网络模型都有显著提升。证明该模型在文本情感分析任务上的可行性和优越性。

对比混合模型CNNGRU相对于单一模型CNN或GRU在正确率上有显著的提升,这是因为模型使用了能够学习序列信息的GRU层来取代传统的池化层,将CNN和GRU网络的优势结合在一起,既学习了文本的局部特征,也学习了词语句子之间的序列信息,更加充分的提取了文本特征,从而提升了分类性能。

对比CNNGRU和CNNGRU-Attention模型,可以看出引入注意力机制后,模型性能得到了显著提升,这是因为Attention层对于重要的部分分配较多的注意力,通过计算概率分布值,分析文本信息的重要性分布,提升重要部分对文本情感分类的影响力,减小无关信息的干扰,从而提升文本情感分类的效果。

表3 不同模型分类结果

另外,取京东商品评论2 0轮迭代的准确率和F-SCORE数值,绘制折线图,如图3和图4所示,可以详细的看到各个模型在20轮迭代中准确率的变化,可以看出,CNNGRU-Attention模型性能优于其他传统神经网络且稳定性较好,基本上在第11轮性能达到最好,表示模型已经收敛,可以停止训练。

图3 不同模型准确率变化图

图4 不同模型F-SCORE变化图

4 结语

本文主要介绍了深度学习算法在中文文本情感分析中的应用,使用CNN结合GRU网络,并引入注意力机制构建混合神经网络模型来学习重要的文本信息,该模型实质上就是使用GRU对序列信息的学习能力来取代传统卷积神经网络的池化层,将CNN和GRU的模型优势结合在一起,保留重要的文本特征信息,然后使用注意力层识别重要的特征,抑制不重要信息对分类结果的干扰,从而提升模型的准确率。实验结果证明本文所提模型在中文文本情感分析任务上的可行性和优越性。由于神经网络结构的复杂性及其众多的参数,文本情感分析还有很多问题需要进行进一步的研究。下一步的工作将深入研究网络结构,优化模型,使其更好的适用于文本情感分析。

猜你喜欢
注意力向量卷积
向量的分解
让注意力“飞”回来
基于3D-Winograd的快速卷积算法设计及FPGA实现
聚焦“向量与三角”创新题
如何培养一年级学生的注意力
卷积神经网络的分析与设计
从滤波器理解卷积
基于傅里叶域卷积表示的目标跟踪算法
A Beautiful Way Of Looking At Things
向量垂直在解析几何中的应用