ACL 2024:交叉领域情感分析——论文阅读笔记

前言

阅读了一篇ABSA的论文,在这里写下自己的一些理解小笔记,可能有点小乱,原文在这下面:

论文链接:Refining and Synthesis: A Simple yet Effective Data Augmentation Framework for Cross-Domain Aspect-based Sentiment Analysis - ACL Anthology

中文文章链接:论文速递丨ACL 2024:交叉领域情感分析 (qq.com)


1、引言

大多数ABSA模型依赖于同一领域的标注数据,导致在标注数据不足的情况下,模型性能受限。为解决这一问题,部分研究尝试通过领域迁移模型将源领域的知识转移到目标领域 ,但仍存在标签质量低和生成数据单调等问题

  • 图(a) 展示了在AESC任务中,源领域(笔记本)和目标领域(餐馆)之间的迁移过程中的错误传播问题。由于源领域中的词汇"pad"在目标领域中具有不同的含义,模型错误地将目标领域中的"pad"标记为负面情感,导致生成的句子出现错误。这表明现有方法在迁移过程中可能会传播不准确的标签。
  • 图(b) 展示了在ATSE任务中,目标领域(餐馆)的文本虽然生成了正确的伪标签,但生成的句子模式单调,缺乏多样性。两个生成的句子"The pizza is good"虽然正确,但重复且表达形式不够丰富,说明传统数据增强方法在生成多样化数据方面存在局限。

为此,本文提出了"Refining and Synthesis Data Augmentation (RSDA)"框架,通过自然语言推理(NLI)过滤数据并增强多样性,从而提高ABSA模型的鲁棒性和泛化能力。测试表明该框架在跨领域实验中表现出色。

简而言之,本文旨在通过RSDA框架进行数据知识迁移 。也来说,RSDA框架生成目标领域的ABSA数据,并在此基础上训练模型,克服了一个模型只能应用于特定领域数据集的问题。通过该框架,源领域的知识可以更好地迁移到目标领域,解决了标注数据不足的问题,提高了模型在不同领域的泛化能力。

*2、*方法

RSDA 框架主要包括两个步骤 :数据生成和质量控制、数据多样性增强。

2.1 数据生成和质量控制

2.1.1 数据生成

①采用之前(Deng 等人,2023年)的工作方法,同时训练标签提取模型和文本生成模型。

②利用标签提取模型,从目标域 句子 t 中提取伪标签 l'

③利用样本生成模型,基于伪标签 l' 生成一个新的样本t'.

④经过以上数据生成后,得到一个新的目标域标注数据:

2.1.2.数据质量控制

生成模型更倾向生成与源域相一致的文本,提取的伪标签所带来的噪声也会传播到生成的文本样本中,从而导致生成的数据质量并不是很好。

面对以上问题,本文采用了自然语言推理(NLI)过滤器来控制生成数据的质量。

将原始目标域文本 t 作为前提,将新生成的文本 *t'*作为假设。NLI 过滤器可以确定一对前提和假设之间的关系,表述为:

其中y 可以是蕴含、中立以及矛盾,当 t 和 *t'*之间出现矛盾关系时,表明生成的文本难以从原文中推断出来,应予以过滤;在质量控制之后,一些生成的问题样本将会被去除,从而保留得到高质量的标记数据。

  • 图(a)------t的含义被改变,t和t'已经出现了矛盾。NLI过滤器有效识别并过滤这些例子。
  • 图(b)------显示了目标域中未标记的文本与新生成的文本之间的隐含关系,应保留这些示例。

简而言之,该小节是通过NLI(自然语言推理)过滤器来筛选目标域中,生成的句子是否与原始句子的情感和方面一致。

2.2 数据多样性增强

然而,通过NLI 过滤器过滤了模型生成的目标域标签样本有两个不足的地方:

①由于训练资源的限制,生成模型往往会生成简单或重复的句子。

②虽然使用 NLI 过滤器可以提高生成数据的质量,但它会过滤掉部分样本,从而牺牲文本表达和模式多样性。

为了解决以上问题,作者从信息密度和表达多样性两个维度对数据进行多样化处理。

2.2.1 以组合为基础的多样性强化

①目标域标签的向量化:使用MiniLM-L6对目标域标记数据的文本进行向量编码,表示为其语义特征。

②K-means聚类:对这些向量表示进行K-means聚类,将标签分为不同的簇,每个簇代表一组相似的标签,计算公式如下:

③计算语义相似度:在每个簇中,计算文本对之间的语义相似度,使用余弦相似度来衡量每对文本的相似度,计算公式如下:

④选择低相似度文本对:在每个簇中,选择语义相似度最低的两个标签文本。

⑤合并标签和文本:对这两个标签的文本进行合并,生成一个新的合成文本。

⑥生成新文本:将合并后的标签输入生成模型,生成新的、更平滑的文本,保证生成的文本属于目标领域并保持多样性。

举例如下:在分好的其中一个簇中,选择语义相似度最低的两个标签文本,分别为"The fried fish is amazing."与"The salad is the best.",将其合并为一个新的文本"The fried fish is amazing the salad is the best.",然后通过生成模型Mg生成一个更顺畅自然的句子""The fried fish is amazing and the salad is the best I've had in a very long time."。

通过上述方法,增加新生成数据的多样性,提升模型的泛化能力和鲁棒性。

在这里,新的文本仍然属于同一个目标领域

2.2.2 以转义为基础的多样性强化

(1)标签变体转义

①将一个转义模型应用于原始目标域无标签文本t 生成一段新的转述文本t'

②使用提取模型Me 提取伪标签l'

