图模型在方面级情感分析任务中的应用

描述

引言

方面级情感分析(Aspect-based Sentiment Analysis, ABSA)是一项细粒度的情感分析任务,主要针对句子级别的文本,分析文本中相关的方面项(Aspect Term)、观点项(Opinion Term)、方面类别(Aspect Category)和情感极性(Sentiment Polarity),在不同的场景下对应着不同的子任务。

本次Fudan DISC实验室将分享ACL 2022中关于方面级情感分析的三篇论文,其中两篇介绍基于图模型的方面级情感分析研究,一篇介绍用生成的方法进行ABSA的相关研究。

文章概览

BiSyn-GAT+: 用于方面级情感分析的双重语法感知图注意网络(BiSyn-GAT+: Bi-Syntax Aware Graph Attention Network for Aspect-based Sentiment Analysis)

论文地址:https://aclanthology.org/2022.findings-acl.144.pdf

该篇文章提出了一种双语法感知图注意网络(BiSyn-GAT+),利用句子的短语结构树和依存结构树来建模每个方面词的情感感知上下文(称为上下文内)和跨方面的情感关系(称为上下文间) 信息,首次在ABSA任务中引入了句子的短语结构树的语法信息,四个基准数据集的实验表明,BiSyn-GAT+ 始终优于最先进的方法。

用于方面情感三元组提取的增强多通道图卷积网络(Enhanced Multi-Channel Graph Convolutional Network for Aspect Sentiment Triplet Extraction)

论文地址:https://aclanthology.org/2022.acl-long.212.pdf

该篇文章旨在抽取句子中的情感三元组,提出了一个增强多通道图卷积网络模型来充分利用单词之间的关系。该模型为 ASTE 任务定义了 10 种类型的关系,通过将单词和关系邻接张量分别视为节点和边,将句子转换为多通道图,从而学习关系感知节点表示,同时设计了一种有效的词对表示细化策略,显著提高了模型的有效性和鲁棒性。

Seq2Path:生成情感元组作为树的路径(Seq2Path: Generating Sentiment Tuples as Paths of a Tree)

该篇文章提出了 Seq2Path 来生成情感元组作为树的路径,通过生成的方法来解决ABSA中的多种子任务。树结构可以用于表示“1对n”的关系,并且树的路径是独立的并且没有顺序。通过引入额外的判别标记并应用数据增强技术,可以自动选择有效路径,从而解决ABSA中常见的五类子任务。

论文细节

GAT

动机

该篇文章中的ABSA旨在识别句子中给定方面的情感极性。之前的许多工作主要是用有注意力机制的RNN、CNN提取序列特征,这些模型通常假设更接近目标方面词的单词更可能与其情绪相关。但这种假设很可能并不成立,在图1中可以看到,“service”更接近“great”而不是“dreadful”,所以这些方法可能会错误地将不相关的意见词“great”分配给“service”,导致情感判断错误。

GAT

近期的工作主要研究如何通过GNN利用依存结构树等非序列信息来建模方面词,然而依存结构树的固有性质可能会引入噪声,如图 2中“great”和“dreadful”之间的“conj”关系,conjunct表示连接两个并列的词,这可能会影响到对great和dreadful的建模,即上下文内建模,此外,依存结构树仅仅揭示了单词之间的关系,因此在大多数情况下无法模拟句子间的复杂关系,例如条件、协同、反义等关系,也就无法捕捉方面词之间的情感关系,即上下文间建模。

GAT

基于以上的两个发现,在本文中,作者考虑利用短语结构树的句法信息来解决这两个问题。短语结构树中通常包含短语分割和分层组合结构,有助于正确对齐方面和表示方面情感的单词。前者可以自然地将一个复杂的句子分成多个子句,后者可以区分方面词之间的不同关系来推断不同方面之间的情感关系。

如图 3 所示,“but”等短语分割词可以很自然地将原句切分为两个子句,同时,在Layer-1中,“and”可以体现出“service”和“environment”的协同关系,而Layer-3中的“but”可以体现出“food”和“service”或“environment”之间的反义关系。

GAT

任务定义

在给定方面词,判断情感极性的设定中,表示长度为的句子,表示预定义的方面词集合。对于每个句子,表示句子中包含的方面词,任务目标就是输入句子和句子中的若干方面词,得到每一个对应的情感极性。

模型

本文提出的模型如图4所示:

GAT

该模型以句子和文本中出现的所有方面词作为输入,输出方面词的预测情感。其中一共包含三个组件:

一是上下文内模块(Intra-Context Module),对输入文本进行编码以获得针对目标方面词的方面特定表示,其中包含两个编码器,分别是上下文编码器和利用短语结构树和依存结构树中句法信息的句法编码器。

二是上下文间模块(Inter-Context Module),其中包含一个关系编码器,用于从构建的方面-上下文图中得到关系增强的表示,方面-上下文图是由给定句子的所有方面词以及短语分割项组成,短语分割项是通过规则方法从短语构成树中得到的。

三是情感分类器,综合利用上述两个模块的输出表示预测情感。

1. 上下文内模块

上下文内模块利用上下文编码器和句法编码器对每个方面词的情感感知上下文进行建模,并为每个目标方面词生成方面特定表示。对于多方面词的句子将多次使用此模块,每次处理一个目标方面词。

上下文编码器利用BERT进行编码,输入序列如式1所示,经过BERT可以得到如式2所示的文本表示,由于BERT分词后每个单词可能被拆分为多个子词,因此通过式3对多个子词的表示取平均,得到每个单词对应的文本表示。句法编码器由几个分层图注意力块堆叠而成,每个块中由多个图注意力层组成,这些层在短语结构树和依存结构树上对句法信息进行分层编码,关键在于图的构建。

GAT

GAT

GAT

根据短语结构树的句法结构,本文以自底向上的方式进行编码,短语结构树的每一层  由组成输入文本的几个短语组成,每个短语代表一个独立的语义单元。

例如,图3中的就是{The food is great, but, the service and the environment are dreadful},根据这些短语,可以通过式4构造显示单词连接的邻接矩阵CA,如果两个单词在该层的同一短语中,则矩阵对应位置为1,否则为0。具体的模块图如图5所示,左边这一列就是得到的邻接矩阵CA。

GAT

GAT

接着介绍 HGAT 块,一个 HGAT 块由几个 GAT 层堆叠,这些 GAT 层利用掩码自注意力机制聚合来自邻居的信息,并使用全连接层将表示映射到相同的语义空间。注意力机制可以分配给具有更多相关词的邻居更高的权重。其表示如式 5,6,7 所示,其中  表示第  层中  的邻居集合, 是衡量两个词相关性的评分函数,式 7 就是将  层中两个词之间的相关性进行归一化得到第 l 层中使用的权重 ,式 6 中的  是经过掩码自注意机制后  的表示。

||表示向量连接。 是注意力头的数量。 是第  层中  的最终表示,式 5 就是将  层中  的最终表示和  层中经过掩码自注意机制后  的表示拼接起来再过一个全连接层。堆叠的 HGAT 块将前一层块的输出作为输入,第一个 HGAT 块的输入是式 3 中得到的 。

GAT

本文还探索了结构和依存两种句法信息的融合,可以将依存结构树视为无向图并构造邻接矩阵 DA,如果两个词在依存结构树中直接连接,那矩阵中的元素为1,否则为0。通过逐位点乘、逐位相加和条件逐位相加三种方式拼接两个矩阵信息。最终上下文内模块的输出如式12所示,包含了上下文信息和句法信息。

GAT

2. 上下文间模块

上下文内模块中没有考虑方面词之间的相互影响。因此,在上下文间模块中,本文构建了一个方面-上下文图来对各方面词之间的关系建模。该模块仅适用于多方面词句子,将来自上下文内模块的所有方面词的方面特定表示作为输入,并输出每个方面词的关系增强表示。

