许 犇,徐国庆,程志宇,罗 京
武汉工程大学计算机科学与工程学院,湖北 武汉 430205
商品评论情感分析的主要方法是文本情感分析,文本情感分析[1]又称意见挖掘,是对大量的个人发表的关于商品、服务、热点话题及社会事件的观点进行分析,并处理、归纳和推理这些观点的属性、情绪、评价和态度。情感分析通过分析文本中所表达的不同情绪,根据它的情感极性进行分类[2]。情感分析应用领域广泛,例如在商业领域,公司可以通过分析用户在社交媒体上的反馈和评论,来了解用户对产品的评价。
文本情感分析的研究方法主要有两大类,分别是基于情感词典的方法和基于机器学习的方法[3]。深度学习是一项学习数据的多层特征或表征的机器学习技术,其在计算机视觉、语音识别、自然语言处理等诸多领域都有目前最好的成果。近年来,深度学习具有诸多领域的应用案例,许多学者也将其应用于情感分析问题的研究[4]。Mikolov等[5]在文本分类的研究中侧重于基于词嵌入的深度学习模型,提出了Word2vec 模型。最近的研究表明,一个有效的词嵌入可以使基于深度学习的文本分类方法的准确率得到很大的提升[6]。Kim 等[7]使用卷积神经网络(convolutional neural network,CNN)进行句子分类,将计算机视觉中的CNN 应用到了文本分类上。Zhang 等[8]设计了字符级CNN,提出一种新的文本处理体系结构并取得良好的效果。Wang 等[9]提出深度耦合形容词与名词神经网络(deep coupled adjective and noun neural network,DCAN)。DCAN 分别将形容词性文本描述和名词性文本描述看作两个弱监督信号,学习两个中间情感表征,并结合学习的情感表征进行情感分类。Liu 等[10]使用循环神经网络(recurrent neural network,RNN)的变种,长短期记忆网络(long short-term memory,LSTM)来学习文本表示。Bahdanau 等[11]最早提出了注意力机制理论,后续的研究将注意力机制作为一个组成部分添加到各种文本分类模型中,使得这类模型的表示灵活性和准确率得到了进一步提高。此后Johnson 等[12]提出的基于CNN 的深度金字塔卷积神经网络(deep pyramid convolutional neural network,DPCNN)和Vaswani等[13]提出的基于注意力机制的Transformer模型均在文本分类问题上有突出的表现。尽管上述这些方法可以有效地提取文本局部连续词序列的信息,但是容易忽视语料库中词共现信息。
基于图数据的深度学习方法也有了较大的发展。Kipf 和Wlling[14]提出图卷积网络(graph convolutional network,GCN),GCN 与其他图神经网络相比会更加简洁高效。许多研究者已将GCN 应用于自然语言处理领域,例如Bastings 等[15]将GCN 层合并到标准编码器中,用于机器翻译工作。在最近的研究中,Yao 等[16]将GCN 应用到了文本分类问题上,其结果相较于其他优秀的方法有着显著的提升。
在使用图神经网络处理文本问题时,通常是将语料库中的单个文档或句子当作图的节点[17]。相反,在构建语料库图时,将文档和单词都当作节点,且没有建立文档和文档之间的关系,将其构造成一个大型异构文本图来利用语料库中词共现信息。首先利用GCN 对建模好的文本异构图进行特征提取,然后在样本标签的监督下,同时学习词和文档的分布式表示。在其基础上添加LSTM 层,可有效地捕捉文本局部连续词序列信息。再引入注意力机制,抓取重要特征并剔除不重要的信息。
本文工作有以下几点:1)探索了在使用GCN利用词共现信息的基础上添加传统的LSTM 并引入注意力机制以提高模型捕捉文本局部词序列信息的思路。2)使用该方法进行商品评论情感分析,采用网上公开的关于洗发水的评论数据集,在正确率和F1值这2 个指标上相较于LSTM 分别提高了2.57% 和2.59% ,与GCN 相比分别提高了0.77% 和0.77% 。
为了提高文本情感分析的准确率,本文通过构造文本异构图的方式利用语料库中的容易被忽略的全局词共现信息,提出了记忆图卷积神经网络(memory graph convolutional neural network,MGCNN)引入注意力的模型。其网络结构图如图1 所示。
图1 模型网络结构图Fig.1 Network structure diagram of model
整个模型框架主要由构建文本异构图、MGCNN 和注意力机制3 个部分构成。其中,异构文本图包括文档节点和词节点,这样的结构可以显式地表达语料库中的词共现信息。为了提高网络模型捕捉文本中的上下文特征的能力,本文在GCN 的基础上引入了LSTM,将GCN 层和LSTM 层通过类似残差网络的结构组成了MGCNN,将多层网络设计成一个残差块可以有效地避免像多层GCN 和LSTM 直接串联这种结构产生冗余层,这样在训练过程中网络可以自行判断出是冗余层并使其进行恒等映射,实验结果证明这样的结构十分有效。引入注意力机制可以有效地筛选出重要信息。在实验过程中,使用Dropout 方法防止过拟合,提高模型的泛用性。最后通过Softmax 分类器进行情感分类。
图1 中的异构文本图是由文档节点(以“S”开头的节点)和词节点以及它们间的关系组成的边所构成的。其中节点的数目为语料库中的文档数目和词汇量的总和,边包括词-文档边和词-词边。词节点与文档节点是根据某个词是否在某个文档中出现来确定是否连接,词节点与词节点间的边是根据某两个词有没有同时出现在同一个文档中(词共现信息)来确定的。
当词节点和文档节点之间的边存在时,它们间的权重设置为词频与逆向文件频率的乘积。词频表示是某一个给定的词语在该文档中出现的频率:
其中,nij表示词ti在文档dj中出现的次数表示文档dj中所有词的数量之和。
逆向文件频率是衡量一个词语普遍重要性的指标。一个词语的逆向文件频率值,由文档的总数目除以包含该词语的文档的总数目,再对其商取对数求得:
逆向文件频率与词频的乘积可以用来量化一个词在文档中的重要程度,其值为:
计算两个词节点之间的权重时使用点互信息,统计两个词语在文本中同时出现的概率,概率越大,其关联度越高:
其中,pi是词语i出现在语料库中的概率;pj是词语j出现在语料库中的概率;pij是词语i和词语j在语料库中共同出现在同一个文档中的概率。
除此之外,这里设相同点之间的权重值为1,没有连接的点之间的权重值为0,可得到包含异构文本图中所有节点关系的邻接矩阵A,A∈Rn×n,其中n为文本异构图的节点数:
Kipf 等对GCN 的深入研究表明增加GCN 的层数并对文本分类效果不佳,本文方法使用了2~3 层GCN。构建的文本异构图有n个节点,每个节点都有自己的特征,用一个d维向量表示,得到特征矩阵X,X∈Rn×d。
将A和X作为输入通过GCN,就会得到
其中,˜是A的度矩阵,对角线上元素依次为各个顶点的度;H是每一层提取的特征,对于输入层,H就是X;σ是非线性激活函数。
根据上述公式,第一层GCN 的输出为H1。接下来分别将H1作为输入通过GCN 层和LSTM 层。
LSTM 有3 个门,分别称为忘记门、输入门和输出门。LSTM 可以通过这3 个门完成删除信息或者添加信息的功能。LSTM 首先通过忘记门来处理需要丢弃的信息:
下一步是决定添加哪些新的信息。利用ht-1和xt通过输入门来完成:
根据上一时刻的记忆状态Ct-1,计算当前的记忆状态Ct:
最后计算输出门ot,用来判断输出哪些状态特征:
由此,最终的输出ht:
其中,w f,wi,wc,wo均为权值矩阵;b f,bi,bc,bo均为偏置向量。
最终,H1通过第二层GCN 层得到特征H2,H1通过LSTM 层得到特征ht,两者维度大小相同,将这两组特征相加,得到高级文本特征H。
在深度学习中,注意力机制的核心目标是从大量信息中筛选出对当前任务目标来说更为关键的信息。在MGCNN 提取文本特征后,注意力模型通过对不同的文本特征分配不同的注意力权重来实现对重要信息的筛选,以此提高文本分类的准确率。
注意力层的具体流程如下:
式(13)~(15)中,ut是H的隐层表示;αt是经Softmax 函数处理后的归一化权重系数;uw是一个随机初始化的向量;si是第i 个句子或词语的向量表示。
在实验中,本文使用标记好的商品评论信息对MGCNN 模型进行测试。将实验结果与现有的一些深度学习方法相比较。
实验所用的数据集采用网上公开数据集,包括在京东网和携程网上爬取的用户对于衣服和洗发水的评论,根据评论内容中所带的情感色彩,将其分别打上两类情感标签,积极情感的标签为1,消极情感的标签为0。最终每类实验数据都包含5 000 条积极情感文档和5 000 条消极情感文档。数据集的汇总统计信息如表1 所示。
表1 实验数据设置Tab.1 Experimental data setting
模型中各层网络的超参数设置如表2 所示,其中GCN_layer1 层的输入向量维度为文本图的总节点数,表中的12 098 维是衣服评论数据集的输入向量维度。训练中使用Adam 优化器来对本模型进行最多200 epochs 的训练,如果Loss 连续20 epochs 都没有减小,则提前停止训练。Adam 优化器中的超参数学习率设置为0.02。
表2 模型参数设置Tab.2 Model parameters setting
实验针对用户对于衣服和洗发水的评论进行情感分析,将本文的方法与多种常见的深度学习方法相比较。将经过Word2vec 训练的词向量作为这些网络的输入,设置以下多组对比试验。本文在实验中设置了固定的随机种子,保证每次实验结果都是一致的。实验主要以情感分析结果的正确率Acc(accuracy)、精度P(precision)、召回率R(recall)和F1值作为评价指标。
TextCNN[7]:单一的TextCNN。
LSTM[10]:单一的LSTM。
DPCNN[12]:单一的DPCNN。
Transformer[13]:基于Google 提出的模型框架。
GCN[16]:两层GCN。
多组对比试验如表3 所示,从正确率Acc和F1值两组数据来看,在衣服评论数据集上,GCN 比DPCNN 的Acc高 约1.31%,与LSTM 相 比,Acc高 约0.52%,F1值达94.15%,均优于这两个模型;而TextCNN 和Transformer 网络的表现比DPCNN 和LSTM 更差一点。在洗发水评论数据集上,GCN 比LSTM 的Acc高 约1.80%,比DPCNN 的Acc高 约1.23%,F1值达93.33%,其精度P 和召回率R 也均比其他传统方法更优。由此可见,GCN 在处理商品评论情感分析问题上的效果更好,这是因为GCN 对于文本的全局词共现信息的利用更加充分。由于GCN 在将数据集构造成文本异构图的时候就已经对文本的信息进行了归纳和提取,因此GCN的训练时间也要比传统深度学习方法短很多。
本文的方法与原始的GCN 相比,在衣服评论数据集上,Acc高约0.49%,F1值高约0.50%;在洗发水评论数据集上,Acc高约0.77%,F1值高约0.77%;本方法在两个数据集上的精度P 和召回率R 也都比GCN 有提高。从表3 中可以发现传统深度学习方法中的LSTM 在两个数据集上均有较好的表现,LSTM 可以很好地捕捉文本中的上下文特征,这是GCN 所不擅长的。本文的方法就是在GCN 的基础之上巧妙地整合了LSTM 的优点,同时引入注意力机制模型,给所提取到的特征信息分配不同的权重,来获得更重要的局部特征信息。即在网络模型分析文本信息时,重点利用文本中可以表现情感的词语的特征信息,从而达到提高情感分析准确率的目的。
表3 对比实验结果Tab.3 Comparison of experimental results
为了验证在只能够收集到少量的商品评论作为数据集的情况下,该方法仍有较好的效果。本文设置了逐渐减少训练集数量的对比试验,从总数据集中随机取出1%、5%、10%、20%的样本作为实验数据集,分别对应4 种不同大小数据集的情况。其中,每组都是以实验数据集的80%为训练集,20%为验证集,其余的总数据集中的样本全部作为测试集。
以衣服评论数据集为基础的实验结果如图2(a)所示。从验证集的正确率Acc上来看,在20%数据集的情况下,本文方法的Acc比GCN 稍高,与其他方法已经拉开了差距。并且随着数据集的减少,其正确率下降的趋势要更加缓慢。当只有1%数据集时,本文方法仍有90%左右的正确率。图2(b)是洗发水评论数据集的实验结果,其中5%数据集时,本文方法比GCN 稍低。其余情况下的正确率均要高于其它模型,且更加稳定。
总体而言,本文方法在两个数据集上,使用少量的训练集来训练就能够取得较好的分类效果。尤其在只有1%数据集,约100 个样本的情况下,本文方法的正确率要明显地优于其他方法,有较高的实用性。
图2 评论数据集小数据测试:(a)衣服,(b)洗发水Fig.2 Small data test of comment dataset:(a)cloths,(b)shampoos
本文提出了一种MGCNN 引入注意力机制的商品评论文本情感分析方法。将文本信息构建成一个大型的文本异构图,让LSTM 学习GCN 从文本异构图中提取的特征,从而解决了传统深度学习模型无法较好利用全局词共现信息所包含的非连续和长距离语义的问题,同时也补充了GCN 捕捉文本中的上下文特征能力的不足,并引入注意力模型来筛选重要特征,以达到提高情感分析准确率的目的。通过实验证明了MGCNN 引入注意力机制模型在商品评论情感分析问题中的有效性和实用性,同时发现在小样本学习中,本方法的准确率仍有很大的提升空间,因此,下一步的工作重点就是将改进的本方法运用到小样本学习中。