论文阅读-You Only Read Once: Constituency-Oriented Relational Graph Convolutional Network for Multi-Aspect Multi-Sentiment Classification
2025-05-05发布于论文随笔 | 最后更新于2025-05-05 16:05:00
基本介绍
任务介绍
本文做的是NLP中的ABSA(Aspect-Based Sentiment Analysis)任务,即方面级情感分析。传统的情感分析任务较为粗粒度,往往以一篇文档或一整句话为单位,要求判断其情感极性(积极、消极或中性);ABSA则较为细粒度,要求对同一段文本中多个特定方面(实体、属性、动作等)做出情感极性判断。
例如,对于句子“Food was served very promptly but our wait for drinks was surprisingly long.”,可以认为其中具有serve food、wait、drink这三个方面(也可以有其他方面划分),该句子中对于这三个方面的情感极性分别为积极、消极、中性。
本文特色
之前的方法往往会分多次分别为文本中的各方面预测情感极性,这显然不利于全局信息的利用。本文提出了一到多(one-to-many)的YORO框架,一次预测文本中所有方面的情感极性,框架中用了一种改进后的图卷积网络CorrGCN来学习局部、全局等信息。
模型详解
整体框架图如下:
文本编码
由于以往的模型需要分别预测各方面的情感极性,需要将文本按下面这种格式输入文本编码器,即将一个句子中的多个方面拼接在句子后并隔开:
但本文的YORO可以一次预测所有方面的情感极性,就不需要做这样的拼接了,直接将句子输入文本编码器即可:
Constituency-oriented Graph
以往的工作大多使用单词关系解析树来构建图,这种单词关系解析树中与目标方面直接关联的单词较为局限,使得图卷积过程中无法高效地捕捉信息。本文使用了一种成分解析树(constituency parsing tree),在这种解析树中,树的根节点表示整个句子,内节点表示短句,叶节点则表示单词,整体形成了句子->短句->单词的结构。
根据成分解析树,按四种关系类型建立图:
- aspect specific
- inter aspect
- globally shared
- opinion word
Aspect-specific
这一步主要是为了提取与当前方面相关的局部信息。本文认为这种局部信息需要从只出现了当前方面、且没有出现其他方面的短句中提取。
具体来说,通过从上往下遍历成分解析树,找到各个方面的aspect-specific phrase。
Inter-aspect
显然,除了当前单个方面的局部信息,方面间的信息也非常重要。例如,前文的例子中就有“but”这种逻辑词,可以体现方面间的情感极性对比关系。
具体来说,本文在各个方面的首个单词间建立边。
Globally-shared
经过上面两步后,还会剩些单词没有纳入图中。这些单词也会包含一些全局信息。具体来说,会将前两步中未连接的单词与每个方面的首个单词连接。
Opinion word
对于不属于任何方面的单词,若其存在于观点词字典中,则连接该词与最邻近的方面连接在一起。另外,不使用观点词字典中对于观点词的情感极性来辅助模型。
值得注意的是,当一个句子中只有一个方面时,只经过第一步就会得到一个全连接图,这是非常不利的。此时,转而按照下面的步骤对这个句子进行处理:
- 不使用整个句子作为aspect-specific phrase,而是往下找一层,即将成分解析树第一层(而不是第零层)中包含真实方面的phrase作为aspect-specific phrase
- 根据aspect-specific phrase的语法类别标签,在剩余的成分中选择具有相同标签的短句作为“伪方面”的aspect-specific phrase,并且将这个短句的首单词作为“伪方面”
- 对真实方面和伪方面进行aspect-specific relation与inter-aspect relation处理;再对剩余未纳入图的单词进行globally-shared和opinion word的处理
Relational Graph Convolutional Network
先使用上述步骤生成的关系定义邻接矩阵,其中的\(w_i, w_j\)分别表示句子中的第i、第j个单词:
接着再考虑上constituency tree中的syntactic distance(SD),进一步更新邻接矩阵为\(A\),其中的\(p\)就是位置权重
接着就可以定义多层的卷积网络,文本将此网络称为constituency-oriented relational graph convolutional network (CorrGCN)。其中的\(N_i^r\)表示节点i在关系r下的所有邻居节点,\(\hat{A}=\hat{D}^{-\frac{1}{2}}A\hat{D}^{-\frac{1}{2}}\)是按行标准化后的\(A\),\(W_r^{(l)}\)是用于学习关系的可训练权重,\(W_s^{(l)}\)是用于学习自环关系的可训练权重,\(\sigma\)代表ReLU:
Output Layer Module
在输出结果时,本文还借鉴了多任务学习的思想,将方面词的情感极性预测和非方面词(称为上下文词context/opinion word)的情感极性预测视为两个任务。最终的预测通过下面的公式得出,其中的a和c分别表示方面词和上下文词:
下面是方面词主任务和上下文词辅助任务的损失函数:
还引入了一个监督对比损失,对于当前mini batch B中的某个方面\(i\),遍历同一mini batch中的其他方面\(c\),其中的\(C(i)\)表示与方面i具有同样情感极性的方面数量,\(z\)为对应方面的向量表示:
最终的总损失为,其中的\(\Theta\)为所有可训练参数,需要对其做L2正则化,\(\alpha,\lambda\)均为超参:
实验结果
在三个数据集上进行了性能测试和消融实验,结果如下: