情感四元组预测现有方法
阅读本文之前我们默认你对情感分析有基本的认识。 如果没有请阅读文章(https://tech.tcl.com/post/646efb5b4ba0e7a6a2da6476)
情感分析四元组预测涉及四个情感元素: 方面术语a,意见术语(也叫观点术语)o, 方面类别ac, 情感极性s
● 方面术语a/at: 一般是文本中明确出现的描述目标,如图2“The pizza is delicious”句中的“pizza”就是方面术语。
特殊情况: 当目标被隐式表达(例如“It’s overestimated”)时,由于方面术语是代词,这种情况我们一般将方面术语表示为一个名为“null”的特殊术语。(一般是主语)
● 观点/意见词o: 一般是(主语)表达自己对目标对象的意见的表达方式。如图2“The pizza is delicious”句中的“delicious”就是观点术语。(一般是宾语)
● 方面类别ac/c: 一个预定义好的类别集合, 一般用于对方面术语的分类, 该集合为每个特定的感兴趣的领域预定义。例如,pizza 的方面类别是food。 (方面类别与方面术语是一对多的关系)
● 情绪极性s/p: 表示当前文本/情感元组的情感极性, 通常包括正面、负面和中性。
本文总共分为四个部分进行介绍:
- 前言: 情感四元组任务的诞生
- 基于bert分类的情感四元组预测
- 基于生成式模型T5的情感四元组预测
- 基于数据增强的情感四元组预测
前言: 四元组任务的诞生
\quad 方面级别情感分析四元组任务是由南京理工大学团队2021年8月的论文(ACL 2021)《Aspect-Category-Opinion-Sentiment Quadruple Extraction with Implicit Aspects and Opinions》首先提出来的,这篇文章他主要的贡献是对方面级情感分析四元组的任务定义, 以及提供了一个公开数据集ACOS,提出了多个基于bert处理四元组任务的baseline。
\quad 同年, 也就是2021年11月份 香港中文大学团队发表的论文《Aspect Sentiment Quad Prediction as Paraphrase Generation》他们在论文中也提出了对方面级情感分析四元组的任务定义。同时也提出了公开数据集ASQP, 提出基于T5模型端到端的生成式模型PARAPHRASE。至此方面情感分析四元组算是正式诞生了!!!
\quad 这里多提一嘴,这两篇论文相当于是情感四元组任务的开山之作,使用生成式的模型T5明显由于bert分类的模型(差不多十个点),生成式模型处理情感四元组在2021已经初见端倪。而且处理起来相对更简单。生成式模型一般就是简单粗暴。基于bert方法来说一般更新颖一些。但是现在很多细粒度情感分析的SOTA已经被生成式模型屠榜了。
情感四元组任务的数据集
\quad 南京理工大学团队提出的ACOS数据集。被标记为四个情感元素:方面术语、方面类别、情感极性和意见术语。该数据集包括用于餐厅领域的ACOS-Restaurant和用于笔记本电脑领域的ACOS-Laptop。 香港中文大学团队提出的ASQP数据集。类似地标记了四个情感元素:方面术语、方面类别、情感极性和意见术语。该数据集是面向餐厅领域, 进一步划分为两个子数据集Rest15和Rest16。
\quad 图2示出了ACOS和ASQP数据集的四元组各个情感极性所占的百分比分析。我们可以发现,积极的情感极性的四元组所占的比例总是最高的, 均超过60%,其次是情感极性为消极的四元组,占有率在25%以上。值得注意的是,具有中性极性的四元组不超过6%。数据比例值得进一步研究和完善。
ACOS数据集
\quad 在ACOS的两个子数据集中,ACOS-Restaurant数据集由2284个文本句子和3661个情感四元组以及13个预定义的方面类别组成。ACOS-Laptop由4076个文本句子和5773个情感四元组以及121个已经定义的方面类别组成。
ASQP数据集
\quad ASQP数据集包括两个子数据集,rest 15和rest 16,其中rest 15包含1580个文本句子和2496个情感四元组,而rest 16包含2124个文本句子和3295个情感四元组。数据集rest 15和rest 16都包含13个已经定义的方面类别。如下图所示
\quad 上图报告了两个数据集的进一步详细统计信息。值得注意的是,ACOS数据集中超过33% 的情感四元组包含隐含的方面或观点术语。与ACOS数据集不同,ASQP数据集的大部分都标记有显式术语,并且没有标记有隐式观点术语的文本句子。
\quad 总结: 现实世界的文本评论中含有大量隐式方面或意见术语的问题。所以个人感觉ACOS数据集的数据分布比例更合理一些,由于ACOS数据还有大量的隐式术语, 模型处理起来比较困难,所以在一般模型在ACOS数据集的表现也会比在ASQP数据集中差一些。
四元组任务的现有方法简单介绍及分类
研究背景
\quad 近年来,方面情绪四分量预测(ASQP)成为方面级情绪分析领域的热门研究课题。早期研究利用预定义的模板将原句转述成结构目标序列,该结构目标序列可被轻松解码为情感四元组形式(方面类别、方面词、观点词、情感极性)。模板以固定的顺序包含四个元素。
四元组情感分析研究的发展到现在差不多也就两三年的时间,期间出了许多不同的模型和方法
本文将这些方法分为三大类
- 基于Bert分类的方法
- 基于生成模型T5的方法
- 数据增强方法
1. 基于bert分类
1.1 方法1: 《Aspect-Category-Opinion-Sentiment Quadruple Extraction with Implicit Aspects and Opinions》(ACL2021 .8)
论文地址: https://aclanthology.org/2021.acl-long.29.pdf
代码: https://github.com/NUSTM/ACOS
论文详细讲解博客: https://blog.csdn.net/weixin_41799019/article/details/121247951
1.1.1 创新/贡献
这个论文是四元组任务的开山之作。提出的方法相对来说并不是很新颖。
● 提出了新的任务-情感四元组预测任务(ACOS)
● 提出一个公开数据集ACOS, 而且该数据集与以前的情感分析数据集专注的点不同,以前的数据集忽略了文本中含有隐式术语的情况。
● 提出了四个简单的baseline
贡献总结: (提出数据集+四元组任务+4个baseline)
1.1.2 具体方法说明:
第一步执行方面-意见共提取
第二步根据所提取的方面-意见对预测类别-情绪。
- 我们首先在评论句子的开头和结尾插入两个[CLS]令牌,然后将转换后的输入馈送到BERT以获得上下文感知令牌表示H
\qquad \qquad \qquad \qquad \qquad H = [ h [ C L S ] , h r , h [ C L S ] ] H=[h_{[CLS]}, h_r, h[CLS]] H=[h[CLS],hr,h[CLS]]
显式方面意见协同提取基于具有修改的BIO标记方案的CRF层。 - 我们进一步在[CLS]令牌上应用两个二进制分类任务来预测是否存在隐式方面或隐式意见。因此,我们可以获得潜在方面集合 S A S_A SA、观点集合 S O S_O SO,并且对SA和SO执行笛卡尔积以获得候选方面-观点对的集合:
\qquad \qquad \qquad \qquad S A O = a 1 − o 1 , . . . . , a ∣ A ∣ − o ∣ O ∣ S{AO} = {a_1-o_1,...., a{|A|}-o_{|O|}} SAO=a1−o1,....,a∣A∣−o∣O∣ - 接下来,我们将类别情感分类建模为多个多类分类问题。具体来说,对于每个类别c,我们将每个方面-意见对a-o的平均向量连接起来,并将它们馈送到具有Softmax函数的全连接层,如下所示:
\qquad \qquad \qquad \qquad s a o c = S o f t m a x ( W a o c t [ u a ; u o ] + b a o c ) s^{aoc} = Softmax(W^{t}_{aoc}[u_a;u_o] + b_aoc) saoc=Softmax(Waoct[ua;uo]+baoc)
其中 s a o s s^{aos} saos∈ {Positive,Negative,Neutral,Invalid}表示其在给定当前a-o和c的情况下的情绪,或者表示无效的四元组。
2. 基于生成模型T5
2.1 方法1: 《Aspect Sentiment Quad Prediction as Paraphrase Generation》(EMNLP 2021. 11)
论文地址: https://aclanthology.org/2021.emnlp-main.726.pdf
代码: https://github.com/IsakZhang/ABSA-QUAD
论文详细讲解博客: https://blog.csdn.net/qq_43658933/article/details/123972826
2.1.1 创新/贡献
● 研究了方面情感四元组预测(aspect sentiment quad prediction, ASQP)的新任务,引入两个数据集餐厅领域的数据集,对每个样本进行情感四元组标注,旨在分析更全面的方面层面情感信息。(定义任务,提出数据集)
● 我们提出将ASQP作为一个语义生成问题来处理,该问题能够一次性预测情感四元组,并充分利用自然语言标签的语义信息。
● 大量实验表明,所提出的Paraphrase模型能够有效地处理ASQP和其他ABSA任务,在所有情况下都优于以往的最先进的模型。 实验还表明,在统一的框架下,我们的释义法自然地促进了相关任务间的知识转移,在低资源环境下尤其有效。
贡献总结: {提出数据集+提出新的范式(释义范式)+四元组任务+实验结果SOTA(当时的) }
2.1.2 具体方法说明:
\quad 论文提出了一个释义建模范式 (重点!!!) ,将ASQP任务转化为释义生成问题,并以序列到序列(Seq2Seq)的方式进行求解。如模型架构图所示,给定一个句子文本句子X(The wine list yesterday was excellent, but the place is too tiny for me!),我们的目标是生成一个目标序列Y(Drinks style is great because wine list is excellent [SSEP] ambience general is bad because place is too tiny),其编码器-解码器模型为 M : x → y M: x→y M:x→y ,其中y包含所有需要的情感四元组。然后从y中恢复情绪四元组 Q = ( c , a , o , p ) Q = {(c, a, o, p)} Q=(c,a,o,p)进行预测。
\quad 这种方式通过 Y Y Y将 Q Q Q中的情感元素以自然语言的形式生成,可以充分利用 Q Q Q中的情感元素的语义。另一方面,输入和目标都是自然语言句子,可以自然地利用预先训练好的生成模型中的丰富知识。
\qquad \qquad \qquad \qquad P c ( c i ) i s P s ( s i ) b e a c a u s e P a ( a i ) i s P o ( o i ) P_c(c_i) \enspace is \enspace P_s(s_i) \enspace beacause \enspace P_a(a_i) \enspace is\enspace P_o(o_i) Pc(ci)isPs(si)beacausePa(ai)isPo(oi)
\quad 对于具有多个情感四元组的输入句子 x x x ,我们首先将每个情感四元组线性化为一个自然句子,如上所述。然后将这些句子与一个特殊的符号 [ S S E P ] [SSEP] [SSEP]连接起来,形成最终的目标序列 y y y ,其中 y y y 包含给定句子的所有情感四元组
2.1.3目标范式构建
情感极性映射
\quad 将 { P O S , N E U , N E G } \{POS, NEU,NEG\} {POS,NEU,NEG} 分别映射为 { g r e a t , o k , b a d } \{great, ok, bad\} {great,ok,bad} 这个映射操作是为了使得输出更具有语义。换句话说也就是更通顺。
\qquad \qquad \qquad \qquad P p ( p ) = { g r e a t , i f p = P O S o k , i f p = N E U b a d , i f p = N E G P_p(p)= \begin{cases} great,\quad if \enspace p = POS \\ ok,\qquad if \enspace p = NEU \\ bad, \quad \enspace if \enspace p = NEG \end{cases} Pp(p)=⎩ ⎨ ⎧great,ifp=POSok,ifp=NEUbad,ifp=NEG
例如:
\qquad 输入: The pasta yesterday was delicious!
\qquad 输出1: Food quality is POS because pasta is delicious (不映射)
\qquad 输出2: Food quality is great because pasta is delicious (映射)
对比输出1和输出2之后是不是明显感觉输出2更符合自然语言, 而输出1的POS很突兀。所以论文中目标输出的构建采用了映射为自然语义的输出2格式。
隐式术语映射:
\quad 对于方面术语,如果没有明确提及(隐式方面术语),我们将其映射为隐式代词,否则我们可以直接使用原始的自然语言形式:
\qquad \qquad \qquad \qquad P a ( a ) = { i t , a ≠ n u l l a , o t h e r w i s e P_a(a)= \begin{cases} it,\quad a \neq null \\ a,\quad otherwise \end{cases} Pa(a)={it,a=nulla,otherwise
这个上面的就情感极性映射同理 为了更符合自然语义的情况。从而方便模型训练
2.2 方法2: 《Seq2Path: Generating Sentiment Tuples as Paths of a Tree》(EMNLP 2022.5)
Seq2Path: Generating Sentiment Tuples as Paths of a Tree
Seq2Path: 将情感元组生成为树的路径
论文地址: https://aclanthology.org/2022.findings-acl.174.pdf
代码: 无开源代码
论文详细讲解博客: https://blog.csdn.net/jst100/article/details/125546186
2.2.1 科学问题
\quad 作者认为最近的生成方法,如Seq2Seq模型,通过将输出构造为情感四元组语言序列,获得了良好的性能。但是,情感元组之间的顺序并不自然存在,当前元组的生成不应以前一个元组为条件。(这不就是吐槽方法一的Paraphrase模型吗哈哈哈)
作者提出了Paraphrase两个主要缺点:
(1) 缺点1: 顺序,即元组之间的顺序并不自然存在。
案例:
\quad 输入: The pasta yesterday was delicious!
\quad 输出1: Food quality is great because pasta is delicious (c, s, a, o) (Paraphrase)
\quad 输出2: pasta is delicious because Food quality is great (a, o, c, s)
存在问题: 为什么是第一种顺序而不是第二种 这种顺序是不是本身就不存在的
(2)缺点2: 依赖,(a2, o2, s2)的生成不应以(a1, o1, s1)为条件。
案例:
\quad 输入: The wine list yesterday was excellent, but the place is too tiny for me!
\quad 输出1: Drinks style is great because wine list is excellent [SSEP] ambience general is bad because place is too tiny (Paraphrase)
\quad 输出2: ambience general is bad because place is too tiny [SSEP] Drinks style is great because wine list is excellent
\quad 模型生成 ambience general is bad because place is too tiny 这句话的之前就生成了Drinks style is great because wine list is excellent 这是不合理的, 各个情感元组之前应该是独立的
2.2.2 创新/贡献
- 提出了Seq2Path模型,一个针对ABSA的并行生成框架。它生成情感元组作为树的路径。引入了一种鉴别令牌,实现了波束搜索中有效路径的自动选择。
- 还给出了一些进一步的动机,并表明Seq2Path在学习token生成的精确条件转移概率方面更好。
- 为了进行推理,我们采用了带约束解码的波束搜索(Beam Search)。通过引入额外的鉴别标记和应用数据增强技术,可以自动选择有效路径。
- 实验结果,模型在AOPE、UABSA、ASTE、TASD、ACOS任务上4个广泛使用的数据集Laptop14、Rest14、Rest15、Rest16上都达到了最好的效果。我们的方法在几乎所有情况下都优于基线模型的F1得分。(老套路, 一般都是最后吹一波实验结果哈哈哈)
贡献总结: {波束搜索+约束解码+数据增强+提出新的范式(树结构)+实验结果SOTA(当时的)}
注意: 这篇论文提出的模型不仅仅可以解决四元组任务,也可以解决其他的ABSA子任务。
吐槽一下, 不提供源代码没有开源精神
树结构的优点
\quad 作者认为树是表示输出的更好的选择。树可以表示"1到n"关系,在生成过程中,一个token后面可以跟着多个有效令牌。然而,自然语言序列只能表示"1对1"关系,在生成过程中,一个token后面紧跟一个token(贪婪)。考虑图6中的例子,两个情绪元组(“rolls”,“big”, “positive”)和(“rolls”,“not good”, “negative”)共享相同的方面语"rolls"。因此,它是一个“1- n”关系,因为标记"big"和"not"是跟随同一个标记。
2.2.3 具体方法:
任务定义
\quad Seq2Path,如图7所示。编码器-解码器体系结构是一个普通的Seq2Seq体系结构,它们的区别描述如下。首先,我们将每个元组作为一个独立的目标,训练一个普通的Seq2Seq模型,计算平均损失。第二,token生成过程形成树状,应用波束搜索“并行”和“独立”生成路径;第三,输入是文本,输出是所有有效的情感元组的集合,带有二进制鉴别标记 { t r u e , f a l s e } \{ true, false \} {true,false}。
\qquad \qquad \qquad \qquad \qquad \qquad \qquad V ∈ t r u e , f a l s e V \in { true, false } V∈true,false。
Seq2Path模型中各个ABSA子任务对应的输出范式, (从输出范式可以看出,这里其实还增加的模型处理的复杂度将二元组抽取转化为了三元组抽取, 将三元组抽取转化为了四元组抽取, 四元组转化为了五元组
\qquad \qquad \qquad \qquad \qquad
其中a, o, c, s分别表示方面,意见,方面类别,情感极性。
推理部分: Inference
\quad 波束搜索。在推理阶段,我们将波束搜索(Srivastava et al., 2014)应用于约束解码。波束搜索算法根据条件概率在每一步对输入序列选择多个备选方案。在波束搜索中,我们输出的top-k路径的概率减小,表示路径有效的可能性。
\qquad 在解码过程中也应用了约束解码。我们没有搜索整个词汇表,而是强制波束搜索只在允许的候选令牌中进行搜索。候选标记要么来自输入文本,要么来自一些额外的特定于任务的标记。
修剪: Pruning
\quad 我们使用剪枝来过滤无效路径。首先,我们消除了一些“重叠”的预测。如果波束搜索同时返回 “ a , o , s , t r u e ” “a, o, s, true” “a,o,s,true” 和 “ a , o , s , f a l s e ” “a, o, s, false” “a,o,s,false”,我们更喜欢序列概率高的那个。如果波束搜索同时返回 “ a 1 , o , s , t r u e ” “a_1, o, s, true” “a1,o,s,true” 和 “ a 2 , o , s , t r u e “a_2, o, s, true “a2,o,s,true ,其中 a 1 a_1 a1和 a 2 a_2 a2重叠,那么我们也更喜欢具有更高序列概率的那个。然后,我们用具有区别性的令牌 v i = “ t r u e ” v_i = “true” vi=“true”输出有效路径,并过滤其他无效路径。修剪重叠情况见附录A.2。(总的来说就是模糊不定的时候我们就选高的那一个)
数据增强: Data augmentation
\quad 由于判别token不存在负样本,为了更好的提高模型效果,论文对数据进行增强。为了自动选择有效路径,在每个负样本的末尾添加一个有区别的标记 v = " false “。
负样本生成D1, D2
\quad D 1 D_1 D1: 为了提高模型对情感元组的匹配能力,我们对情感元组元素进行了随机替换。例如,在图1中,我们生成"rolls, wasn’t fresh, positive, false”,"sashimi, big, negative, false"等。(随机替换, 就是将真实Label改成负样本)
\quad D 2 D_2 D2: 为了提高模型过滤大部分初代的能力,我们先对模型进行小epoch的训练,然后用波束搜索生成负样本。例如,在图1中,我们生成“sashimi, n’t fresh, negative, false”等。(然后刚开始的epoch训练出来的错误数据当作是负样本)
\qquad \qquad \qquad \qquad \qquad \qquad \qquad \qquad D n = D 1 ∪ D 2 D_n = D_1 \cup D_2 Dn=D1∪D2
然后扩增数据集是正样本和负样本的并集
\qquad \qquad \qquad \qquad \qquad \qquad \qquad \qquad D = D p ∪ D n D = D_p \cup D_n D=Dp∪Dn
D n D_n Dn表示负样本, D p D_p Dp表示正样本
2.3 方法3: 《Aspect-based Sentiment Analysis with Opinion Tree Generation》(IJCAI 2022.5)
论文地址: https://www.ijcai.org/proceedings/2022/0561.pdf
代码: 无开源代码
论文详细讲解博客: https://blog.csdn.net/qq_43658933/article/details/123972826
2.3.1 科学问题
\quad 现有的研究通常通过将复杂的结构预测任务分解为多个子任务来提取情感元素。尽管他们的有效性,这些方法忽略了ABSA问题的语义结构,并需要广泛的特定任务的设计。在本研究中,我们引入了一种新的意见树生成模型,旨在联合检测树中所有的情感元素。意见树可以揭示一个更全面、更完整的方面级情感结构。(之前的树结构Seq2Path中一个情感四元组是一条路径, 而这个树结构有进一步的将方面意见树分为左右子树结构,相当于是两条路径)
2.3.2 创新/贡献
- 我们引入了一种新的意见树生成模型,该模型旨在对给定的评论句子联合检测树中所有的情感元素。
- 设计了两种有效形成意见树结构的策略。首先,我们提出了一种约束解码算法,该算法可以利用意见模式指导解码过程。
- 我们探索了多个训练前任务的序列到序列联合学习,以整合语法和语义特征,优化意见树生成性能。
- 我们的模型在几个基准数据集上显著提高了最先进的性能。结果也表明,我们所提出的意见树结构的效果,以及我们所提出的序列对序列的预训练系统是必须达到较强的性能。
贡献总结: {约束解码+语义特征+提出新的范式(树结构)+实验结果SOTA(当时的)}
吐槽一下, 不提供源代码没有开源精神
2.3.3 具体方法说明:
意见树的构造和线性化
\quad 意见树使用有对句子进行建模,对于一个句子,可以按照如图9的方式将方面情感四元组(aspect sentiment quads)转换为一棵意见树。每个quad节点表示一个情感四元组,然后同时将方面术语和意见术语进一步进行细分。对于一棵意见树,通过深度优先遍历即可将其转化为 token 序列,并通过 “(” 和 “)” 来标识结构。
意见树的生成
\quad 进一步利用树生成模型,从评论句中生成线性化的意见树。这个模型一般是编码器-解码器结构的模型这里采用的是T5模型。目标线性序列如下所示。
\qquad \qquad \qquad L i n e a r i z a t i o n : ( R o o t , ( Q u a d , ( D e s i g n , s u r f a c e ) , ( P o s i t i v e , s m o o t h ) ) , ( Q u a d , ( S o f t w a r e , a p p s ) , ( N e g a t i v e , h a r d ) ) ) Linearization: \\ \qquad \qquad \qquad (Root, (Quad, (Design, surface), (Positive, smooth)), \\ \qquad \qquad \qquad\enspace (Quad, (Software, apps), (Negative, hard))) Linearization:(Root,(Quad,(Design,surface),(Positive,smooth)),(Quad,(Software,apps),(Negative,hard)))
有意见约束的解码
\qquad 约束解码方法是根据当前生成的状态动态地选择和删除候选词汇表 V t V_t Vt。具体来说,每个生成步骤都有三种候选词汇 V t V_t Vt:观点术语:预定义了类别和极性的标签名称;提及意见串:方面词和意见词是原始输入中的文本跨度;结构指示符:“(”和“)”用于组合意见图式和提及意见串。(换句话说就行从特定的词汇表里面选词进行生成, 而不是从所有的vocab_size选token进行生成)
目标函数和训练
\quad 我们的目标是最大化输出线性化的意见树XT概率,给出评论句XO。因此,我们优化负对数似然损失函数:
\qquad \qquad\qquad\qquad\qquad\qquad L = ( − 1 / τ ) ∑ ( X O , X T ) ∈ τ l o g p ( X T ∣ X O ; θ ) L = (-1/\tau) \sum_{(X_O, X_T) \in \tau} logp(X_T|X_O;\theta) L=(−1/τ)∑(XO,XT)∈τlogp(XT∣XO;θ)
其中 θ θ θ为模型参数, ( X O , X T ) (X_O, X_T) (XO,XT)为训练集τ中的(句子,树)对,则
\qquad \qquad\qquad\qquad l o g p ( X T ; X O ; θ ) = ∑ i = 1 n l o g p ( x T i ∣ x T 1 , x T 2 , … x T i − 1 , X O ; θ ) log \, p(X_T;X_O;\theta) = \sum_{i=1}^n log \, p(x^i_T|x^1_T, x^2_T,…x^{i−1}_T,X_O;\theta) logp(XT;XO;θ)=∑i=1nlogp(xTi∣xT1,xT2,…xTi−1,XO;θ)
其中 p ( x T i ∣ x T 1 , x T 2 , … x T i − 1 , X O ; θ ) p(x^i_T|x^1_T, x^2_T,…x^{i−1}_T,X_O;\theta) p(xTi∣xT1,xT2,…xTi−1,XO;θ)由解码器计算。
2.4 方法4: 《Generative Aspect-Based Sentiment Analysis with Contrastive Learning and Expressive Structure》(EMNLP 2022.12)
基于对比学习和表达结构的生成式方面情感分析
论文地址: https://aclanthology.org/2022.findings-emnlp.451.pdf
代码: https://github.com/jpeper/GEN_SCL_NAT
2.4.1科学问题
\quad 生成式模型在基于方面的情感分析(ABSA)任务中表现出了令人印象深刻的效果,特别是在抽取方面-类别-意见-情感(ACOS)四元组的新兴任务中。现有生成模型在隐式的情感表达方面遇到了困难,这种情感表达通常出现在诸如在线评论等内容中。如何有效的获取情感标签的信息仍然是一个挑战。
2.4.2 创新/贡献
- 提出了一种有监督的对比学习目标GENSCL,通过鼓励模型产生可区分关键输入属性的输入表示,例如情绪极性和隐含意见和方面的存在,来帮助情感四元组的预测。
- 我们引入GEN-NAT,这是一种新的结构化生成格式,可以更好地适应自回归编码器-解码器模型,以生成方式提取情感四元组。
- 实验结果表明,在三个ACOS数据集上,GEN_SCL_NAT获得了最佳性能,平均1.48%的F1改进,在laptop- 14数据集上最高提高了1.73%。
贡献总结: {对比学习+新范式NAT+好的实验结果SOTA}
2.4.3 具体方法说明:
1.GEN-SCL监督对比损失
\quad 提出了GEN-SCL,一个辅助的SCL目标,鼓励编码器-解码器模型有区别地表示输入的几个关键特征,同时对ACOS情感四元组提取的下游生成任务进行微调。我们赋予模型学习实例级情感、方面和意见特征的表示。图1显示了每个特征的标签集。有监督的对比学习鼓励模型最大限度地提高同标签例子之间的表示相似度,而最小化不同标签例子的表示相似度。
\qquad \qquad L i c = ( − 1 / ∣ P ( i ) ∣ ) ∑ p ∈ P ( i ) l o g ( ( e s i m ( h c c i , h c p ) / τ ) / ( ∑ b ∈ B ( i ) e s i m ( h c c i , h c p ) / τ ) ) L_i^c = (-1/|P(i)|) \sum_{p\in P(i)} log((e^{sim(h_c{ci}, h_{cp})}/\tau)/(\sum_{b \in B(i) e^{sim(h_c{ci}, h_{cp})}}/\tau)) Lic=(−1/∣P(i)∣)∑p∈P(i)log((esim(hcci,hcp)/τ)/(∑b∈B(i)esim(hcci,hcp)/τ))
2.整体损失
我们在现有的解码器交叉熵损耗LCE上增加了我们的三个特性特定损耗:
\qquad \qquad L t o t a l = L C E + α 1 L S C L _ s e n t i m e n t + α 2 L S C L _ s e n t i m e n t + α 3 L S C L _ s e n t i m e n t L_{total} = L_{CE} + \alpha_1L_{SCL\_sentiment} + \alpha_2L_{SCL\_sentiment} + \alpha_3L_{SCL\_sentiment} Ltotal=LCE+α1LSCL_sentiment+α2LSCL_sentiment+α3LSCL_sentiment
在 α 1 α_1 α1, α 2 α_2 α2, α 3 α_3 α3表示监督对比学习的(SCL)的温度系数τ
3.GEN-NAT结构化生成格式
这里说明了以下几点,
- 会将“Laptop#Usability" 这种数据集中的标签映射为 the laptop usability (这样是为了更符合自然语言的句子)
- 对于多输出情况,每孟等(2020),一致的排序在训练中是有用的,即使预测无序集;在它们之后,我们使用“基于扫描”的排序,根据它们最后出现的显式方面或意见术语输出四倍。只有隐含方面和意见跨度的四元组以随机顺序最后生成。
- 继Mao等人(2022)之后,作者修正了情感四元组线性化格式,将情感四元组元素以自然自上而下的因果顺序输出:(c, a, o, s)。现在,情绪预测取决于方面和意见输出。在将预测映射回ACOS格式时,我们还使用“|”分割了一些四重组件,以减少解析歧义。
我们的NAT生成格式如下:
\qquad \qquad\qquad \qquad\qquad P c ( c i ) ∣ t h e P a ( a i ) b e a c a u s e P o ( o i ) ∣ P s ( s i ) P_c(c_i) \enspace | \enspace the \enspace P_a(a_i)\enspace beacause \enspace P_o(o_i) \enspace | \enspace P_s(s_i) Pc(ci)∣thePa(ai)beacausePo(oi)∣Ps(si)
之前的Paraphrase模型的生成格式为:
\qquad \qquad\qquad \qquad\qquad P c ( c i ) i s P s ( s i ) b e a c a u s e P a ( a i ) i s P o ( o i ) P_c(c_i) \enspace is \enspace P_s(s_i) \enspace beacause \enspace P_a(a_i) \enspace is\enspace P_o(o_i) Pc(ci)isPs(si)beacausePa(ai)isPo(oi)
3. 基于数据增强方法
3.1 方法1: 《Improving Aspect Sentiment Quad Prediction via Template-Order Data Augmentation》(EMNLP 2022)
基于模板顺序数据增广的方向情感四元预测算法
论文地址: https://aclanthology.org/2022.emnlp-main.538.pdf
代码: https://github.com/hmt2014/AspectQuad
3.1.1 科学问题
\quad 现有的大部分模型的生成范式都是以固定的顺序包含四个元素, 这种解决方案与ASQP任务的无序性相矛盾,因为只要正确提取四元组,就不需要修正模板顺序。在这种启发下,我们研究了情感四元组顺序的作用,发现一些顺序可以帮助生成模型获得更好的性能。假设不同的阶段(任务)提供了情感四元组的不同观点。(也就是说在不同的数据集的数据集下四元组c, a, o, s的位置也是很重要的)
3.1.2 创新/贡献
- 我们研究了模板订单在ASQP任务中的作用,表明一些订单的性能更好。据我们所知,这项工作是第一次尝试从模板订单的角度来研究ASQP。
- 我们提出用预先训练好的语言模型计算最小熵来选择合适的模板顺序。所选的顺序与它们的地面真实表现大致一致。
- 基于四元组的无序性,进一步结合多个合适模板作为数据增强,改进ASQP任务。实验结果表明,我们的方法优于最先进的方法,在低资源环境下有显著的收益。
贡献总结: {顺序的重要性+数据增强+低资源+实验结果SOTA(当时的)}
3.1.3 初步实验: 顺序的重要性
\quad 进行了预实验。通过只使用逗号连接,四个元素也可以转换为目标序列。与Eq.(1)相比,可以更灵活的切换顺序,一共是4个!= 24种排列。在推理过程中,四胞胎可以用逗号分隔。
\qquad \qquad\qquad \qquad
\quad 固定一个位置(ac),那么其他三个元组可以有六种组合,下图显示了每个元素的六个模板(3!)的平均F1分数。可以看到,四种元素的表现随着位置的变化呈现出不同的趋势。当 X a c X_{ac} Xac和 X s p X_{sp} Xsp逐渐向后放置时,它们的F1分数都会下降。与其他三种元素相比, X a t X_{at} Xat在不同位置的稳定性更强,而xot在第一个位置的性能最差。除位置外,还可以观察到 X a c X_{ac} Xac和 X s p X_{sp} Xsp的F1得分高于 X a t X_{at} Xat和 X o t X_{ot} Xot,表现出四个要素的难度程度不同。
\qquad \qquad\qquad
3.1.4 具体方法说明:
\quad 如前面所分析的,模板顺序影响四元组及其四元组的性能。假设不同的情况提供了情感四元组的不同观点。我们认为,组合多个模板顺序可以通过数据增强来改善ASQP任务。然而,使用全部24种排列显著增加了训练时间,效率低下。因此,我们提出了一种利用预训练语言模型(即T5)的性质来选择合适的模板顺序的简单方法。然后对于ASQP任务,这些选择的顺序被用来构建目标序列y来微调T5模型。
我们的方法由两个阶段组成,下面将详细介绍这两个阶段。
1.选择模板顺序
\quad 给定一个输入x和它的情感四元组,我们用多阶映射函数 O i O_i Oi构造所有24个目标序列,其中i∈[1,24]。下面显示了一个 O i O_i Oi示例。
\qquad \qquad\qquad \qquad\qquad\qquad O i ( x a c , x a t , x o t , x s p ) = x a t x a c x o t x s p O_i(x_{ac},x_{at}, x_{ot}, x_{sp}) = x_{at}x_{ac}x_{ot}x_{sp} Oi(xac,xat,xot,xsp)=xatxacxotxsp
\quad 其中,四个值用一个简单的空格连接起来,没有任何其他标记,比如逗号,按照特定的顺序 O i O_i Oi。通过这种方式,我们可以减少嘈杂令牌的影响,但更多地关注顺序。如果句子中有多个四联体,则引入特殊符号[SSEP]。给定多个模板阶,对输入x构造多个目标序列 y o i y_{oi} yoi。
然后我们用预先训练的T5计算的熵来评估这些目标序列。在这里, y o i y_{oi} yoi也被作为教师强迫输入到解码器(Williams和Zipser, 1989)。利用解码器的输出logit pθ计算熵。
\qquad \qquad\qquad \qquad\qquad\qquad ε ( y o i ∣ x ) = − 1 / n ∑ n ∑ ∣ v ∣ p θ l o g p θ \varepsilon(y{oi}|x) = -1/n \sum_n\sum{|v|} p{\theta} logp{\theta} ε(yoi∣x)=−1/n∑n∑∣v∣pθlogpθ
式中, n n n为目标序列长度, ∣ V ∣ |V| ∣V∣为词汇集大小。
\quad 给定整个训练集T,通过构造模板顺序,我们得到每个实例的(x, { y o i y_{oi} yoi})。具体来说,我们设计了以下两种模板选择策略。
数据集级顺序(DLO)
\quad 为了选择数据集级别的订单,我们在整个训练集中为每个订单计算一个分数。
\qquad \qquad\qquad \qquad\qquad\qquad S o i = ( − 1 / ∣ T ∣ ) ∑ T ε ( y o i ∣ x ) S{o_i} = (-1/|T| )\sum_T\varepsilon(y{oi}|x) Soi=(−1/∣T∣)∑Tε(yoi∣x)
\quad 其中 S o i S_{oi} Soi为模板阶 O i O_i Oi的所有实例的平均熵。然后通过对这些分数进行排序,选择值较小的模板订单。
实例级顺序(ILO)
\quad 不同的实例有不同的上下文和语义,并且倾向于有自己合适的模板顺序。因此,我们还设计在实例级选择订单。同样,每个小值实例的模板顺序也根据式(5)进行选择。
\qquad \qquad\qquad \qquad\qquad\qquad ε ( y o i ∣ x ) = − 1 / n ∑ n ∑ ∣ v ∣ p θ l o g p θ \varepsilon(y{oi}|x) = -1/n \sum_n\sum{|v|} p{\theta} logp{\theta} ε(yoi∣x)=−1/n∑n∑∣v∣pθlogpθ
2.微调选择好的顺序
\quad 多个模板订单提供了情感四元组的各种视图。然而,要联合训练他们,就会出现一个问题。如果这四个值用逗号或空格连接,则在推断期间无法识别值类型。例如,当输出序列“食品质量,意大利面,美味,伟大”恢复到四联体时,机器不知道元素类型。因此,为了解决这个问题,我们设计了特殊的标记来表示信息的结构(Paolini et al., 2021)。xac、xat、xot、xsp的标记分别为[AC]、[AT]、[OT]、[SP]。给定一个顺序,构造目标序列:
\qquad \qquad\qquad \qquad\qquad\; y o i = O i ( [ A C ] x a c , [ A T ] x a t , [ O T ] x o t , [ S P ] x s p ) = [ A T ] x a t , [ A C ] x a c , [ S P ] x s p , [ O T ] x o t y_{oi} = O_i([AC]x_{ac}, [AT]x_{at}, [OT]x_{ot}, [SP]x_{sp}) \\ \qquad\qquad \qquad\qquad\qquad \qquad = [AT]x_{at}, [AC]x_{ac}, [SP]x_{sp}, [OT]x_{ot} yoi=Oi([AC]xac,[AT]xat,[OT]xot,[SP]xsp)=[AT]xat,[AC]xac,[SP]xsp,[OT]xot
\quad 现在我们可以同时训练多个订单,同时这些特殊标记在推理过程中可以恢复四联体。请注意,以前的数据增强方法通常为一个标签设计多个输入,如单词删除和替换(Gao et al., 2021),从而获得多个输入句子。而我们的方法为一个输入序列构造多个标签。当使用基于生成的模型时,这得益于ASQP任务的属性。
参考文献:
[1] Cai H, Xia R, Yu J. Aspect-category-opinion-sentiment quadruple extraction with implicit aspects and opinions[C]//Proceedings of the 59th Annual Meeting of the Association for Computational Linguistics and the 11th International Joint Conference on Natural Language Processing (Volume 1: Long Papers). 2021: 340-350.
[2] Zhang W, Deng Y, Li X, et al. Aspect sentiment quad prediction as paraphrase generation[J]. arXiv preprint arXiv:2110.00796, 2021.
[3]Mao Y, Shen Y, Yang J, et al. Seq2path: Generating sentiment tuples as paths of a tree[C]//Findings of the Association for Computational Linguistics: ACL 2022. 2022: 2215-2225.
[4] Bao X, Wang Z, Jiang X, et al. Aspect-based sentiment analysis with opinion tree generation[C]//IJCAI. 2022, 2022: 4044-4050.
[5] Peper J J, Wang L. Generative Aspect-Based Sentiment Analysis with Contrastive Learning and Expressive Structure[J]. arXiv preprint arXiv:2211.07743, 2022. MLA
[6] Hu M, Wu Y, Gao H, et al. Improving aspect sentiment quad prediction via template-order data augmentation[J]. arXiv preprint arXiv:2210.10291, 2022.