方面词之间的关系可以通过一些短语分割词来表示,比如连词。因此,本文设计了一个基于规则的映射函数 PS,可以返回两个方面词的短语分割词。具体来说,给定两个方面词,PS函数首先在短语结构树中找到它们的最近共同祖先(LCA),它包含两个方面词的信息并且具有最少的无关的上下文。我们将来自 LCA 的,在两个方面分开的子树之间的分支,称为“Inner branches”。PS函数就会返回“Inner branches”中的所有文本词。否则将返回输入文本中两个方面词之间的单词。在图3中,给定方面词food和service,LCA节点是第四层中的S,具有三个分支,此时的inner branch就是中间的but,反映两个方面词之间的情感关系。

GAT

在方面上下文图构建中,本文认为一个方面词的影响范围应该是连续的,方面词之间的相互影响会随着距离增加而衰减,考虑所有方面对会引入由长距离引起的噪声并增加计算开销,所以本文只对相邻的方面词之间的关系进行建模。在通过 PS 函数得到相邻方面词之间的短语分割词后,本文通过将方面词与相应的短语分割词相连接以构建方面上下文图。为区分方面上下文之间的双向关系,本文构建了两个对应的邻接矩阵。第一个处理句子中所有奇数索引方面词到相邻的偶数索引方面词的影响,第二个反之。用之前从上下文内模块中学到的和经过BERT编码的短语分割词为输入,将上述介绍的HGAT块作为关系编码器,输出为每个方面词对应的关系增强表示。

GAT

将上下文内模块和上下文间模块的输出组合起来形成最终表示,然后将其送入全连接层,即情感分类器中,得到三种情感极性的概率。损失函数就是情感标签和预测结果之间的交叉熵损失。

GAT

GAT

结果

本文的实验在四个英文数据集上进行,分别是SemEval2014的laptop、restaurant和MAMS、Twitter数据集。其中laptop和restaurant数据集中的句子有包含多方面词的,也有包含单方面词的。MAMS 中的每个句子至少包含两个不同情感的方面词。Twitter中的句子只包含一个方面词。数据集统计数据如表 1 所示。

GAT

解析器使用SuPar,利用CRF constituency parser (Zhang et al., 2020)得到短语结构树,利用deep Biaffine Parser (Dozat and Manning, 2017)得到依存结构树。

Baseline一共分为三组,分别是无句法信息的基线模型,有句法信息的基线模型和建模了方面词之间关系的基线模型。

GAT

最终的实验结果如表2所示,本文的完整模型有一个加号,没有加号的是去掉上下文间模块后的模型。本文提出的模型要优于所有基线模型。具有句法信息的模型要优于没有句法信息的模型,本文的模型优于仅使用依赖信息的模型,说明组成树可以提供有用的信息。从最后两行的比较中可以看出,建模方面词之间的关系可以显著提高性能。

GAT

此外,作者还做了许多消融实验,探索了模型中各个模块的作用,比较了不同解析器带来的影响和不同的方面上下文图构建方式带来的影响,最终的结果就是每个模块都有其用处,把各类模块都加上得到的结果才是最优的。

2

GAT

动机

情感三元组抽取任务旨在从句子中提取方面情感三元组,每个三元组包含三个元素,即方面词、观点词以及对应情感。如图1所示,蓝色代表方面词,黄色代表观点词,红色和绿色表示情感,输入为句子,期待的输出为下面的三元组。先前的方法主要为Pipeline方法,或者将其建模为多轮阅读理解任务,再或者通过新的标注方案进行联合抽取来解决。尽管之前的工作取得了显著成果,但仍然存在一些挑战。

在ASTE任务中,很自然地会面临两个问题,一是如何利用单词之间的各种关系来帮助 ASTE 任务,词对(“food”,“delicious”),“food”是“delicious”的观点目标,被赋予了积极的情感极性,需要基于单词之间的关系来学习任务相关的单词表示。二是如何利用语言特征来帮助 ASTE 任务,可以观察到方面词通常是名词,观点词通常是形容词,因此名词和形容词组成的词对往往形成方面-观点对,从句法依存树的角度观察,food是delicious的名词性主语,依存类型为nsubj,说明不同的依存类型可以帮助方面词、观点词的抽取和匹配。基于以上两点观察,本文提出了一种增强多通道图卷积网络模型来解决上述问题,设计了十种单词关系来建模单词之间的关系概率分布,充分利用了四种语言特征并细化词对表示。

