1. 引言
随着互联网时代的到来,一种新型生活消费方式出现,即越来越多的消费者选择在传统互联网电商平台,如淘宝、京东、拼多多等和新兴短视频电商平台,如抖音小店、快手小店购买商品,节省了大量的时间和精力。与此同时,消费者在网上进行评论,相关产品的评价以文本的形式指数式增长呈现在大众面前。文本情感分析是自然语言处理(NLP)的一个重要研究领域,情感分析的任务是对文本进行情感分类和判断。利用文本情感分析,一方面能够为消费者提供准确的信息,使其能够挑选和购买到满意心仪的产品;另一方面可以帮助商家通过分析评论数据进行改进以更好地满足消费者需求,实现盈利。
随着文本级情感分析研究领域的出现,文本情感分析最初使用的方法为基于情感词典的方法,但是由于基于情感词典的方法在实践中出现了一些难以解决的问题,人们开始探索新的方法,基于机器学习的方法便在此时出现且被广泛使用和研究了很长一段时间,截至目前,基于深度学习方法已被广泛应用且处于持续改进和成熟的阶段。
基于情感词典的方法,前期需要相关领域专业学者进行情感词典的构建 [1],其优势在于实现简单且不需要前期进行数据集情感极性的标注;但是随着互联网快速发展,新词层出不穷,情感词典的构建困难、复杂且需要与时俱进和大量人为干预 [2],故仅依靠情感词典进行文本情感分析的方法逐步被淘汰,新的方法即基于机器学习进行文本情感极性分类的方法出现。
基于机器学习的方法进行文本情感分析任务前期需要大量的人工准备工作,如人工对文本评论数据进行特征工程(Feature Engineering)以提取特征,人工对数据集标签进行情感极性的标注等。只有在上述人工准备工作完善且精确的情况下,使用机器学习相关分类方法如:支持向量机、朴素贝叶斯、随机森林等 [3] 才可实现对文本数据进行情感分类的高准确率和高效率。但是该方法依赖人工进行特征提取,进行复杂且大量的特征工程。
由于以上两种文本情感分析方法缺陷的存在,越来越多的学者使用深度学习相关的方法进行文本情感分类任务。卷积神经网络(CNN)、循环神经网络(RNN) [4]、双向门控循环神经网络(BiGRU)、多头注意力机制(Multi-Head-Attention)等在情感分析中均表现出优越性。
本文提出了一种可应用于文本情感分析领域的深度学习网络模型框架,即:基于多头注意力机制(Multi-Head-Attention Mechanism)的BiGRU-CNN的模型。
1) 使用双向门控循环(BiGRU)和卷积神经网络(CNN)相结合的模型框架,即BiGRU-CNN模型框架,进行特征提取。该模型整合了考虑上下文语义的BiGRU特征和卷积神经网络局部特征提取的优点,提高了模型的分类性能。
2) 在BiGRU-CNN模型框架的基础上引入多头注意力机制(Multi-Head-Attention)。基于多头注意力机制的原理,引入该机制能够有区分度地捕捉文本评论中的情感信息,即获取到影响文本情感极性分类结果的重要文本特征。通过引入多头注意力,模型更关注于文本序列中对文本评论最终分类结果起关键和重要作用的部分,有效提升了模型的特征表达能力和分类准确率。
2. 相关工作
近年来,越来越多的研究人员和学者使用深度学习相关方法进行自然语言处理领域中情感分析的研究。与依赖大量认为特征工程且泛化能力较差的机器学习方法相比,深度学习方法具有显著的优势,其可自动获取文本情感特征,在各个领域均有很好的表现。
Kim等 [5] 首次使用卷积神经网络(CNN)模型方法进行文本情感分析任务。通过卷积操作与最大池化操作获取文本代表性特征,随后输入到全连接层判断句子情感极性。刘龙飞等 [6] 提出分别将字级别和词级别向量作为CNN层的输入,进行文本情感分析任务。但是,CNN模型存在缺陷,无法挖掘文本全局信息。长短期记忆模型(LSTM)引入了一种基于传统RNN的门控机制,可以获取全局信息特征。TANG D等 [7] 提出使用LSTM模型进行文本分类,但是在如今看来,效果并非理想,原因在于未获取到文本序列前后的特征联系。XIAO Z等 [8] 使用双向长短期记忆(BiLSTM)模型进行在本文情感分析任务,准确率有了显著提升,原因在于BiLSTM模型通过上下文训练学习到了文本前后文之间的特征和信息关联,弥补了LSTM的缺点,但BiLSTM网络结构复杂,所需参数较多,且难以进行并行训练。除此之外,当训练集和测试集数据量庞大时,所需计算时长较长。Cho K等 [9] 使用门控循环(GRU)网络进行文本情感分析任务。GRU网络就网络结构而言,比LSTM网络结构简单;就模型参数而言,比LSTM网络模型参数少,因此在模型训练过程中能有效缩短训练时间,在文本语义特征捕捉中能够捕获文本全局语义特征。缪亚林等 [10] 提出了一个CNN-BiGRU模型,即将卷积神经网络与双向门控循环神经网络相结合的文本情感分析模型,该模型结合卷积神经网络(CNN)和门控循环神经网络(GRU)各自的优势,模型表现优异。
上述神经网络模型在文本情感分析已经取得了很大的成绩,但是很难提取出多层次且全面的文本情感特征信息。注意机制 [11] 可以实现对重要信息的选择性和针对性的关注。林原等 [12] 使用双向LSTM与多头注意力机制相结合的模型进行文本情感分析。陈欣等 [13] 使用GRU和CNN混合网络模型提取文本隐层特征,随后引入注意力机制分配特征权重,最终模型效果优秀。
综上所述,CNN模型在获取文本局部特征方面表现优异,而BiGRU模型网络结构简单从而使得其在模型训练方面表现突出。因此,本文采用BiGRU-CNN网络框架学习词嵌入处理后的文本特征,以更全面获取文本序列的局部特征和全局特征;引入多头注意力机制从不同子空间里捕捉文本特征信息,实现对重要信息进行选择。
3. 模型
为了实现对汽车评论文本进行情感分析,本文提出了一种基于多头注意力机制的双向GRU和CNN的网络模型结构(Sentiment analysis based on multi-head attention with BiGRU-CNN),具体如图1所示。该网络模型框架包括六层:词嵌入层、BiGRU层、CNN层、池化层、多头注意力层、输出层。
假设输入文本语句
,其中,
代表
中的一个单词,
表示句子
中的词个数。
3.1. 嵌入层
第一层是词嵌入层,该层的主要功能是将文本语句
表示为一个词向量矩阵
。
通俗来讲,词嵌入是指将一个词语(word)转换为一个向量(vector)。常用的词嵌入方法有Word2Vec [14]、Glove [15]、ELMo [16] 和BERT [17]。本文构建文本词向量采用的是Google开源词嵌入工具Word2Vec中的Skip-gram模型。
Word2vec有两种模型,分别为跳字模型(Skip-gram)和连续词袋模型(CBOW),这两种模型预测词的方式恰好相反。两种模型预测词的方式分别为:连续词袋模型通过某个词语的上下文语境来预测当前词语;跳字模型通过当前词语来预测周围的词。Skip-gram模型结构如下图2所示。
在本文汽车文本评论数据集的实验中将句子
中的每个单词
使用Word2Vec中的Skip-gram模型转换为一个100维的词向量
,将得到的词向量进行向量拼接计算,得到长度为
的句子
对应的词向量矩阵
,具体表示如式(1)所示,使用该词向量矩阵
作为嵌入层的输出、BiGRU层的输入。
(1)
其中:
表示向量拼接操作。
3.2. BiGRU层
第二层是BiGRU层,主要功能是提取文本序列的上下文特征即全局特征。
GRU网络模型从原理上解决了递归神经网络模型(RNN)存在的梯度消失的问题,它可以结合之前时刻的历史信息来影响当前的输出,并提取序列数据中的上下文特征。在文本数据中,前面和后面的词都会影响当前词,因此我们使用BiGRU模型来提取输入文本的上下文特征。
GRU模型可理解为LSTM模型的变体,常用于处理序列信息。对比变体模型,GRU模型所做的改变有以下两点。一是将遗忘门和输入门合并成为更新门,故GRU模型只有重置门和更新门这两个门;二是把单元状态和隐藏状态合并,故GRU模型网络结构更简单,参数更少,更容易实现和计算。对于
时刻的输入
,门控的表达式如式(2)~(6)所示,GRU网络结构如图3所示。
(2)
(3)
(4)
(5)
(6)
其中:
为重置门,将新输入信息与原始信息合并;
为更新门;
与
为权值矩阵,
为sigmoid函数。
双向GRU (BiGRU) [18] 模型包括一个正向GRU和一个反向GRU,每次同时输入两个相反方向的GRU,即正向GRU和反向GRU,其中,正向GRU用于处理序列正向信息,反向GRU用于处理序列反向信息,最终结果由它们共同确定,使得结果更加准确。
本文中的模型利用双向GRU网络从词嵌入层输出矩阵X中学习上下文语义特征,即全局语义特征。在训练过程中,该网络同时使用两个GRU对文本序列的前后情感进行建模,对于词向量矩阵
中的
,正向GRU和反向GRU获得的隐藏状态分别为
和
,拼接
和
得到隐藏层
,将提取到的特征组合得到向量
。BiGRU模型结构如图4所示,具体的计算过程见公式(7)~(10):
(7)
(8)
(9)
(10)
3.3. 卷积层
第三层是卷积层(CNN层),主要功能是提取文本序列的CNN局部特征。
数据通过BiGRU层后获取到文本序列内部的全局依赖特征,但是未捕捉到文本的局部特征,而卷积神经网络CNN恰好可以充分捕捉文本局部特征,因此将BiGRU层的输出向量
作为卷积层的输入以获取文本局部特征。
对于输入矩阵
卷积运算为:
(11)
其中:
为
激活函数,
为卷积核权重矩阵,
为卷积核的尺寸大小,
为卷积核宽度,
为偏置项。
经过卷积操作提取到的特征为
,最终卷积层的输出为
。
3.4. 池化层
第四层是池化层,其主要功能是对模型卷积层得到的文本特征进行特征压缩处理,从而得到模型框架下一层多头注意力机制层的输入。
常见的池化操作有:平均池化和最大池化。在本文实验中,对位于池化层上一层处理得到的特征矩阵进行
最大池化操作得到向量
,将得到的向量组合得到池化层的输出向量
。具体操作计算如下:
(12)
(13)
其中,
为向量
的维度。
3.5. 多头注意力层
第五层为多头注意力层,其主要功能是获取和学习文本序列内部的依赖关系,充分捕捉文本长距离特征,获取全局信息。
传统的注意机制包括注意力机制(Attention)和自注意力机制(Self-Attention),均是仅从单一层面上获取注意力信息和注意力特征。而本文模型使用的多头注意机制获取信息相较于传统注意力机制模型更全面更有层次,因为本文模型中加入多头注意力模型,获得有助于文本情感倾向分类更准确的情感特征和情感信息。本质上,多头注意机制是多个自注意力(Self-Attention) [19] 的组合,每个自注意力中都有三个矩阵分别为:Query矩阵(Q)、Key矩阵(K)和Value矩阵(V),其网络模型如图5所示。
本文中,池化层输出向量
为每个自注意力中的Query矩阵(Q)、Key矩阵(K)、Value矩阵(V)三个矩阵的输入,Attention的计算采用缩放点积(Scaled Dot-Product)方法,计算如式(14)~(15)所示。
(14)
(15)
其中,Q、K、V通过池化层输出矩阵L与对应的权重矩阵
、
、
相乘得到,
为缩放因子,
维度与矩阵向量Q、K、V的维度相同。
多头注意力机制的计算过程为:
1) Q、K、V向量矩阵进行多种线性变换生成多个头(head),每个head [20] 被映射到不同子空间进行相对应的自注意力机制,从而捕捉到不同表示子空间和不同维度的信息。
2) 每个head对应一组权重矩阵
、
、
进行自注意力计算得到自注意力矩阵。
3) 拼接2)中计算所得的自注意力矩阵,拼接后的拼接矩阵与附加权重矩阵W做矩阵乘法计算。
4) 将上述3)计算得到的结果作为输出层的输入。
具体计算过程如式(16)~(17)。
(16)
(17)
Figure 5. Multi-head attention mechanism network structure
图5. 多头注意力机制网络结构
3.6. 输出层
第六层为本文提出的模型框架的最后一层输出层,该层的主要功能是对多头注意力层输出的特征矩阵进行0~1分类,最终实现本文对文本评论进行情感分析的任务。
将多头注意力层的输出矩阵通过输出层中的softmax函数计算,得到输入句子S的情感倾向极性分类,具体计算公式如式(18)所示。
(18)
其中,
为权重矩阵,
为偏置项,
为多头注意力层的输出矩阵。
4. 实验
4.1. 实验环境
本文实验环境设置如表1所示。
Table 1. Experimental environment configuration
表1. 实验环境配置
4.2. 实验数据
本文实验数据集是来自于太平洋汽车网的文本评论,该数据集共有23,000条,文本评论的标签有两类,分别为积极(Positive)和消极(Negative),情感倾向被判定为积极的文本评论标签为1,被判定为消极的文本评论标签为0;其中训练集有20,000条,测试集有3000条;文本平均长度为35,文本最大长度为100,本文对句子长度做固定处理,句子长度固定为100,即将少于该长度的评论用0填充。部分数据集如下表2所示。
4.3. 实验设置
本文实验的模型超参数及参数设置如表3所示。
Table 3. Model hyperparameters and parameter settings
表3. 模型超参数及参数设置
4.4. 实验评价指标
本文使用的模型评价指标为准确率和F1值。
评价指标相关参数如表4所示。
Table 4. Evaluation index parameters
表4. 评价指标参数
(19)
(20)
(21)
(22)
4.5. 实验结果与分析
设置6组对比实验与本文提出的基于多头注意力机制的BiGRU-CNN模型进行对比,对比实验分别为:
1) TextCNN
该模型为单一的卷积神经网络,将词向量输入到网络中,进行最大池化操作,全连接采用softmax进行分类。
2) BiGRU
该模型为单一的BiGRU网络模型,将词向量输入到网络中,输出层采用softmax进行文本分类。
3) BiGRU-Attention
该模型为BiGRU与Attention组合网络模型,首先将词向量输入到BiGRU模型中获取文本全局特征,将BiGRU特征输入到Attention层有重点地提取情感重要信息,最终在输出层进行文本分类。
4) CNN-BiGRU-Attention
该模型为CNN、BiGRU与Attention组合网络模型,首先将词向量输入到CNN层获取文本局部特征,然后通过BiGRU层获取文本全局特征,通过Attention层提取情感重要信息,最终在输出层实现最终的文本情感倾向分类。
5) CNN-BiGRU-Multi-Head Attention
该模型为CNN、BiGRU与Multi-Head Attention的组合网络模型,将词向量输入到CNN层获取文本局部特征,随后通过BiGRU层获取文本全局特征,最后通过多头注意力层提取情感信息,在输出层进行文本分类。
6) BiGRU-CNN-Attention
该模型为CNN、BiGRU与Attention的组合网络模型,将词向量输入到BiGRU层获取文本全局特征,随后通过CNN层获取文本局部特征,最后通过注意力层提取情感信息。
本文比较了基于多头注意力机制的CNN和双向GRU模型(BiGRU-CNN-Multi-Head Attention)与现有6种情感分析模型在汽车评论数据集上的分类效果。比较结果如表5和图6所示。从Accuracy、F1值这两个评价指标来看,BiGRU-CNN-Multi-Head Attention的准确率达到90.76%,F1值达到90.25%,均优于对比模型,比对照模型中最优分类模型准确率提高了0.8%、F1值提高了0.37%。
Table 5. Comparison experiment results (unit: %)
表5. 对比实验结果(单位:%)
使用BiGRU-CNN组合模型进行文本序列特征获取的模型与其他现有基础模型相比,表现更优异,其中BiGRU-CNN-Attention模型相对于CNN-BiGRU-Attention模型,准确率(acc值)提高了1.05%,F1值提高了0.89%;BiGRU-CNN-Multi-Head Attention模型相对于CNN-BiGRU-Multi-Head Attention模型准确率(acc值)提高了1%,F1值提高了0.72%。而以上模型优异的表现均源于BiGRU-CNN组合模型结合了BiGRU和CNN各自优点,规避了各自的缺点,使得模型对于文本特征的获取更深层,更全面。
引入多头注意力机制层进行文本情感分析的模型与其他现有基础模型相比,表现更优异,其中CNN-BiGRU-Multi-Head Attention模型相对于CNN-BiGRU-Attention模型,准确率(acc值)提高了0.86%,F1值提高了0.8%;BiGRU-CNN-Multi-Head Attention模型相对BiGRU-CNN-Attention模型,准确率(acc值)提高了0.8%,F1值提高了0.63%。而以上模型优异的表现均源于在模型中引入Multi-Head Attention,其能让模型有轻重,有层次地训练学习与文本情感信息相关的特征,进而使得模型的分类准确率更高。
5. 结论
本文提出一种基于多头注意力机制的BiGRU-CNN模型(Multi-Head Attention based on BiGRU-CNN model)用于汽车评论文本数据集的情感分析任务。为了全面地获取文本情感信息以提高模型的准确率和模型效果,该方法采用BiGRU-CNN模型进行文本序列全局与局部特征的获取,其中BiGRU对经过词嵌入处理的词向量矩阵获取文本序列全局特征作为CNN层的输入,通过CNN层获取BiGRU层输出矩阵的局部特征信息;引入多头注意力机制进行特征权重分配以有针对性和有层次地捕捉文本情感重要信息。在汽车评论数据上进行对比实验,评价指标均由于现有情感分析模型。
在下一步工作中,可以考虑讲词嵌入进行改进,采用多种嵌入方法进行融合词向量特征,此外还可以将多头注意力机制进行改进进一步提高模型的准确率。