1. 引言
方面级情感分析[1]是自然语言处理的重要任务之一,它能够根据文本分析出用户对产品的喜爱或厌恶,常用的分析方式有两种:句子级情感分析和方面级情感分析。例如对“演技都在线,但是配乐不好听。”进行句子级情感分析时,给出的情感分析结果是用户对该电影表达出了中性情感。如果它进行方面级情感分析,可以分析出用户对“演技”方面表达出了积极情感,对“配乐”表达出了消极情感。由此可以看出,方面级情感分析对文本具有更细的粒度。方面级情感分析在实际生活中有极其重要的作用,例如提升用户体验,提升产品质量,监督舆情等,对提升人们生活品质占据着关键地位。
目前,方面级情感分析常用的算法主要有基于( Convolutional Neural Network, CNN) [2]的算法和基于图神经网络(Graph Convolutional Network, GCN) [3]-[6]的算法。基于卷积神经网络的算法主要通过卷积核提取局部特征,并结合方面词的位置进行信息增强。但卷积神经网络存在对文本上下文捕捉能力不足,以及对复杂的句子提取失真的问题。基于图卷积神经网络的算法将文本处理成图结构数据,通过多层图卷积操作,有效捕捉方面词与情感词的关联[7]。所以本文主要采用句法GCN [8]和语义GCN [9]双GCN结构,对融合了文本和外部知识图谱信息的图数据进行捕捉,弥补语义知识不够全面的问题,以此对文本中的情感进行精准分析。
本文中的贡献总结如下:
1) 本文提出一种基于知识图谱与双重图卷积的情感分类模型(KGDGCN),用于情感分析。模型融合文本和外部知识图谱信息,利用双GCN捕捉语义和句法信息,通过多维度特征交互与知识增强提升情感分析性能。
2) 为了将外部知识融合到语义和句法信息之中,本文采用KGCN算法[10] [11]对外部实体进行编码,以此聚合邻居实体和用户的信息,并将编码后的序列通过实体对齐和对齐预测动态融合文本信息,进而提升了文本的信息量。
3) 本文提供了中文的情感分析任务的数据,以及外部知识图谱。本文数据是来自真实的电影评论数据,以及相关电影知识图谱。经过数据处理,文本数据包含语义信息、句法信息、词性等细粒度语言学特征,电影知识图谱包含电影的基本信息。该数据扩充了中文情感分析任务中的实验数据,为算法验证提供了真实的数据支撑。
2. 相关工作
方面级情感分析算法从传统的机器学习方法到现在的深度学习。传统的机器学习算法主要有支持向量机[12]、朴素贝叶斯[13]等经典算法,其解释性强、训练成本低,但对文本语义的捕捉能力有限,无法处理复杂语境。为改进这个问题,提出了LSTM [14]、RNN [15]算法,利用序列模型提取文本的上下文信息,通过注意力机制,着重将注意力聚焦到与方面词相关的词语之中,但对句法结构不太重视,难以充分利用语法层面的约束信息。卷积神经网络能够有效提取数据局部特征,降低模型的复杂度,提高训练速度,但对于图结构数据无法有效提取特征。图卷积神经网络和卷积神经网络都对特征的提取有着极大的优势,而图卷积神经网络对于处理图结构数据更高的适配性。而知识图谱[16]-[21]就是一种图结构数据,其优点是能够充分保留实体之间的关系,若将知识图谱作为情感分析文本的外部知识,并采用图卷积神经网络算法对融合了文本和知识图谱进行特征捕获,能够有效提高情感分析的效果。
基于此,本文采用KGCN算法对知识图谱进行编码,该编码能够保留实体与用户之间潜在关系,同时融合了文本的句法信息和语法信息,并采用双图卷积神经网络提取句法和语义特征,实现多维度信息的深度协同。
3. 模型
本文提出的模型结构如图1所示:
Figure 1. Emotion classification model based on knowledge graph and dual graph convolution
图1. 基于知识图谱与双重图卷积的情感分类模型
本文提出的模型结构如图1所示,主要由5个部分构成。
1) 文本特征提取模块。其目标是预处理文本输入数据,生成句法邻接矩阵,调用GCN核心模块并聚合特征。
2) 知识图谱模块。其目标是从知识图谱中聚合实体信息,生成用户与物品的知识嵌入。
3) 文本–知识图谱嵌入模块。动态融合文本嵌入与知识图谱嵌入,增强文本语义表示。
4) 双GCN模块。将融合了文本和知识图谱特征的输入,使用句法图卷积网络和语义图卷积网络来捕捉文本结构和语义。
5) 分类模块:协调整体流程,整合特征并输出预测结果,计算惩罚项。
各部分职责明确且协同工作,共同完成从输入处理到输出预测的全过程。
3.1. 文本特征提取模块
本文采用LTP工具包(Language Technology Platform) [22]处理中文评论。LTP提供了一系列中文自然语言处理工具,用户可以使用这些工具对于中文文本进行分词、词性标注、句法分析等等工作。例如评论“演技都在线,但是配乐不好听。”,通过LTP之后可以得到:"token": ['演技', '都', '在线', ',', '但是', '配乐', '不', '好听', '。'],"pos": ['n', 'd', 'v', 'wp', 'c', 'n', 'd', 'a', 'wp'], "head": [3, 3, 0, 3, 8, 8, 8, 3, 8], "deprel": ['EXP', 'mDEPD', 'Root', 'mPUNC', 'mRELA', 'EXP', 'mNEG', 'eSUCC', 'mPUNC'],其中token表示分词;pos表示词性标注;head表示依存句法头部;deprel表示依存关系。
将LTP处理过后的数据,进行编码及嵌入处理(词嵌入、词性嵌入、位置嵌入拼接)后,再利用LSTM算法提取评论中上下文信息,生成文本输入。此外,将LTP处理后的句法依存信息,生成生成句法邻接矩阵,作为句法GCN的输入。
3.2. 知识图谱模块
知识图谱模块主要包括知识图谱构建和知识图谱编码。
知识图谱由“实体–关系–实体”的三元组组成,实体之间可通过关系进行相互连接,形成网状的知识结构。本文采用豆瓣电影的数据构建知识图谱,原始数据是结构性数据,所以构建方式只需要选择需要的电影信息即可。电影的知识图谱有电影类型,语言,来源国家,主演,导演,电影标签,年份,豆瓣评分,片长等信息。由于全部电影的知识图谱图片较大,本文只展示部分的电影知识图谱作为示例。构建的知识图谱如图2所示:
图2中展示了部分电影知识图谱。标注“绿色节点(电影《之子于归》及其关联实体,如类型、语言、来源国家、年份等)”“紫色节点(电影《理查二世》及其关联实体,如主演、导演、标签、年份等)”“边(实体间的关系,如‘被分类为’‘演绎’‘被指导’等)”。该图为基于豆瓣电影数据构建的电影知识图谱部分示例,以《之子于归》《理查二世》两部电影为核心,展示其与类型、语言、主演、导演等实体的关联关系,呈现“实体–关系–实体”的网状知识结构,用于直观体现电影知识图谱的构建形式与信息关联逻辑。
知识图谱编码的目的是需要获取评论对应的物品的知识,聚合了相关实体和用户知识。步骤主要有数据采样、聚合邻居节点信息、组合当前节点和邻居节点,各步骤详情如下:
1) 数据采样
有知识图谱
,其中
,
,
;
表示知识图谱中实体集;
表示知识图谱中的关系集。物品节点
的知识图谱示例,如图3所示。
Figure 2. Partial movie knowledge graph
图2. 电影知识图谱(部分)
Figure 3. Example of a knowledge graph for item v
图3. 物品v的知识图谱示例
图3是关系图采样得到的子图,展示目标物品该图为关系图采样得到的子图,展示目标物品
与其邻接实体
通过关系
构成的知识图谱结构,其中关系的权重反映其对用户行为偏好的影响程度,用于辅助收集节点周围信息以支持分析或预测任务。与其邻接实体通过关系构成的知识图谱结构,其中关系的权重反映其对用户行为偏好的影响程度,用于辅助收集节点周围信息以支持分析或预测任务。中间的节点是要预测的目标物品
。
,
表示物品
的邻居实体,
表示实体之间的关系。
G作为有权图,关系会变为权重。这个权重可被理解为是该关系影响用户行为的偏好程度,可以帮助本文收集节点周围信息。
(1)
是G的权重,u是用户向量,r是物品之间的关系。
表示为物品之间归一化后的权重:
(2)
2) 聚合邻居节点信息
为了将邻居的节点信息传递给当前节点,需要将邻居节点进行加权求和。邻居节点进行加权求和公式如公式(3)所示。
(3)
例如图3中,
代表第
个邻居的特征向量。根据图采样的思想,消息传递是有外而内进行的。所以例如在进行图3中的节点
,
传递到
时,那么
就带入上述式子中
的位置即可,利用上述公式得到
消息聚合后的特征向量后,最终传递给中心
,得到特征向量
。
总体来说,这部分就是一个聚合器。把邻居节点的信息聚合起来。
由于会出现某一个结点
存在过多的邻居的情况,会为整体的模型的计算带来巨大的压力。此时定义一个超参数
,对于每一个结点
,只是选取
个邻居进行计算。也就是说,此时
的邻域表示记作
,且满足:
(4)
3) 组合当前节点和邻居节点
到当前节点之间需要进行一次消息组合,需要将节点信息与邻居节点信息组合,更新节点信息。组合公式,如公式(9)所示。
(5)
其中
是非线性激活函数,如Relu,sigmoid。
就是线性变换矩阵,
是偏置项。这些都是一个全阶层的基本元素。而
即表示对物品
再做一次消息聚合,
表示
的所有邻域,
指物品
前一轮迭代更新产生的向量。
组合有三种方式:
1) 求和组合:
(6)
即将
对应元素位相加。
2) 拼接组合:
(7)
即将向量
与向量
拼接起来。如果原来它们的维度都为
,那么拼接后的向量维度就
,所以外面的线性变化矩阵
和偏置项
的维度也需要相应的变化。
3) 邻居组合:
(8)
就是直接采用
当作网络输出向量。
3.3. 文本–知识图谱嵌入模块
将知识拓展与文本维度一致:
(9)
其中,
表示知识经过KGCN算法处理之后的数据,
为知识嵌入维度,
,
为批次大小,
为文本长度,
为文本嵌入维度。
拼接文本嵌入和扩展后的知识嵌入:
(10)
其中,
表示文本和沿最后一维拼接,
表示评论文本序列。
计算注意力权重,衡量每个文本位置与知识的相关性:
(11)
其中,
表示注意力权重,
注意力第一层权重,
注意力第一层偏置,
注意力第二次权重,
注意力第二次偏置。
用对齐矩阵过滤无效权重并重新归一化:
(12)
其中,
表示过滤后无效关联的权重,
表示归一化,
用于标记文本序列中每个位置与知识图谱实体之间的对齐关系强度,
为元素积。
知识嵌入投影到文本维度并加权聚合:
(13)
其中,
为投影后的知识序列,
,
分别表示投影的权重、偏置。
知识加权求和:
(14)
其中,
表示加权聚合后并扩展与文本序列一致的知识序列。
融合文本嵌入和知识嵌入
(15)
其中,
表示融合了文本序列和知识序列的编码,作为双GCN模块的输入。
3.4. 双GCN模块
本模块由两个GCN模型构成,其中句法GCN来捕捉句子的句法结构信息,语义GCN来捕捉句子的语义关联。对于图结构化数据,GCN可以在直接连接的节点上应用卷积运算来对局部信息进行编码。通过多层GCN的消息传递,图中的每个节点都可以学习更多的全局信息,其中对于第l层的第i个节点,其隐藏状态表示(记为
)。GCN计算方法如下:
(16)
其中,
表示邻接矩阵(两个GCN采用不同的邻接矩阵),
是权重矩阵,
是偏差项,是
激活函数。
句法GCN的输入除了有文本序列和知识序列的编码以外,还包括句法编码。为了对句法信息进行编码,利用依赖解析器输出的依赖弧的概率矩阵,依赖概率矩阵能够通过输入提供的句法结构捕捉句法信息。本文中,使用依赖性解析模型LAL-Parser获取句法编码得到邻接矩阵
。该模型通过注意力机制计算出每个词与方面词之间的分数,分数越高,表示该词与方面词的紧密程度越高。
语义GCN没有像句法GCN一样用额外的句法知识,而是通过基于多头注意力机制构建语义邻接矩阵,能够很好地反映词语间的语义相关性,不依赖语法结构。
(17)
其中矩阵
和
是语义GCN模块上一层的图表示,而
和
是可学习的权重矩阵。此外,
是输入节点特征的维度。
为了让句法GCN和语义GCN模块之间有效地交换相关特征,采用公式,让两者进行交流:
(18)
(19)
其中
和
是可训练的参数。
最后将句法GCN和语义GCN的隐藏层进行平均池化和拼接操作:
(20)
(21)
然后,将获得的表示
输入到线性层中。
(22)
3.5. 情感分类
因为情感分为积极的、消极的、中性的,所以要把最后的结果经过
,得到最后的结果:
(23)
其中
和
是可学习的权重和偏差。
模型的损失函数包含了两个正则化,一是约束语义关联矩阵的正交性
,二是平衡语义和句法信息
,具体计算方式如下:
(24)
(25)
其中
是单位矩阵,
弗罗贝尼乌斯范数。
模型的损失函数如公式:
(26)
其中
和
是
正则化系数,
表示所有可训练的模型参数。
是标准交叉熵损失,公式如下:
(37)
其中
表示包含所有句子–方面对,
是不同情感极性的集合。
4. 实验结果分析
4.1. 数据集
本文的模型的数据来自真实的豆瓣网站电影的相关数据,包含知识图谱数据和中文评论数据。
针对电影的中文评论处理时,需要明确评论中体现出的情感分类情况,情感分类有三种消极情感,中性情感和积极情感,其中消极情感数量为1528,中性情感数量为524,积极情感数量为3056。
电影知识图谱是实体–关系–实体三元组组成,由电影的基本信息构成,其中电影数量为211,关系数量为9,实体数量为1565,知识图谱关系的详细情况如表1所示。
Table 1. Statistics on the number of entity-relationship-entity triples in the movie knowledge graph
表1. 电影知识图谱实体–关系–实体三元组数量统计
头节点 |
关系 |
尾节点 |
数量 |
电影 |
被分类 |
类型 |
449 |
电影 |
被翻译 |
语言 |
256 |
电影 |
来源 |
国家 |
271 |
电影 |
演绎 |
主演 |
1180 |
电影 |
被指导 |
导演 |
220 |
电影 |
被评论 |
电影标签 |
167 |
电影 |
诞生于 |
年份 |
212 |
电影 |
评分 |
分数 |
1570 |
电影 |
演绎时间 |
片长 |
196 |
表1展示了电影知识图谱中9类三元组数量。其中,“电影–评分–分数”的数量最多;“电影–演绎–主演”也较为突出。这些关系涵盖了电影的类型、语言、来源、主创(主演、导演)、评论标签、年份、评分、片长等维度,全面构建了电影的基本信息知识网络,为模型提供了数据支撑。
4.2. 算法比较
本文在数据集上使用KGDGCN,并与以下算法进行比较,其中ATEA-LSTM [23]是在LSTM算法的基础上加入了注意力机制,有效提高了对序列数据的处理;IAN [24]对输入文本的不同部分赋予不同的权重,捕捉文本的语义信息和特征;DualGCN采用双GCN获取语义和语法信息。为验证算法性能,本文用精确率、召回率和F1值来评估。不同算法的实验对比结果,如表2所示。
从表2中,可以看到DualGCN、KGDGCN算法比ATEA-LSTM、IAN的性能更加优秀。从而可以得出运用图卷积神经网络有助于精确推荐。此外,通过DualGCN与KGDGCN的精确率、召回率和F1值的对比,可看出在结合了知识图谱后,其性能得到了提升。
在本文模型中有三种组合当前节点和邻居节点方式,即求和组合、拼接组合和邻居组合。不同组合方式的结果,如表3所示。
Table 2. Classification results based on accuracy, precision, and F1-score
表2. 基于准确率、精确率和F1指标的分类结果
基线算法 |
精确率 |
召回率 |
F1值 |
ATEA-LSTM |
0.665 |
0.655 |
0.660 |
IAN |
0.663 |
0.664 |
0.664 |
DualGCN |
0.697 |
0.647 |
0.685 |
Ours |
0.773 |
0.721 |
0.746 |
Table 3. System resulting data of standard experiment
表3. 标准试验系统结果数据
在一个当前节点和邻居节点方式 |
精确率 |
召回率 |
F1值 |
求和组合 |
0.773 |
0.721 |
0.746 |
拼接组合 |
0.706 |
0.668 |
0.686 |
邻居组合 |
0.766 |
0.715 |
0.740 |
平均 |
0.748 |
0.701 |
0.724 |
根据表3所示,组合当前节点和邻居节点方式中求和组合的精确率、召回率和F1值最高,效果最好,能够有效结合各个节点的信息。
4.3. 消融实验
为研究模型各部分的组成对实验结果的影响,本文对KGDGCN模型设计了消融实验。实验过程中,除了去掉动态对齐分数预测部分,只采用句法GCN部分,只采用语义GCN部分以外,其他部分均不发生改变。
由表4可知,去掉动态对齐分数预测部分后结果最差,只采用句法GCN部分或只采用语义GCN部分后结果低于采用双GCN的结果,由此得出各模块需要共同协作,缺一不可。
Table 4. System resulting data of standard experiment
表4. 标准试验系统结果数据
模型 |
精确率 |
召回率 |
F1值 |
去掉动态对齐分数预测部分 |
0.709 |
0.679 |
0.694 |
句法GCN |
0.732 |
0.679 |
0.704 |
语义GCN |
0.741 |
0.688 |
0.713 |
4.4. 讨论
1) 探讨邻居节点抽样规模对结果的影响,如表5所示。
表5中可以得到K = 8时,推荐性能最好。这是因为K太小时,不能有效获得领域信息。K太大时,获得过多信息,噪音较大。
Table 5. Impact of neighbor node sampling size
表5. 邻居节点抽样规模对结果的影响
K |
2 |
4 |
8 |
16 |
精确率 |
0.731 |
0.766 |
0.773 |
0.747 |
召回率 |
0.689 |
0.700 |
0.721 |
0.690 |
F1值 |
0.713 |
0.732 |
0.746 |
0.717 |
2) 探讨“聚合–组合”的次数,即感受野深度。感受野深度对结果的影响,如表6所示。
Table 6. Impact of depth of receptive field
表6. 感受野深度对结果的影响
H |
1 |
2 |
3 |
4 |
精确率 |
0.773 |
0.669 |
0.669 |
0.680 |
召回率 |
0.721 |
0.650 |
0.670 |
0.652 |
F1值 |
0.746 |
0.659 |
0.670 |
0.666 |
由表6可知,当H从1到4的变化时,H = 1时效果最好。由于h设置过大,一方面容易造成计算量大,另一方面会导致信息重合。
3) 探讨GCN层数对模型的影响
由表7可知,当GCN层数从1到4的变化时,层数为1时效果最好。由于层数设置过大,一方面容易造成过拟合,另一方面会导致卷积过程中传递的噪声过大。
Table 7. Impact of GCN layers on the model
表7. GCN层数对模型的影响
层数 |
1 |
2 |
3 |
4 |
精确率 |
0.773 |
0.758 |
0.699 |
0.656 |
召回率 |
0.721 |
0.700 |
0.674 |
0.625 |
F1值 |
0.746 |
0.728 |
0.686 |
|
5. 结束语
本文提出了KGDGCN算法,该算法融合文本和外部知识图谱信息,利用双GCN捕捉语义和句法信息。通过对豆瓣电影数据集的实验,可以有效证明KGDGCN算法提高了结果的精确度。此外,文中进行了消融实验,如去掉动态对齐分数预测部分,只采用句法GCN或者语义GCN提取特征,从实验结果可以看出对比各个模块缺一不可。
本文的未来工作主要为两个方面。
(1) 语义信息的挖掘深度。中文博大精深,虽然算法中采用了语义GCN捕获信息,但是对于复杂的句子还需进一步加强,包括反讽、隐喻等文本。
(2) 电影评论数据问题。本文采用的是豆瓣电影评论的数据。评论的情感分析是由本人进行人工标注,所以主观较强。由于受真实数据影响,中评情感数据较少,后期会考虑多收集中性情感的数据。
NOTES
*通讯作者。