基于BG-CN联合网络的文本情感分析
2022-03-01李多娇何成万
李多娇,何成万,雷 力
(武汉工程大学 计算机科学与工程学院,湖北 武汉 430205)
0 引 言
由于微博文本每日新增数量巨大,传统的人工审阅方式显然无法保证时效。此时,基于机器学习的文本情感分析技术就发挥了非常重要的作用。深度学习(deep lear-ning,DL)在很多NLP任务中有较好结果[1-6],主要是是卷积神经网络(CNN)和循环神经网络(RNN)的应用。然而这两大主流网络也存在缺陷,CNN网络在池化层会导致重要信息的丢失,忽视了上下文关联性。传统的RNN存在梯度消失和梯度爆炸的问题,不能很好地记忆上下文信息。针对以上问题,本文提出基于BiGRU网络和胶囊网络的联合神经网络模型。通过Glove训练词向量;使用BiGRU网络获得文本的上下文信息;利用胶囊网络学习文本局部特征。结合两种网络的各自优势,提高了文本情感分析的准确率,在IMDB数据集上的实验结果验证了该模型的有效性。
1 相关工作
近年来,随着深度学习技术在图像处理方面广泛应用,也成为文本情感分析的主流技术。王志涛等[7]通过增加新感情词扩充已有情感词典来实现情感分类。Turney等[8]通过计算词与种子词同时出现的概率来完成分类任务。机器学习需要人工完成标签,耗时较长。Kim[9]使用CNN完成句子建模,解决情感分类问题。Lai等[10]利用双向CNN获取上下文特征。
RNN可以有效地记忆文本语义特征,但是存在梯度消失问题,于是RNN衍生出了多个变种神经网络模型。长短时记忆网络(long short-term memory,LSTM)可以提取长距离的语义特征。Zhou等[11]提出的C-LSTM模型忽略了上下文的特征。双向长短时记忆网络(bidirectional LSTM,BiLSTM)[12]是由前向和后向传播的两个LSTM组成,虽然弥补了LSTM的不足,但网络结构复杂,参数较多。Cho等[13]提出门限循环网络(gated recurrent unit,GRU)结构比LSTM简单,网络训练时间代价小。双向门限循环神经网络(bidirectional GRU,BiGRU)是由前向和后向输出状态连接层组成的双向网络。CNN对提取局部特征效果好,而RNN重点在记忆上下文信息,将二者相结合性能更好。Lai等使用RNN提取上下文特征,再通过CNN提取局部特征,这样丰富了文本特征的提取。王汝娇等[14]提出了CNN与多特征融合的方法,该模型有效提高了实验准确率。
本文采用BiGRU网络和胶囊网络的联合网络实现文本情感分析,使用Glove预训练词向量;双向门限循环神经网络BiGRU提取文本全局空间信息;胶囊网络提取文本局部空间信息,减少CNN池化层信息的丢失,从而获得更多的文本特征,提高分类准确性。
2 联合神经网络模型BG-CN
为了提高文本情感分析的准确性,本文提出基于BG-CN联合网络模型。该模型的结构如图1所示。本文的模型主要包括Glove训练的embedding层、BG-CN网络提取特征矩阵以及softmax分类模块。BG-CN联合网络模型首先使用Glove模型向量化文本得到词向量矩阵。将训练好的词向量先通过BiGRU网络,使用双向的GRU网络从前后两个方向分别提取文本的上下文信息,提取文本的全局特征信息;接着将BiGRU网络的输出作为双层胶囊网络的输入,将上层输出分别输入到两个胶囊网络中,分别提取局部特征,即先经过主胶囊层实现卷积运算,通过squash函数运算后,将运算结果经过动态路由协议机制进行运算,再将结果输入到胶囊网络的分类层,提取文本局部特征,进一步丰富文本输入特征,提高文本情感分析效果。最后将胶囊网络的输出作为全连接层的输入,结果通过softmax进行文本分类,从而得到文本情感分析的结果。BG-CN网络模型流程如图1所示。
图1 BG-CN网络模型
2.1 词向量
原始的文字汉字中的词组,是不能直接被处理的,就需要将文本内容转换成可以被深度学习算法识别的形式——转换成词向量,即使用长向量表示每个词。词组的长度用向量维度表示,缺点在于无法关联上下文;而不同的词组在不同的句子中,语音亦不相同。这样就会发生因断章取义而导致分析错误。分布式表示方法可以有效地避免上述问题。分布式表述方式可以实现对前后词组进行关联,从而通过多个词组的相互关联,实现对复杂语境的准确识别。常用的词向量表示有Word2Vec、Glove和Fasttext等。
Embedding层首先要预处理文本数据,主要是删除HTML标签、用正则化移除非字母文本、将大写字母转换为小写字母并分割成单个单词、创建停用词集并删除停用词以及将单词重新连接成一个由空格分隔的字符串等。本文训练词向量的方法是用Glove 训练词向量,下载得到glove.6B.200 d.txt文件,将IMDB数据文件中的文本单词进行训练,将单词作为索引、向量作为值存入到embedding_index元祖中,总共得到400 000个词向量。将整型标签转换为onehot,用tokenizer统计文本中的词并生成文档词典,将词转换为编号,词的编号根据词频设定(频率越大编号越小)。将序列设定为max_sequence_length的长度,超过该长度的部分舍弃,不足则补0。
2.2 BG-CN网络
BG-CN模型不仅能获取上下文特征矩阵,还能提取局部特征矩阵,能够大范围的提取文本特征,提高分类效果。
2.2.1 BiGRU网络
RNN网络虽然可以长距离的提取文本上下文信息,但是容易发生梯度爆炸现象,导致梯度传播困难,参数更新困难。对于RNN的改进版LSTM网络,它利用门控机制解决了长距离的依赖问题,但是该网络的结构相对复杂,所需参数较多,在训练时的时间代价高,本文使用双向GRU网络提取上下文特征。GRU神经网络结构与RNN整体相同,区别在于GRU的隐藏层单元引入了门控单元。GRU网络将LSTM的输出门和遗忘门合并成更新门,使得网络训练时间比LSTM短。由于文本中单词之间存在依赖关系,BiGRU从前、后两个方向遍历文本,得到文本全局特征矩阵,提取到单向GRU忽略的部分特征信息。GRU网络结构如图2所示。
图2 GRU网络结构
具体操作如下:
(1)在获得前一个时刻神经元输出ht-1和当前时刻输入xt, 将两者进行合并输入到rt(重置门)
rt=σ(wr·[ht-1,xt])
(1)
(2)将前一时刻输入ht-1和当前输入xt输入到zt中(更新门)
zt=σ(wz·[ht-1,xt])
(2)
(3)
(4)计算ht, 即该单元的输出值
(4)
(5)
(6)
(7)
i∈[1,l],l是文本长度,将得到的h进行拼接,得到上下文特征信息
G=(h1,h2,…,hl)
(8)
2.2.2 胶囊网络Capsule Network
CNN的神经元节点只是一个标量,而且会丢失特征的位置和方向属性,且池化层降低了空间的分辨率使得文本特征大大减少,浅层的CNN网络很难获取到长距离的文本特征,对序列数据的建模比较困难。因此本文采用胶囊网络CapsuleNets[15,16]。胶囊网络CapsuleNets中使用神经元向量代替传统神经网络的单个神经元节点,它是一个包含多个神经元的载体,每个神经元表示特定实体的各种属性,它可以有效编码单词位置、语义和方向等属性,并通过动态路由来学习单词之间的上下文语义关系,能够有效提高文本表达能力。每个类别的分类概率由胶囊向量的模长表示,各个类别由不同胶囊向量表示。
(9)
(10)
(11)
(3)使用非线性函数将向量Sj转换成向量vj, 在此过程中使用Squash函数进行归一化,目的是使得胶囊的模长表示不同类别的概率
(12)
(13)
其中,i是输入神经元的下标,j,k表示下一层神经元的下标,wij自编码的权值矩阵,b,Cij由动态路由算法确定,Squash函数是激活函数。Cij是耦合系数,用来预测上层胶囊和下层胶囊之间的相关性。式(14)表示局部特征矩阵
Hc=(v1,v2,…,vl)
(14)
本文胶囊网络部分使用了两个胶囊网络并行提取局部特征,将BiGRU网络的输出分别输入到Dim_capsule为16和32的两个并行胶囊网络,减少了传统卷积神经网络在池化层的特征信息丢失,增加了局部文本信息的提取。使用不同维度的胶囊网络的结合,进一步丰富了文本局部信息。通过胶囊网络的DigitCaps层得到文本的局部特征矩阵。
2.2.3 BG-CN网络
本文提出的BG-CN网络,即基于BiGRU和双层CapsuleNet的联合模型。网络中结合Clove预处理的词向量矩阵作为输入;在每个通道上,首先利用双向门限循环神经网络BiGRU提取文本全局特征,得到句子体系的特征表示;再选择两个不同维度的并行的胶囊网络对提取的上下文信息进行深度特征学习,提取局部特征,获得文本的短句特征,减少了CNN在池化层的特征丢失,两个并行胶囊网络的胶囊维度不同,分别为16和32,这样可以提取更多的文本局部特征。本文使用联合神经网络,不仅能够得到丰富的文本特征,还能加强模型的特征学习能力,BG-CN网络层次结构图如图3所示。
联合网络实验流程:
(1)首先进行数据预处理,删除HTML标签、用正则化移除非字母文本、将大写字母转换为小写字母并分割成单个单词、创建停用词集并删除停用词以及将单词重新连接成一个由空格分隔的字符串等,使用Glove全局词频统计的词表征工具,实现词的向量化表示,总共得到400 000个词向量,将单词作为索引,向量作为值存入到embedding_index元祖中。
图3 BG-CN网络层次
(2)添加BiGRU网络,使用双向的GRU网络从前后两个方向遍历文本,分别提取文本的上下文信息,得到文本的全局特征矩阵;使用式(5)~式(8)学习文本句子特征表示G。
(3)添加不同维度的CapsuleNets,将BiGRU网络的输出分别输入到dim_capsule为16和32的两个并行胶囊网络,通过胶囊网络的DigitCaps层得到文本的局部特征矩阵。利用式(9)~式(14)得到局部短语特征Hc1,Hc2, 添加全连接层将两部分局部短语特征通过concatenate函数拼接成一个整体,得到合并之后的局部特征Hc
Hc={Hc1,Hc2}
(15)
(4)添加Flatten层降低输入维度,Flatten不影响batch的大小。
(5)添加全连接层,dropout针对在神经网络单元,按照一定规律将其暂时从模型中去除,在训练时保持正常,缓解模型的过拟合现象,参数为2,使用sigmoid激活函数。损失函数为binary_crossentropy,优化器Adam能够计算每个参数自适应学习率,它结合了AdaGrad和RMSProp两种算法的优势。全连接层的输入为融合特征,利用softmax函数对全连接层的输入进行计算,实现文本分类,W为权重系数矩阵,B为相对应的偏置,P为输出的预测类别,使用交叉熵做损失函数,计算方式如下
P=softmax(WHc+B)
(16)
3 实验结果与分析
3.1 实验数据及环境配置
为了评估本模型在情感分类任务的实验效果,本文实验数据使用IMDB电影评论数据集,该标签数据集包含5万条IMDB影评用来做情感分析,给消极评论添加标签0,给积极评论添加标签1。实验中将数据集分为训练集和验证集,训练集有22 500条评论,验证集有2500条评论。本文实验环境是Anaconda Navigator的jupyter notebook,在此基础上安装了实验所需要的第三方库,能够满足实验要求。实验环境配置见表1。
表1 实验环境配置
3.2 网络模型参数设置
神经网络参数设置会直接影响网络模型的分类效果,本文的所有实验只有网络模型不同,其它参数均一致。针对本文的网络模型,激活参数选择sigmoid函数,输出层选用softmax进行分类,采用dropout防止训练过拟合,采用随机梯度下降算法更新权重,损失函数为binary_crossentropy,优化器选择Adam。参数设置见表2。
表2 参数设置
3.3 对比实验设置
实验设置以下几组对比实验,包括深度学习的单一网络和联合网络的比较,实验数据均为IMDB电影评论,网络输入均为Glove训练的词向量。
(1)CNN:将词利用Glove训练转换成词向量,单一卷积神经网络,自定义窗口设置为2,过滤器设置为100,过滤器长度设为2倍的滑动窗口再加1,border_mode设置为valid,使得卷积之后的尺寸变小,激活函数选择Relu。
(2)BiLSTM:将词利用Glove训练成词向量,单一双向长短期记忆神经网络,滑动窗口为2,输出维度为100。
(3)CapsuleNets:双层胶囊网络并行,将Glove训练的词向量分别输入到Dim_capsule为16和32的胶囊网络中,分别提取局部特征,使用concatenate函数将两个局部特征矩阵合并,再通过softmax层实现分类。
(4)BiGRU:将Glove训练的词向量输入到单一双向门限循环神经网络,滑动窗口大小为2,dropout设为0.3,输出维度设置为128。
(5)CNN-BiLSTM:将Glove训练的词向量先通过单层CNN网络,滑动窗口大小为2,dropout设为0.3,再添加一层BiLSTM网络,输出维度为100,通过分类层完成分类。
3.4 结果分析
本文实验在IMDB数据集的验证集上计算准确率,5组模型的对比结果见表3。
表3 模型对比结果
从表3中可以看出,本文提出的基于深度学习的模型的准确率比较高。在上述深度学习网络中,CapsuleNets模型结果低于本文方法,是由于CapsuleNets忽略了词组间的关联性,而CapsuleNets的效果比CNN的效果好,说明CapsuleNets能够提取CNN遗漏的文本信息,减少特征丢失,val_acc提高了0.0528。CNN_BiLSTM网络不仅提取局部特征,还增加了上下文特征,增强了句子间的依赖关系,由于CNN网络忽略了文本特征的方向等属性,导致部分特征丢失。BiLSTM模型的分类效果最差,模型训练时间较长,是因为该模型复杂,参数较多。BiGRU模型结果优于BiLSTM,因为GRU用更新门替代了LSTM中的遗忘门和输入门,简化了计算。所以本文提出的模型在IMDB数据集上的val_acc达到0.8950,与其它模型的val_acc相比提高了0.0066、0.0157、0.0594、0.1112、0.1972。
综上所述,本文提出的BG-CN联合网络模型在IMDB电影评论数据集上具有较好的分类效果,与单一的深度学习模型相比,本文模型减少了特征丢失,增加了方向等其它属性的特征提取,能够达到较高的分类效果。
4 结束语
本文联合神经网络使用BiGRU模型能够有效地提取全局文本特征,利用胶囊网络处理CNN池化层丢失特征信息的问题,更好地提取局部文本特征;取两种网络各自优势,能够丰富文本特征信息。用Glove训练词向量来表示文本内容,在IMDB电影评论数据集上进行训练和测试,实验结果表明了本文模型有效提高了文本情感分类效果,网络训练时损失率较小。下一步的研究工作将对模型进一步优化,在保证准确率的同时缩短模型运行时间。