③生成模型Mg 将根据伪标签l' 生成一个新句子t''**。

▲转义工具是直接应用于原始文本的,所有单词都可能被改写,因此提取的伪标签也可能与原始标签不同。这种方法不仅与标签不变的转述过程一致,而且还增强了的多样性和表达能力。

(2)标签不变转义

①利用提示鼓励转义工具在将文本t' 改写为t''** 时加入标签l'

②使用后处理方法确保转述文本t''** 包含标签l'

▲这样可以避免简单的句子结构,并且尽量保持目标域标签样本中的标签不变,同时转换其上下文,从而合成出更多样化的数据。

简而言之,就是改变句子,一个是改变原句子的同时标签也变了、一个是改变原句子但是不改变标签。

3、示例

到这里,可能有的小伙伴还是有点懵,这跟跨领域有什么关系,下面我给出一个例子就可以清楚了。

**首先要清楚我们的源域是有标签的,目标域是没有标签的。**我们将源域定义为"餐厅评论",目标域为"蛞蝓情感评论",且目标域没有标注的数据。我们希望通过RSDA框架,在没有目标域标签的情况下,生成新的带有情感标签的目标域文本。

(1)源域文本与模型训练

源域文本(餐厅评论):

  1. "这家餐厅的服务非常糟糕,食物也很差。"

Label: <neg> 服务 <opinion> 糟糕

  1. "食物非常好吃,服务也很周到。"

Label: <pos> 食物 <opinion> 好吃

通过源域的数据,模型学会了如何将评论中的具体名词(如"服务"、"食物")与情感表达(如"糟糕"、"好吃")进行关联。模型知道"糟糕"代表负面情感,"好吃"代表正面情感。

(2)跨域知识迁移

在目标域"蛞蝓情感评论"中,虽然内容与餐厅评论不同,但模型通过源域学习的情感模式,可以迁移到目标域的情感分析中。模型不再关心"服务"或"食物"这些具体名词,而是基于情感词汇的正负面特性来进行分类。

目标域文本(未标注的蛞蝓评论):

"这只蛞蝓滑溜溜的,看起来很恶心。"

此时,模型通过源域学习到的知识,将"恶心"识别为与"糟糕"相似的负面情感词。

(3)RSDA框架的应用

Ⅰ. 数据生成与质量控制

i)伪标签生成:

模型通过识别"恶心"这个词,生成伪标签: <neg> 外观 <opinion> 恶心

ii)新文本生成:

基于伪标签,模型生成新文本: "蛞蝓的外观非常恶心,感觉让人不舒服。"
iii)NLI质量控制:

通过NLI(自然语言推理)模型,确保生成的文本与原始文本保持一致,并过滤掉那些不符合逻辑的文本。如果生成的文本出现如"蛞蝓的外观很美丽"(矛盾的情感),则会被过滤。

Ⅱ. 数据多样性增强

i)组合标签增强:

在目标域中,通过组合不同的伪标签增强数据多样性。例如,组合两个伪标签:

<neg> 外观 <opinion> 恶心

<neg> 动作 <opinion> 缓慢

模型生成的新文本可能是: "蛞蝓的外观真让人恶心,而且它爬得非常慢。"

ii)改写增强:

模型还会对生成的文本进行改写,以丰富表达:

  • 原始生成文本:"蛞蝓的外观非常恶心,感觉让人不舒服。"

  • 改写后的文本:"看到蛞蝓滑溜溜的外观真是让人恶心。"

此时就有了新的数据:

-句子:看到蛞蝓滑溜溜的外观真是让人恶心。

-标签:<neg> 外观 <opinion> 恶心 <neg> 动作 <opinion> 缓慢

也就是说,这篇论文的完整逻辑是:利用源域标识好的方面-情感对,让没有标签的目标域通过数据生成和质量控制、数据多样性增强,得到新的跟目标域原来的句子相差不大但是丰富了的、并且带有方面-情感对的新数据,从而实现了利用一个领域的ABSA进行知识迁移到另一个领域的ABSA。

4、实验

实验部分其实就是证明了这个方法的有效性跟优越性,具体看一下原文就可以了。

相关推荐
LN花开富贵1 小时前
stm32g431rbt6芯片中VREF+是什么?在电路中怎么设计?
笔记·stm32·单片机·嵌入式硬件·学习
qq21084629531 小时前
【stm32笔记】使用rtt-studio与stm32CubeMx联合创建项目
笔记·stm32·嵌入式硬件
liangbm32 小时前
MATLAB系列07:输入/输入函数
开发语言·数据库·笔记·matlab·函数·自定义函数·matlab函数
好悬给我拽开线3 小时前
【论文阅读】3D Diffuser Actor: Policy Diffusion with 3D Scene Representations
论文阅读
酒饮微醉-3 小时前
论文阅读--Planning-oriented Autonomous Driving(一)
论文阅读·笔记·学习·自动驾驶
逐梦苍穹3 小时前
速通LLaMA2:《Llama 2: Open Foundation and Fine-Tuned Chat Models》全文解读
论文阅读·人工智能·语言模型·llama·论文笔记·llama2
GoppViper3 小时前
golang学习笔记28——golang中实现多态与面向对象
笔记·后端·学习·golang·多态·面向对象
Red Red4 小时前
GEO数据库提取疾病样本和正常样本|GEO数据库区分疾病和正常样本|直接用|生物信息|生信
开发语言·数据库·笔记·学习·r语言·c#·生物信息
视觉小鸟4 小时前
【java面试每日五题之基础篇一】(仅个人理解)
java·笔记·面试
handsome2139 小时前
WSL中使用GPU加速AMBER MD--测试
笔记·学习