GAT

任务定义

给定一个输入句子,包含个单词,目标是从中抽取出一批三元组  ,其中和分别表示方面项和意见项,表示情感极性。

除了任务形式定义,本文为 ASTE 定义了句子中单词之间的十种关系,如表1所示。

GAT

与前人的工作相比,本文定义的关系引入了更准确的边界信息,其中的四个关系或标签 {B-A, I-A, B-O, I-O} 旨在提取方面词和意见词,B 和 I 分别表示术语的开头和内部。A 和 O 子标签旨在确定词语的作用,即为方面词或意见词。表 1 中的 A 和 O 关系用于检测由两个不同的词组成的词对是否分别属于同一个方面或意见词。三个情感关系检测词对是否匹配,同时判断了词对的情感极性,可以使用表格填充的方法构建关系表,图3就是一个例子,每个单元格对应一个具有关系的词对。

GAT

在得到表格后需要对其进行解码,ASTE 任务的解码细节如算法1所示。为简单起见,此处使用上三角表来解码三元组,因为是标准情况下关系是对称的。首先仅使用基于主对角线的所有词对之间的预测关系来提取方面词和观点词。其次,需要判断提取的方面词和观点词是否匹配。具体来说,对于方面项 和意见项,我们计算所有单词对的预测关系,其中 和 。如果预测关系中存在任何情感关系,则认为方面词和观点词是配对的,否则这两个不配对。最后,为了判断方面-观点对的情感极性,将预测最多的情感关系视为情感极性。经过这样的流程,可以收集到一个三元组。

GAT

模型

接着介绍一下本文提出的模型架构。首先利用BERT编码输入,接着利用一个biaffine attention模块来对句子中单词之间的关系概率分布进行建模,并使用一个向量来表示它。接着每种关系对应一个通道,形成一个多通道的GCN模型,同时,为增强模型,为每个词对引入了四种类型的语言特征,并对biaffine 模块中获得的邻接张量添加约束,最后利用方面和意见提取的隐含结果精炼词对表示并进行分类。

GAT

1.输入与编码层 & 双仿射注意模块

在输入与编码层,利用BERT 作为句子编码器来提取隐藏上下文表示。接着利用Biaffine Attention模块来捕获句子中每个词对的关系概率分布,其过程如式1234所示。经过BERT后的隐藏上下文表示经过两个MLP层分别得到和,通过式3得到表示,其中的、和是可训练的权重和偏差,中间的加号表示连接。表示词对  的第  个关系类型的分数,这里就是做了一个归一化。邻接张量就是上面这个过程的矩阵化表示,其形状为,为关系类型的数量,每个通道就对应着一个关系类型。

GAT

2. 多通道GCN

多通道的GCN模型则是沿着每个通道为Biaffine Attention 模块得到的中的每个节点聚合信息。  表示  的第 个通道切片, 和  是可学习的权重和偏差。 是激活函数。是平均池化函数,可以将所有通道的隐藏节点表示聚合起来。

GAT

3. 语言特征

为增强EMC-GCN 模型,本文为每个词对引入了四种类型的语言特征,如图 4 所示,包括词性组合、句法依赖类型、基于树的距离和相对位置距离。对于句法依赖类型,需要为每个词对添加一个自依赖类型。一开始随机初始化这四个邻接张量,以以句法依赖类型特征为例,如果  和  之间存在依赖弧,并且依赖类型为 nsubj,则通过一个可训练的嵌入查找表,将  初始化为 nsubj 的嵌入,否则用 维零向量进行初始化。随后,使用这些邻接张量重复图卷积操作以获得节点表示 、、 和,最后分别将平均池化函数和连接操作应用于所有节点表示和所有边。

GAT

GAT

4.关系损失 & 细化策略

