王启发,周 敏,王中卿,李寿山,周国栋
(苏州大学 计算机科学与技术学院,江苏 苏州 215006)
伴随着互联网技术的飞速发展,形形色色的社交平台、电商平台也在不断繁衍,如淘宝、京东、大众点评、豆瓣、Yelp、Amazon等诸多在线评论网站早已深入我们的日常生活。这些平台上的评论对于用户和商家都具有很重要的参考价值[1],比如,对于网络购物的消费者而言,在线评论可以帮助他们做出有效的购买决策,进而买到心仪的产品。而对于商家,通过挖掘大量的评论数据来了解其产品的用户体验,帮助商家做出有效的商业决策,从而带来可观的收益。由此可见,对在线评论的数据挖掘具有重要的应用价值。
在线评论的情感分类,正是评论文本数据挖掘方面的一个重要任务,其主要目的是识别主观文本情感[2]。随着在线评论的数量不断增加,评论内容更是复杂多样,想要通过人工判别的方法去一一分析每一条评论的情感几乎是不可能的,在这个大数据时代,我们迫切地需要一种自动判别的方法来实现在线评论的情感分类,从而高效地帮助消费者和商家在海量评论文本中获取有价值的信息。
国内外的相关学者已经对在线评论文本的情感分类做了相关的研究,并取得了一些显著的成果。但是,在以往的研究中,通常把每条评论看成独立的文本,只关注评论文本内容本身,而忽略了用户和产品的关联影响,实际上用户的偏好和产品的特性对于评论的情感分类都是有一定影响的。对于不同的用户,表达情感的方式也会有所差异,如个人偏好、措辞习惯、语义逻辑等方面,而这些用户信息都会对最终的评论情感分类产生一定的影响。另外,产品信息也会对评论的情感分类产生一定的影响,产品的质量越高,往往评价也会越好。我们在Yelp2013实验数据集上抽取了一个用户发表的1条主评论、该用户的2条历史评论,以及2条产品相关评论,表1给出了评论示例。
表1 评论示例
从表1的例子可以看出,主评论文本比较简短,没有过多的情感修饰词,仅仅有一句“so sweet”,很容易判定为积极的情感,但是通过这位用户的两条历史评论,我们发现“sweet”往往和“don’t like”“hate”这些情感词联系在一起,由此可见该用户是不喜欢吃甜食的,即在用户信息的辅助下,该主评论更倾向于负向情感;另外再来看看产品信息,从两条产品相关评论中得知这家的Pizza被贴上了“not very good”“not recommended”负面标签,由此可见,这家的Pizza并不是很受欢迎,评价更倾向于负面情感。故综合用户信息和产品信息,可以判断主评论实际想要表达的是不满意的情绪,故这条主评论应该被判定为消极。
因此,在本文的研究中,我们不再只提取主评论本身的特征来实现评论的情感倾向性分析,而是引入用户和产品信息作为辅助特征,为了能够有效地利用产品和用户信息,并构建用户、产品信息与主评论之间的关联,本文提出了一种基于图网络的模型,将用户与产品信息和主评论信息之间的关系构建为一个图,并基于图卷积网络模型学习产品与用户信息对主评论的影响,从而提升评论情感分类的准确率。通过设计相关实验,验证了在评论文本信息中融入用户、产品信息,并引入图卷积神经网络模型,对评论情感分类的准确率提升具有明显的作用。
本文后续内容安排如下:第1节主要介绍情感分类和基于用户与产品信息的情感分类的相关工作;第2节主要介绍模型的三个重要组成部分,分别为基于多文本信息的语义表示、基于用户与产品信息的图网络构建以及图卷积模型的训练与优化;第3节介绍实验数据集、实验参数设置、评价标准、基准系统以及实验结果分析;最后,在第4节中对研究工作进行总结。
情感分类是情感分析的任务之一,一直以来都是自然语言处理领域的研究热点。情感分类是指根据文本所表达的含义和情感信息将文本划分成褒扬的或贬义的两种或几种类型,是对文本作者倾向性、观点和态度的划分,因此有时也称倾向性分析(opinion analysis)。情感分类的方法随着科技的进步,也在不断地演变,从相对传统的基于情感词典的方法,到基于机器学习的方法,如支持向量机、朴素贝叶斯等分类方法,再到当下比较火热的基于深度学习的方法,通过不断地推陈出新,使得情感分类的准确率不断攀升。
在基于深度学习方法方面,随着卷积神经网络(CNN)[3]在计算机视觉领域取得了实质性的进展,Kim[4]在预处理的词向量上训练卷积神经网络进行句子级分类任务的一系列实验,其中就包括情感分类任务,他提出的基于CNN的句子分类模型在多个公共数据集上都取得了较好的分类效果。Tang等人[5]提出一种基于门控递归神经网络的文档建模方法,对来自IMDB的4个大型review数据集进行了文档级情感分类,实验结果表明门控递归神经网络在情感分类文档建模方面明显优于标准递归神经网络。Wang等人[6]将长短期记忆网络(LSTM)[7]应用到Tweets的情感分类任务中,取得了不错的效果。Tai等人[8]将传统的LSTM结构推广到树状网络拓扑结构来进行情感分类。后来,国内外学者又将注意力机制[9-11]引入文本情感分类任务中,如Yang等人[12]针对文本分类提出一个层次化的注意力机制,分别就词和句子构建两个层次的注意力机制,从而使得文本中重要性不同的句子和词被给予了不同的“注意力”能力,实验结果相较以往的模型效果提升显著。
Gui等人[13]利用异构网络对产品评论中的共享极性进行建模,并学习用户、评论的产品以及他们同时使用的词语的表示形式。基本思想是首先构建一个异构网络,该网络将用户、产品、出现在产品评论中的单词以及单词的极性连接起来。根据构建的网络,使用网络嵌入方法学习节点的表示,随后将其合并到卷积神经网络中以进行情感分析。
Tang等人[14]采用深度学习的方法对用户信息和产品信息进行建模,捕获重要的全局线索,然后将用户、产品、评论文档三者信息结合在一个统一的神经网络中,从而有效地提升了评论文档情感分类的性能。
Chen等人[15]提出了一个层次神经网络,首先构建一个分层的LSTM模型用于生成句子和文档的表示,然后通过不同语义层次注意力机制来捕获用户和产品信息中的关键语义成分,从而实现评论的情感分类。该模型在IMDB、Yelp数据集上较Tang等人[14]提出的用户产品神经网络(UPNN)模型取得了显著的性能提升。
Ma等人[16]提出了一个级联多路注意力(CMA)模型,该模型将用户和产品信息的多种使用方式进行级联,以影响单词和句子层上注意力的产生。然后,通过多个表示向量很好地建模句子和文档,为情感分类提供了丰富的信息。在IMDB和Yelp数据集上的实验均证明了该模型的有效性。
Dou[17]提出了一个用于文档级情感分类的深层存储网络,该网络可以同时捕获用户和产品信息。
Zou等人[18]提出了一种基于词汇的有监督注意力模型(LBSA),通过递归神经网络关注情感内容,从而生成情感信息表示,该模型的优势是具有更好的可解释性和更少的噪声。
Wu等人[19]提出了一个新的网络框架(HUAPA),从两个不同的角度对评论进行编码,对两个层次网络分别通过用户注意力和产品注意力来生成文本表示,然后通过一个组合策略最大限度地利用这两种表示进行训练和最终预测。
Kim等人[20]使用基向量来有效地合并基于神经网络的模型各个部分的分类元数据,通过该方法可以更有效地表示分类元数据,以定制模型的各个部分,包括未开发的部分,从而大大提高了模型的性能。
由以上相关工作可知,我们提出的基于用户和产品信息对评论进行情感分类的方案是可行的,为了更好地构建用户、产品信息与评论之间的关联,我们尝试引入Kipf 等人[21]提出的一种名为图卷积神经网络(graph convolutional network,GCN)的神经网络模型,由于GCN近两年才兴起,在自然语言处理领域应用并不多,尤其是在文本的情感分类任务方面,于是,我们尝试将图卷积神经网络引入评论的情感分类的任务中,经过在Yeap.com(1)www.yelp.com数据集上测试,模型的实验效果得到稳步提升。
本文首先通过词嵌入层(embedding)分别对主评论文本(comment)、用户历史评论即用户信息(user)、产品相关评论即产品信息(product)进行词向量矩阵转换,将离散的序列映射为连续的向量,与此同时,为了让三者更有效地实现信息融合,并构建用户、产品信息与主评论之间的关联,本文引入图的方法,将主评论信息、用户信息、产品信息各自的文本作为节点,又根据三者之间的依赖关系在各个节点之间构建边,得到一个邻接矩阵。然后,将通过嵌入层得到的词向量矩阵和通过构建图得到的邻接矩阵一起传入图卷积神经网络,进一步地捕获文本中的重要信息。最后将三者信息融合后的文本表示经过一个全连接层,使用sigmiod激活函数,输出一个0~1之间的概率值,本文规定概率值大于0.5视为正向情感,反之视为负向情感。整体模型如图1所示。
图1 基于用户与产品信息和图卷积网络的情感分类模型
本文考虑综合用户、产品、主评论三者的信息,通过三者之间的联系,捕获重要信息,从而实现评论的情感分类。于是我们先对整理好的每一组评论数据进行预处理,每一组评论数据包含1条主评论、m条用户历史评论、n条产品相关评论,根据词频统计后得到的词汇表对每一条评论序列中的每一个单词进行编码,对于主评论、用户历史评论、产品相关评论的第k条评论可以分别表示为:
其中,Ck表示主评论文本向量,Uk表示用户历史评论文本向量,Pk表示产品相关评论文本向量,另外,wCkn∈R(R:0~74 826的正整数集合,wCkn即为该词在词汇表V中对应的编号)。由于本实验中限定了输入文本的最大长度为250,于是对输入的评论文本向量进行长度统一,长度超过250的从句子前端截断,长度不足的在句子前端补0。然后将以上得到的句子向量Ck、Uk、Pk传至词嵌入层(embedding)表示,分别得到词向量表示如式(4)~式(6)所示。
为了让神经网络更好地捕获主评论、用户历史评论、产品相关评论三者之间的关联信息,从而得到更准确的文本表示,我们引入了图的方法。先是创建节点,本文中,我们将一条主评论文本和与之对应的m条用户历史评论、n条产品相关评论各建一个节点,即一张图人1+m+n个节点;然后构建边,本文中,我们构建的是有向边,将主评论文本的节点分别与用户历史评论的m个节点、产品相关评论的n个节点之间构建双向边,为了加强对主评论文本自身重要信息的挖掘,我们对主评论文本建了一条自循环边。另外,为了更好地从用户的历史评论中捕获到用户相关信息,我们又在用户历史评论的m个节点之间互相建立双向边。例如,对于表1中的样例,我们将主评论文本记为C节点,两条用户历史评论分别记为U1节点、U2节点,产品相关评论记为P1节点、P2节点,然后,C节点分别与U1、U2、P1、P2节点构建双向边,再对C节点建一条自循环边。另外,再对U1、U2节点之间构建双向边。本文的实验模型图网络的构建如图2所示,邻接矩阵如图3所示。
图2 图的构建
图3 邻接矩阵
本文的研究目的是在线评论的情感分类,为了提升分类的准确率,我们将主评论、用户历史评论、产品相关评论三者进行信息融合来进行评论情感分类。基于此,本文提出一种基于图卷积神经网络模型,首先通过2.1节可以得到主评论、用户历史评论、产品相关评论各自的文本表示,同时从2.2节中可以得到三者之间的邻接矩阵,然后将三个文本向量矩阵和邻接矩阵一同传入图卷积神经网络,图卷积神经网络主要分为以下三个步骤:
第一步:发射(send)。每一个节点将自身的特征信息经过变换后发送给邻居节点。也就是将主评论、用户历史评论、产品相关评论各自的特征信息进行抽取变换,然后发送给各自的邻居节点。
第二步:接收(receive)。每个节点将邻居节点的特征信息聚集起来,这一步是在对节点的局部结构信息进行融合。在本文中,我们将用户信息和产品信息相关节点中的重要特征信息与主评论文本信息进行融合。
第三步:变换(transform)。把前面的信息聚集之后做非线性变换,增加模型的表达能力,即对第二步中主评论信息、用户信息、产品信息三者汇集融合后的特征信息进行非线性变换。
经过图网络的一次传播,每个节点都表示成了其邻域节点的集合,但是这样缺少了自身的特征,于是本文中我们还添加了自循环,在应用传播规则前将单位矩阵添加到邻接矩阵A中,通过GCN执行正向传播。传播规则如式(7)所示。
f(Hi,A)=σ(A*Hi*Wi)
(7)
随后将sigmoid函数逐行应用于GCN中的最后一层,计算已知节点标签上的交叉熵损失,反向传播损失并更新每层中的权重矩阵W,最后,用作分类器的逻辑回归是一个分类层,它通过对最后一个图形卷积层提供的每个节点的特性求和并对该和应用sigmoid函数来执行逻辑回归。
本文使用的是Yelp Dataset Challenge 2013提供的数据。在实验中,我们先对数据进行清洗、归类、整理等一系列预处理,得到两个数据集:一个是训练集,38 139组数据,正样例为32 264组,负样例为5 875组;另一个是测试集,16 168组数据,正样例为13 671组,负样例为2 497组。其中,每组数据包含一条主评论,即需要进行情感分类的评论文本,另外还包含与之对应的m条该用户的历史评论,即通过该用户的历史评论来获取该用户的相关信息,以及n条产品的相关评论,即通过产品的相关评论来获取该产品的相关信息。这里的m条用户历史评论和n条产品相关评论是通过与主评论文本计算相似度筛选得到的,需要筛选出相似度较高的评论文本,且评论文本长度不低于25个字符。经过严格的筛选,很多评论文本不符合要求,我们发现很多主评论最多对应4条用户历史评论、4条产品相关评论,为了保证用户信息和产品信息对主评论的客观影响相对均衡,故这里的m、n均取4。
本实验为了避免模型对数据的过度依赖,同时为了保证神经网络学到的信息更为准确,做了训练样本的均衡处理;又为了保证和基准模型实验的一致性,为了增强模型的泛化能力,我们每次的模型训练都是从总训练集随机抽取正负样例各800组,共计1 600组作为训练集。再对训练集用直接计数统计法进行词频统计,根据词频由高到低进行倒排序,再将排序好的词表依次从0开始编号,词为键,编号为值,随后得到一个具有74 826个键-值对的词汇字典。然后根据词汇字典对每一组评论数据的每一条评论文本序列进行编码,即就是将文本序列的每个词转换成词汇字典中该词相对应的编号,于是就得到主评论文本向量表示Ck、用户历史评论文本向量表示Uk、产品评论文本向量表示Pk。实验数据集的分布情况如表2所示。
表2 实验数据集分布情况
为了获取模型的最优参数集合,需要调节的参数如表3所示。
表3 模型参数调节列表
本实验主要采用准确率来衡量分类的效果,相关公式如式(8)所示。
Acc=TP/(TP+FP)
(8)
其中,TP表示将正例预测为正例的个数,FP表示将负例预测为正例的个数。
随着人工智能时代的快速发展,计算机科学与技术不断地进步,在情感分析领域已经产生了很多优秀的算法模型,本实验选用了近年来相对优异的以下几种方法来进行实验的对比分析。
(1)LSTM:自Wang等人[6]将LSTM应用到Tweets的情感分类任务中取得了不错的效果后,大家纷纷效仿,将LSTM应用到各个任务中,本实验直接采用LSTM模型对评论文本进行建模,并进行评论情感分类,将其作为本文的基准模型。
(2)CMRCTC:该模型是Kim等人[20]提出的一种用于自定义文本分类的分类元数据的表示方法,使用基向量来有效地合并基于神经网络模型的各个部分的分类元数据,通过该方法可以更有效地表示分类元数据,以定制模型的各个部分,包括未开发的部分,从而大大提高模型的性能。
(3)NSC:该模型是Chen等人[15]提出的一个层次神经网络,构建一个分层的LSTM模型,即词级和句子级LSTM层,分别用于生成句子和文档的表示,从而实现评论的情感分类。
(4)NSC+LA:Chen等人[15]在NSC模型基础上添加本地语义注意力机制来捕获评论信息中的关键语义成分,从而实现评论的情感分类。
(5)NSC+UPA:Chen等人[15]在NSC模型基础上,引入用户和产品的信息,并且用词级的用户产品注意力机制(UPA)获得句子表示,再用句子级的UPA获得文档表示,从而实现评论的情感分类。
(6)HUAPA:该模型是Wu等人[19]提出的一个新的网络框架,从两个不同的角度对评论进行编码,对两个层次网络分别通过用户注意力和产品注意力来生成文本表示,然后通过一个组合策略最大限度地利用这两种表示进行训练和最终预测。
本文主要进行了两组实验,一是将本文提出的基于用户、产品信息和图卷积网络的情感分类模型(GCN+UP)与基准系统一一进行对比;二是将GCN+UP与网络结构不同的GCN模型做对比。
3.5.1 实验对比分析
为了验证我们基于用户、产品信息的评论情感分类方法的有效性,同时也为了验证引入图卷积神经网络模型情感分类的效果,本文选择了在自然语言处理领域一直表现优异的长短期记忆网络LSTM模型进行对比,以及同近年来同样基于用户与产品信息进行情感分类的模型中表现相对优异的模型进行对比,实验结果如表4所示。
表4 与基准模型进行对比
从表4可以总结出以下结论:
(1)将GCN+UP模型同LSTM、NSC、NSC+LA这三个模型进行对比,从实验结果可以看出,GCN+UP的准确率明显高于其他三个模型,这是因为LSTM、NSC、NSC+LA这三个模型只是针对主评论文本本身建模,而GCN+UP则是融合了用户与产品信息的模型,由于加入用户与产品信息可以让神经网络捕获到更多的重要信息,学习到更准确的特征表示,故从这几组对比实验可以验证我们提出的基于用户与产品信息进行评论情感分类的方法是可行且有效的。
(2)通过GCN+UP模型与6个基准模型的对比实验结果可以看出,本文提出的基于用户与产品信息和图卷积网络的情感分类模型准确率要明显高于其他6个基准模型,尤其是和CMRCTC、NSC+UPA、HUAPA这3个基准模型相比,同样都是基于用户、产品信息来进行情感分类,但GCN+UP模型效果明显优于其他3个模型,这是因为采用图卷积的方法,通过节点和边,让信息进行有效的传递、汇集、变换,这样不仅可以很好地构建三者之间的联系,还可以从中捕获到重要的信息,从而提高模型的学习表示能力。
由此,不仅可以证明我们提出的将用户与产品信息作为辅助特征进行评论情感分类的方法是有效的,还很好地验证了我们设计的基于图卷积神经网络的情感分类模型也是可行的,且模型效果明显优于基准模型。
3.5.2 网络结构的影响
为了验证模型的有效性,在模型相应参数保持不变的情况下,考虑不同网络结构的影响,我们将本文提出的GCN+UP模型与以下几种网络结构不同的GCN模型做对比实验,实验结果如表5所示。
表5 不同结构GCN对比
(1)GCN_C:在构建图时,仅对主评论节点自身构建自循环边,然后传入图卷积神经网络学习主评论自身的重要信息,从而实现情感分类。
(2)GCN_C+CU:在构建图时,不仅对主评论节点自身构建自循环边,还在主评论文本和用户历史评论之间构建双向边,使得图卷积神经网络可以捕获主评论和用户历史评论之间的关联信息,从而实现情感分类。
(3)GCN_C+CP:该模型和GCN_C+CU模型类似,不仅对评论节点自身构建自循环边,还在主评论文本和产品相关评论之间构建双向边,使得图卷积神经网络可以捕获主评论和产品相关评论之间的关联信息,从而实现情感分类。
(4)GCN_C+CU+CP:该模型相当于是对上述的三个模型进行了结合,不仅对主评论节点自身构建自循环边,还在主评论文本和用户历史评论之间,以及主评论文本和产品相关评论之间构建双向边,使得图卷积神经网络不仅可以捕获主评论和用户历史评论之间的关联信息,还可以捕获主评论和产品相关评论之间的关联信息,从而实现情感分类。
(5)GCN+UP:即本文提出的主模型,在上述GCN_C+CU+CP模型基础上,再对用户历史评论文本自身构建自循环边,从而实现用户历史评论中重要信息的捕获、主评论中重要信息的捕获、主评论和用户历史评论之间关联信息的捕获、主评论和产品相关评论之间关联信息的捕获,以达到提升情感分类的准确率的作用。
从表5的实验结果我们可以得出以下结论:
(1)由GCN_C模型实验结果可见,只对主评论构建自循环边的模型分类准确率较低,因为这样无法获取到用户的历史评论中的用户信息以及产品相关评论中的产品信息。
(2)通过GCN_C+CU和GCN_C+CP两组模型的对比可以看出,GCN_C+CP的准确率略高于GCN_C+CU,我们猜测是主评论和产品相关评论之间有较多的交互信息,所以它们的联系更密切一些,捕获到重要的信息更多一些。
(3)将本文提出的GCN+UP模型和其他4个不同结构的GCN模型做对比,我们可以很明显地看出GCN+UP模型的分类效果最佳,同时也可以看出不同结构的GCN模型的实验结果是有一定差异的,说明虽然引入图卷积对评论的情感分类有一定的帮助,但是需要合理构建图和边才能让图卷积发挥出比较好的作用,从而更好地实现评论的情感分类。
本文针对在线评论网站的主评论进行情感分类,考虑到用户的历史评论、产品相关评论与主评论之间有着密切的联系,可能会对主评论的情感分类产生一定的影响,提出了一种基于用户与产品信息和图卷积网络的情感分类模型,通过对三者之间合理地建图建边,高效地捕获文本重要信息,增强模型对于文本的特征表示能力,从而实现主评论的情感分类。经过反复实验,与其他模型一一对比,最终得到了本文的GCN+UP模型,实验效果相比基准模型有显著的提升。