融合TCN与BiLSTM+Attention模型的疫情期间文本情感分析
2021-05-07贵向泉
贵向泉, 高 祯, 李 立
(兰州理工大学 计算机与通信学院, 甘肃 兰州 730050)
随着移动互联网终端技术的不断发展,用户可以通过手机等移动端随时随地发表关于日常生活的、富有情感色彩的信息,这种及时性和互动性也导致互联网中的信息量急剧增长,仅凭人工很难从如此庞大的文本数据中提取到人们的情感倾向。文本情感分析技术[1]的出现可以帮助人们更高效地从文本中挖掘出用户的情感信息,对意见挖掘、网络舆论预测等应用领域具有重要意义[2-3]。2019年年底爆发的新型冠状病毒肺炎由于其传染能力之强和扩散范围之广在互联网上引发了强烈的公众情绪波动,结合文本情感分析技术提取出这些情感,可以反映出民众对待此次疫情的态度,为管理部门准确掌握舆情信息、制定相关措施提供有效的数据支持。
近年来,深度神经网络模型凭借在分类问题上的出色性能被应用于文本情感分析任务[4-6]。Bengio等[7]建立了神经网络语言模型并提出词向量的概念,实现了词的分布式表征。Mikolov等[8]提出Word2Vec,通过引入负采样等可行性措施高质量地学习出词向量。Kim等[9]提出将词向量和卷积神经网络(Convolutional Neural Network, CNN)结合,通过卷积神经网络提取文本词向量的局部特征进行文本分类,但是由于CNN不具备联想上下文信息的能力,所以循环神经网络(Recurrent Neural Network, RNN)被更多应用于文本序列的处理,以便有效地利用近距离的语义信息[10-11]。Wang等[12]使用长短期记忆网络(Long Short-Term Memory, LSTM)对文本中词汇的时序关系进行学习,并解决了RNN存在的梯度消失和梯度爆炸问题。双向长短期记忆网络(Bidirectional Long Short-Term Memory, BiLSTM)[13]弥补了单向LSTM无法有效联系上下文信息的缺陷。Bai等[14]提出了时序卷积网络(Temporal Convolutional Network,TCN),其独特的因果卷积和扩张卷积解决了LSTM信息无用就会逐渐被遗忘的问题,并且可以根据一个已知序列出现的先后顺序进行预测。Bahdanau等[15]引入注意力机制,通过对重要特征增加权重来衡量其重要程度。此后,基于BiLSTM引入注意力机制(BiLSTM+Attention)[16]的研究方法凭借能抓取上下文信息和提取特定的情感特征,以及可以提高情感极性判别的准确率,被更多应用于文本情感分析。
以上研究说明,文本情感分析方法已取得很大进步,但该领域内的大部分神经网络模型仍然存在对上下文信息利用不足的缺陷,以及远距离词汇对当前词汇影响的长期依赖问题。单一的TCN网络仅关注单向特征的学习,忽略了下文对上文的语义影响,而如果仅用BiLSTM实现双向的语义学习,就会导致对词序信息无法充分的利用。针对这些问题,本文基于深度学习的方法,首次提出融合TCN与引入自注意力机制的BiLSTM网络的情感模型(简称TCN-BA模型),并将其应用于新型冠状病毒疫情期间的网民评论文本情感分析,分析判别与此次疫情相关的文本信息中蕴含的情感倾向。
本文首先通过对因果卷积层进行多次堆叠和扩大卷积的感受野,将TCN处理时序问题的优势性能应用到提取文本序列特征的任务中,充分考虑先出现的词对后出现的词的影响;然后,利用BiLSTM的双向循环结构对TCN层获取到的文本特征进一步学习,获取文本的上下文联系,同时避免RNN存在的长期依赖问题;最后,引入自注意力机制,根据疫情期间民众的关注热点以及引发情绪波动的关键词,对提取到的特征向量进行筛选优化,降低噪声对情感极性判别的影响。最终,有效地提高了情感分析模型的准确性,TCN-BA模型的链式网络联合的有效性也通过实验各项性能的提高得以证明。
1 相关理论
1.1 词向量
词向量表示是将微博文本转化为计算机可以理解的向量表示,本文对词向量的训练和生成使用了词嵌入技术,词嵌入技术是将文本中的词转换成数字向量,具体过程就是把一个维数为所有词数量的高维空间嵌入到一个维数低得多的连续向量空间中,每个单词或词组被映射为实数域上的向量。
1.2 时序卷积网络
时序卷积网络本质上是对一维卷积进行变形使得其可以处理时序问题的卷积网络,近年来逐渐被应用到文本序列预测任务中。如图1所示(图中,xt为原始的时序输入,yt为网络预测值,d为扩张卷积中空洞大小),TCN与普通一维卷积网络主要存在两点不同:
图1 时序卷积网络结构图
1) 扩张卷积(Dilated Convolution)。越到上层,窗口越大,卷积窗口中的空洞越多,在保证每一层隐藏层都和输入序列大小相同的同时,降低计算量增大感受野,使模型可以学习到更长时段内的信息;
2) 因果卷积(Causal Convolution)。因果卷积具备严格的时间约束,只能使用某个时刻之前的信息来预测该时刻的值,限制滑动窗口,可以确保该时刻之后的信息不会用来预测,同时也保证了之前的信息不会被遗漏。
1.3 长短期记忆网络
图2 LSTM记忆单元模型结构图
LSTM网络通过上个时刻的隐层状态ht-1和当前输入xt计算出来的遗忘门ft、记忆门it、输出门ot控制输入信息是否被丢弃或传递。计算过程如下:
1) 计算遗忘门,控制选择要遗忘的信息:
ft=σ(Wf·[ht-1,xt]+bf)
(1)
2) 计算记忆门,控制选择要记忆的信息:
it=σ(Wi·[ht-1,xt]+bi)
(2)
(3)
3) 计算当前时刻细胞状态:
(4)
4) 计算输出门和当前时刻隐层状态:
ot=σ(Wo·[ht-1,xt]+bo)
(5)
ht=ot·tanh(Ct)
(6)
其中,W为不同门限的权重矩阵,b为不同门限的偏置矩阵,σ、tanh为激活函数。
通过门限结构控制记忆单元中的输入信息是否被记忆或者遗忘,从而实现对有用的信息进行传递,而无用的信息则被丢弃,弥补了RNN很难获取到文本语义表示的长距离依赖信息的缺陷。
1.4 注意力机制
注意力机制的实质是仿效人类的视觉系统,根据一些特定的信息得到视觉焦点,抓取到有关信息的重要特征。一般的注意力机制是通过多个查询(Query)和键值对(Key-Value)组成的映射函数来实现,通过计算Query和每个Key的相似度得到相应的权重,再利用Softmax函数对权重归一化,并将处理后的权重与对应的键值加权求和得到最终的注意力值,计算过程如下:
1) 计算每一个Query和各个Key的相关性得到每个Key对应Value的权重系数:
(7)
2) 使用Softmax函数对权重系数进行归一化处理;
(8)
3) 将权重与键值加权求和得到最终的注意力值:
(9)
其中,A是最终所求的注意力值;Lx为数据长度;Q代表查询;K代表键;V代表值。
在文本情感分析任务中,注意力机制主要用于表示句子中的词汇和输出之间的相关程度,对文本语义表示中的情感特征增加不同的注意力权重,区分不同的特征对文本信息的重要性,进而提高文本情感分类的准确性。
2 TCN-BA文本情感分析模型
文本情感分析需要考虑文本序列、上下文信息以及情感特征重要程度对最终情感分类的影响,本文提出的TCN-BA模型共包含了6层结构,如图3所示:第一层为输入层,输入微博文本;第二层为文本向量表示层,将输入的文本转化为词向量;第三层为TCN网络层,利用TCN网络层抓取文本序列特征;第四层为BiLSTM网络层,将TCN网络层的输出作为BiLSTM网络层的输入,对文本的上下文信息进一步学习;第五层为自注意力机制层,引入自注意力机制,生成权重向量,将情感分类重要特征突出表示,并将词汇级的特征拼接为句子级特征用于情感分类;第六层为输出层,使用Softmax分类器完成情感分类。
2.1 文本向量表示层
本文使用Word2Vec中的Skip-gram模型(Continuous Skip-gram Model)将词汇转化为词向量,词向量的维度需在训练前定义。Skip-gram模型根据给定词,对词汇表中的词汇出现在该词上下文的概率作出判断,表达式为:
(10)
图3 TCN-BA网络模型结构图
其中,wt代表给定词汇;j代表与当前输入词汇的距离;vwt表示当前时刻输入矩阵中的词向量;v′wt+j表示输出矩阵中的词向量;w′∈v表示训练样本词汇w′包含于词汇表v中。如果输入句子S长度为n,则可以通过向量矩阵S′∈Rn×k(k为词汇表中的词汇数量)表示,而S′i∈Rk则代表句子中第i个词汇的词向量表示。
由此可见,Skip-gram模型在考虑到上下文信息的同时,词向量维度也相对较少,能够表现出词汇之间的关系,帮助提取文本中的语法语义信息。
2.2 时序卷积网络层
TCN网络层利用因果卷积限制滑动窗口来实现严格的时间束缚,利用扩大扩张卷积结构感受野学习到更大范围的信息,并通过增加残差链接(Residual Connections)防止网络层过高导致梯度消失来获取更高层文本序列的语义信息特征。
2.2.1因果卷积
因果卷积使得TCN具备很强的因果性质,当前时刻的信息只能依靠当前时刻之前的信息进行预测,即只能通过当前的时刻输入xt和之前的输入x1,x2,…,xt-1进行计算,在这之后信息不能用于预测,从左至右进行计算提取特征。
(11)
2.2.2扩张卷积
由于因果卷积对特征的提取被限定于卷积核的大小范围之内,添加扩张卷积可以弥补这一缺陷。每隔一定的空洞数对文本序列进行采样计算,相当于在卷积核内部插入了d个0(d为空洞数),添加扩张卷积以后的卷积核大小为:
fk_d=(d-1)×(fk-1)+fk
(12)
其中,fk为当前层的卷积核大小。
2.2.3残差链接
扩张卷积的添加需要增加网络层数、扩大网络层的感受野,而网络层数过深时,很容易出现梯度消失的现象。添加残差链接结构可以形成短路链接,通过对输入x和经过非线性变换以后的F(x)求和,使得时序卷积网络避免了由网络层数增加引起的梯度消失。
R=x+F(x)
(13)
本文所采取的扩张因果卷积模块就是在每一次进行扩张因果卷积计算Conv()之后将参数层级归一化Hi-norm(),然后采用ReLU激活函数进行非线性计算,将得到的结果与输入进行求和,实现残差链接。计算过程如下:
Ti=Conv(Wi×Fj+bi)
(14)
{T0,T1,…,Tn}=Hi-norm({T0,T1,…,Tn})
(15)
{T0,T1,…,Tn}=Relu({T0,T1,…,Tn})
(16)
其中,Ti是i时刻卷积计算得到的状态值;Wi为i时刻卷积计算的词的矩阵;Fj为第j层的卷积核;bi为偏置矩阵;{T0,T1,…,Tn}是序列经过一次完整的卷积计算后的编码。
TCN网络层通过堆叠多个扩张因果卷积层,扩大卷积的感受野,获取到更完整的文本序列特征,从而能提取到更深层次的语义信息。
2.3 双向长短期记忆网络层
单一的TCN对句子进行建模时,存在无法编码从后到前的信息的问题,本文加入BiLSTM层(网络结构如图4所示),其隐藏层由正、反两个传播方向的LSTM结合而成,正向传播层单元学习当前文本上文信息,后向传播层单元学习下文信息,然后将两个方向学习到的特征进行拼接,提取到文本序列的上下文信息,获取正反两个传播方向的情感特征。
图4 BiLSTM网络结构图
(17)
2.4 自注意力机制层
自注意力机制是注意力机制的一个变形。注意力机制通常用于任务目标与数据源不同的情况(如,机器翻译),而自注意力机制则更擅长处理数据源内部、任务目标内部元素的计算。
对文本情感分析而言,自注意力机制可以更好地捕获到同一个句子之间的语法、语义特征,对语句中的情感特征重要程度进行区分。自注意力机制并不依赖于外部信息,它是对自身的数据信息进行训练并不断更新参数,从而得到注意力值,即更关注句子之间词汇的关系。
本文将BiLSTM网络层生成的向量集合作为自注意力机制的输入,与自注意力机制层生成的权重向量相乘,并将词汇级的特征汇总成句子级特征用于最终的情感分类。实现过程如下:
1) 获取BiLSTM网络层的输出,即向量集合
生成权重向量:
(18)
2) 使用Softmax函数对生成的权重矩阵做归一化处理,突出重要特征的权重。权重越大,表明对微博用户在疫情期间的情感倾向越重要。
α=Softmax(W)
(19)
3) 将权重与向量集合H相乘,即得到最终的自注意力值:
A(H)=αH
(20)
h*=tanh(A(H))
(21)
2.5 模型训练
(22)
其中,L为损失值;x为样本;N为样本总数。采取的是Mini-batch梯度下降优化算法,相较于其他算法,该法只需对损失函数一阶求导,计算代价相对较小的同时,也提高了模型的训练速度。
3 实验与分析
3.1 实验数据及环境搭建
实验数据来源于新浪微博(Weibo)的用户微博文本。新浪微博是中国最大的社交媒体平台之一,其内容具有很高的及时性和开放性,对于一些突发事件(如此次新冠疫情),可以提供大量的研究数据。
本实验依据“新冠肺炎”、“冠状病毒”、“疫情”、“传染”、“武汉”等关键词,利用爬虫技术对2020年1月24日至2020年2月24日期间的相关微博文本进行爬取,共获得原发微博87 563条,实验数据统计信息如表1所示。由于采集的数据存在噪声,会对最终的实验结果产生影响,本文对数据进行了筛选和预处理:
1) 字体转换(繁体字转换成简体字);
2) 分词和停用词去除(把中文的汉字序列切分成有意义的词,并适当减少电脑检索中的虚字和非检索用字);
3) 特殊符号替换(使用正则匹配的方法将@符号、URL分别转换为
4) 无效微博的过滤(文本内容中词数少于5个,全部都是重复符号、字母、汉字的情况,微博中的广告和推广性的内容等);
5) 数据格式的标准化。
表1 实验数据统计信息
微博数据经过初步处理后,根据BosonNLP情感词典(情感词汇:积极情感词、消极情感词、积极评价词以及消极评价词;程度副词:控制情感词的强弱;否定词汇:判断情感极性是否发生转变)进行人工标注,如表2实验数据样例所示,情感标签分为三类:-1,消极;0,中性;1,积极。根据情感词典进行情感极性的标注,在一定程度上可以避免主观性判别出现的偏差。标注后对数据作进一步欠采样处理,保留了68 657条微博文本,使得三种情感倾向的比例趋近1∶1∶1,保证了数据分布平衡。将标注好的数据作为实验数据集,按照8∶1∶1的比例划分成训练集、验证集及测试集进行实验。
表2 实验数据样例
在标注数据的过程中,发现微博用户的情感倾向分布与年龄、性别之间呈现出一定的关联(如图5所示):多数25岁以下的用户在面对疫情时更为积极,50岁以上的用户其消极评论占比更大,25~50岁的用户其评论文本则相对更为中性;在性别方面,男性和女性之间的差异也比较明显,男性用户中的中性文本和积极文本相对于女性分别高出7.5%和15.2%,消极文本中女性用户则占到了61.8%,可见,男性在面对疫情时,其评论文本更为理性和积极。
本文在PyTorch深度学习框架下进行实验,具体实验环境如表3所示。
图5 各类情感倾向在不同年龄和性别之间的分布
表3 实验环境搭建
3.2 评价指标
本文采用准确率、召回率以及Macro-F1值作为评估模型有效性的指标。计算过程为:
准确率:
(23)
召回率:
(24)
(25)
其中,TP表示真阳例;FP表示假阳例;FN表示假阴例。准确率P越大,代表模型预测准确度越高;对每一个类别分别计算F1值,求平均即得到Macro-F1值,其值越大,表示模型分类效果越好。
3.3 对照实验设置
在相同的实验环境设置了6组对照实验,用于验证本文提出的TCN-BA模型的有效性。除BERT模型外,其余5组实验的词向量均由Word2Vec中的Skip-gram模型训练得来。
1) LSTM:在一般RNN的基础上添加了门限结构,选择性提取信息[17]。
2) BiLSTM:正向LSTM和反向LSTM分别从正、反两个方向对文本语义特征进行学习,并将得到的特征进行融合,用于最终的情感极性判断[18]。
3) BiLSTM+Attention:在BiLSTM网络中引入注意力机制,由BiLSTM提取文本序列的上下文信息,注意力机制负责区分所提取特征对最终情感分类的重要程度[19-20]。
4) TCN:对于单一的时序卷积网络,设置多层因果卷积及扩张卷积对文本序列进行计算,将最后时刻状态视为最终语义表示用于情感分类。
5) BERT:利用Transformer的双向编码表示对基于架构微调的方法进行改进,通过联合调节所有层中的上下文来预先训练深度双向表示[21]。
6) TCN-BA:即本文模型。
3.4 可调参数设置
TCN-BA模型在实验中使用Word2Vec中的Skip-gram模型训练词向量,维度设置为300,学习率为0.03;TCN网络层中扩张因果卷积层数为4,卷积核大小设置为7,空洞因子为2n,使用ReLU函数作为激活函数;BiLSTM网络层中隐藏层数设置为128,隐藏层有64个神经元;Dropout参数分别设置为0.3、0.3、0.25;Adam优化器学习率为0.002;训练批次长度batch_size设置为64。
3.5 实验结果分析
本文在疫情期间微博用户文本数据集上进行了6组对照实验,以模型在数据集上的准确率、召回率和Macro-F1值为评价标准,具体实验结果如表4、图6所示。
表4 对照实验结果
图6 6种模型准确率对比图
1) 相对于单一的LSTM,BiLSTM增加了后向传播单元,可以抓取到下文对当前词汇的影响,融合了上下文信息特征,效果更优;
2) 相较于单独的BiLSTM网络模型, BiLSTM+Attention网络模型在引入注意力机制以后,能更好地捕捉到句子的局部特征,区分情感特征重要程度,其准确率、召回率以及Macro-F1值分别提高了3.47%,2.60%,0.028 3。
3) TCN由于利用因果卷积、扩张卷积可以获取到更多的文本序列特征,并且残差链接结构可以抑制网络层数过多而引起的梯度消失现象,因此其实验效果优于BiLSTM+Attention模型。
4) BERT使用遮蔽语言模型来实现预训练的深度双向表示,由于在所有层中共同依赖于左右上下文,使得BERT模型在文本情感分析任务中可以较好地提取到文本序列中的情感特征。
5) TCN-BA模型结合TCN学习文本序列特征,增加BiLSTM网络层补足单向TCN无法联系上下文的缺陷,并利用自注意力机制优化特征向量。对比TCN-BA和其他5组模型的实验结果可知,TCN-BA模型的准确率和召回率都得到了有效提升,分别达到92.68%、91.53%,Macro-F1值达到0.839 5。
3.6 模型性能分析与对比
除了对6种模型的准确率、召回率以及Macro-F1值进行对比,本文还在实验过程中对各个模型的性能进行了比较,如图7所示。
图7 6种模型损失对比图
通过对比发现,由于BERT模型预训练过程中的标记在实际预测中不会出现,过多使用标记往往会影响模型表现,并且每个批次只有15%的符号(包含字符和标点)被预测,这在一定程度上影响了收敛速度。相对于BERT模型,TCN-BA融合模型收敛速度更快,在疫情期间微博文本数据集上的性能表现总体上更为优秀。由图7可知,单一的时序卷积网络模型、BiLSTM+Attention模型以及BERT模型的损失值下降到稳定值的速度尽管比TCN-BA模型慢,但在最后的几次迭代中也逐渐趋于收敛。
4 结 语
本文首次提出TCN-BA模型,并将其应用于疫情期间的微博文本情感分析。首先,通过TCN网络层提取文本的序列特征;然后,将其输出作为BiLSTM网络层的输入,学习文本的上下文信息和情感特征,得到文本的语义表示;最后,引入自注意力机制,结合上下文信息与疫情期间热点词汇特征,优化特征向量,减少噪音干扰。6组对照实验证明了TCN-BA模型在疫情期间微博文本数据集上进行情感分析的有效性。在总结实验期间,发现时序卷积网络的网络结构在理论上可以对文本特征进行双向学习,提取文本的上下文信息。因此,今后的研究将会聚焦于如何对TCN的网络结构进行调整来进一步提高文本情感分析准确度的问题上。