为了精确捕捉单词之间的关系,我们对从 biaffine 模块获得的邻接张量添加了一个损失,同样,对语言特征产生的四个其他邻接张量也添加了约束损失。

GAT

为了获得用于标签预测的词对  的表示,我们将它们的节点表示 、 和它们的边表示  连接起来。受多标签分类任务中的分类器链方法启发,在判断词对是否匹配时又引入了方面和意见提取的隐含结果,具体来说,假设是方面词,是意见词,那么词对更有可能被预测为情感关系,因此引入了  和  来细化词对 的表示 。最后将词对表示输入线性层,然后使用 softmax 函数生成标签概率分布 。

GAT

GAT

训练时的损失函数如式13所示,其中的是用于ASTE任务的标准交叉熵损失函数,如式14所示,系数和用于调整对应关系约束损失的影响。

GAT

GAT

结果

本文实验的数据集也是在SemEval挑战赛的数据集基础上,D1由[Wu et al. (2020a)],D2由[Xu et al. (2020)]做了进一步的标注,这两组数据集的统计数据如表2所示。

GAT

本文实验比较的基线模型主要流水线模型、一些端到端方法的模型和基于机器阅读理解的模型。

GAT

在 F1 指标下,EMC-GCN 模型在两组数据集上优于所有其他方法。端到端和基于 MRC 的方法比流水线方法取得了更显着的改进,因为它们建立了这些子任务之间的相关性,并通过联合训练多个子任务来缓解错误传播的问题。

GAT

GAT

此外,文章还进行了一些消融实验分析,实验发现提出的十种关系和细化策略都对性能提升有帮助。作者通过可视化通道信息和语言特征信息,发现这些模块都如预期一样有效,有助于传递词之间的信息,通过样例分析对比其他模型,发现EMC-GCN模型可以更好地提取句子中的情感三元组。

3

GAT

动机

在本文中,作者以 ASTE 为默认任务来说明想法。ABSA任务方面最近的趋势是设计一个统一的框架来同时处理多个 ABSA 任务,而不是为每个 ABSA 任务使用单独的模型,如Seq2Seq 模型已被充分应用到其中。输入文本后,输出是一系列情感元组,但这种设计仍存在两种问题,一是顺序,元组之间的顺序并不自然存在,二是依赖关系, 的生成不应该以为条件。也就是说,为什么必须是第一个元组而不是?为什么后面必须跟  而不是或结束符?

基于以上发现,作者认为树结构是表示输出的更好选择。树可以表示一对多的关系,其中一个token在生成期间其后可以跟随多个有效token,而在序列中只能表示一对一的关系,一个token在生成期间其后紧跟一个token,也就是贪心的策略。如图 1 中的示例,两个情感元组(“rolls”、“big”、“positive”)和(“rolls”、“not good”、“negative”)共享相同的方面词“rolls”,体现了一对多的关系。

GAT

在本文中,作者将 ABSA 任务形式化为树的路径序列问题,提出了Seq2Path方法,其中的每个情感元组都是树的路径,可以独立生成。只要给定输入文本,就可以独立确定任何有效的情感元组。例如,可以在不知道是一个有效的情感元组的情况下,确定 是一个有效的情感元组。具体来说,在训练时,将每个情感元组视为一个独立的目标,使用普通的 Seq2Seq 模型来学习每个目标并计算平均损失。在推理时,使用Beam Search来生成多条路径及其概率。此外,本文还引入了一个判别标记来自动从Beam Search中选择正确的路径,为数据集扩充了判别标记的负样本数据。

任务定义

方面级情感分析的输入为文本,在五个子任务上输出的目标序列为:

GAT

其中,a表示方面项,o表示观点项,s表示情感极性。

模型

Seq2Path的框架如图2所示。里面的编码器-解码器架构就是普通的 Seq2Seq 架构,主要有以下几点区别:一是每个情感元组将被视为一个独立的目标,会训练一个普通的 Seq2Seq 模型并计算平均损失。二是token的生成过程会形成一棵树,将Beam Search用于并行和独立地生成路径。三是输入是文本,输出是带有判别标记v的情感元组。由于判别标记没有负样本,因此还必须构建一个增强数据集进行训练。

GAT

对于输入句子 ,期望输出一组元组,如前面所述,集合可以表示为一棵树,其中的每个对应树的一条路径,就是路径的总数。训练的损失函数定义为这 条路径上的平均损失。就是普通的 Seq2Seq 损失, 是每个时间步的损失。

GAT

GAT

在推理阶段,我们应用带有约束解码的束搜索方法。束搜索算法根据条件概率在每一步为输入序列选择多个备选方案。通过束搜索,我们输出概率递减的 top-k 路径,这些路径表示路径有效的可能性。在解码期间也使用约束解码,不去搜索整个词汇表,而是在输入文本和任务特定标记中选择token进行输出。首先,我们删除了一些重叠的预测,如果束搜索同时返回了“”和“”,选择序列概率较高的那个。如果同时返回“”和““,其中  和  重叠,也选择序列概率较高的那个。然后输出判别标记 为true的,过滤其他无效路径。

由于判别标记没有负样本,因此数据增强步骤是必要的。为了自动选择有效路径,在每个负样本的末尾附加一个判别标记 v = “false”。本文用以下两种方式生成负样本,D1数据集是为了提高模型匹配元组元素的能力,随机替换元组中的元素,生成“rolls, was not fresh, positive, false”, “sashimi, big,negative, false”等。D2数据集是为提高模型过滤大部分不良泛化情况的能力,首先用几个小epoch训练模型,然后使用束搜索生成负样本。增广数据集就是正负样本的并集。

GAT

GAT

我们希望判别标记 v 能够过滤无效路径,又不希望模型的生成模仿负样本,因此这里应用了一个技巧性的损失掩码。假设 ,如果 y 是负样本,即 y 的验证标记为“false”,则损失掩码为如式7所示,如果 y 是正样本,即 y 的验证标记为“true”,则损失掩码如式8所示。损失掩码意味着在损失计算中跳过了一些token,如下图所示。除了判别令牌和“”令牌之外的所有令牌都被屏蔽。 为带有损失掩码的损失,其中只有  的标记参与损失计算,可以得到如式9所示的损失函数,最终数据集的总体损失如式10所示。

GAT

GAT

GAT

GAT

Seq2Path 的流程总结为算法1,首先生成负样本数据进行数据增强。其次用普通的Seq2Seq方法训练模型,使用损失掩码。在推理时使用束搜索,生成前k条路径并剪枝。

GAT

结果

该篇文章在四个广泛使用的基准数据集上进行,分别为SemEval2014 Restaurant, Laptop,SemEval2015 Restaurant和SemEval2016 Restaurant,根据ABSA的不同子任务,采取了以下的基线方法进行比较。

GAT

整体的实验结果如表2、3、4、5、6所示,总体而言,本文提出的方法几乎所有子任务上的F1 分数都达到了SOTA。

GAT

GAT

GAT

GAT

GAT

最后作者也进行了一些实验分析。首先分析束尺寸对性能的影响,总体而言,较小的束尺寸会导致更差的召回率,较大的束尺寸会导致更差的精度。然而,通过剪枝过程,无论 k 的选择如何,在前面几张实验表中得到的性能相比其他方法都是最优的,而最佳k的选择则取决于任务和数据集。尽管束搜索需要更大的 GPU 内存,但 Seq2Path 可以使用更短的最大输出序列长度,从而减少内存消耗。其次是数据增强的消融研究,数据集 D1 对 F1 分数的影响较小,数据集 D2 对 F1 分数有重大影响,说明利用少量epoch训练得到的模型得到负样本可以有效提高模型性能。

总结

此次 Fudan DISC 解读的三篇论文围绕方面级情感分析展开,介绍了图模型在方面级情感分析任务中的应用,利用依存解析图和句子结构图,可以为建模方面表示提供更精细的信息。最后,本文还介绍了一种Seq2Path的模型,改善了先前Seq2Seq方法解决ABSA任务时面临的顺序、依赖等问题。





审核编辑:刘清

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分