论文浅尝 | 利用知识图谱增强的Transformer进行跨领域方面抽取

news2024/11/28 6:37:22

998dc6a8af38c048970d662031861b45.png

笔记整理:沈小力,东南大学硕士,研究方向为知识图谱

链接:https://dl.acm.org/doi/pdf/10.1145/3511808.3557275

动机

情感分析是自然语言处理的基础任务,它包含介绍了细粒度情感分析中的一个常见任务——基于方面的情感分析(ABSA,Aspect-Based Sentiment Analysis)。在ABSA任务中,输入模型的是一个标记序列,每个标记代表一个词或短语,任务是在这些标记中准确地识别出表示方面和情感的词或短语。标记有五种类型:表示方面的开始和内部标记(B-A和I-A)、表示情感的开始和内部标记(B-O和I-O)以及不属于方面或情感的标记(N)。当前已有的ABSA研究主要关注单领域情况下的方面提取,即训练和测试数据来自同一分布。然而,当训练(源)领域与测试(目标)领域不同时,传统方法的性能通常较差,因为不同领域之间使用的方面差异很大,重叠部分较少。针对这些挑战,该论文提出了一种新方法,使用领域特定的知识图谱增强预训练的Transformer模型,以提高跨领域方面抽取的性能。为了构建领域特定的知识图谱,该方法使用了一个大规模的通识知识图谱(ConceptNet)和一个fine-tuned的生成式知识源(COMET),并结合了句法信息来决定何时注入外部知识。

亮点

本文的主要亮点有:

(1)引入了一种从未标注的文本构建特定领域知识图谱的方法,该方法使用了一个现有的常识知识图谱(ConceptNet)和一个专门针对预测领域内关系的Transformer模型(COMET)。

(2)提出了一种基于句法信息的方法,用于确定何时将外部知识注入到Transformer模型中进行方面提取,并探索了两种将知识注入到语言模型中的替代方法:插入查询丰富的中间标记和通过分离的注意力机制实现。

(3)在跨领域方面提取任务上,该方法取得了最先进的性能,并在三个不同领域(餐厅,笔记本电脑和数字设备)的消费者评论基准数据集上进行了验证。

(4)为未来的情感分析研究贡献了一个改进的数字设备基准数据集。

方法

总体框架如图1所示,方法包括三个步骤:(1)为每个目标领域准备一个领域特定的知识图谱,即知识图谱准备部分(2)确定模型何时可以从外部信息中受益,即知识注入时机部分(3)在适用时注入从知识图谱中检索到的知识,即知识注入机制部分。该方法探索了最终知识注入步骤的两种替代方法:将一个中心词条插入原始查询和通过分离的注意力机制将知识注入到隐藏状态表示中。

a775918b26459a785ea8fe8fc87bf608.png

图1 总体框架图

1)知识图谱准备部分

a.子图查询

知识子图构建的第一步是基于特定域的种子术语列表,通过对 ConceptNet 的查询构建一个原始的知识子图。

具体来说,对于每一个目标域d,通过将TF-IDF应用于域d中所有的未标记文本并取得分最高的前k个名词短语,即可得到种子术语列表  。然后,对  中的每一个种子术语s,查询在ConceptNet中通过边连接到s的所有节点,并将它们与种子术语s一起添加到特定域的子图中。最后,通过迭代查询这些附加节点进一步扩展子图,直到子图中边缘节点与种子术语的最大距离达到h

b.子图剪枝

为了增加查询子图与目标域的相关性,需要对与种子术语h的相关性得分较低的生成节点进行剪枝。

作者首先将这个通过 ConceptNet 构建的子图结构与Word2vec 等词嵌入技术相结合,进而将相关性得分定义为a6f08cb0d469546754db90b8c647e05c.png,其中  是对于子图中给定节点i的嵌入向量。基于  作者将子图中给定路径  的最小路径相关分数  定义为324284545f64d6b6fc7ed5a9cdae9a22.png,而满足  的路径上的所有节点都会被剪枝,这本质上是以牺牲覆盖率为代价减少子图中的不相关节点。

c.子图扩充

对子图进行剪枝可能会影响其覆盖率,为此作者通过生成式的常识模型 COMET 来对子图进行扩充。对于给定的头部h和关系r,COMET 可以对尾部t进行预测进而实现对三元组(h,r,t)的补全。为了提高 COMET 的跨域能力,对于每一个目标域d,作者通过 spaCy 识别出文本中出现的所有名词和名词短语,然后在 ConceptNet 中查询包含这些名词之一的三元组,进而基于这些三元组对 COMET 进行微调。

2)知识注入部分

为了确定何时注入知识,需要使用 spaCy 提取词性和依赖关系,进而识别潜在的方面 token。因为方面一般是名词或名词短语,作者通过识别输入序列中的名词格式筛选出候选的 token 集合。然后,将此 token 集与特定域的 KG 进行比较,以确定应将哪些标记为与该领域相关联。最终,可以得到一个经过筛选的候选 token 集,它们将在下一步中被使用。

3)知识注入机制

作者提到了两种将知识注入到 Transformer 中的方法。第一种是通过在被识别为潜在方面的 token 后面插入一个 pivot token 来丰富查询。第二种是利用分离的注意力的分解来调节每个 token 在枢轴信息上的分布。

a.通过 pivot token 进行知识注入

pivot token 包括 [DOMAIN-B] 和 [DOMAIN-I],是一种特殊的 token,作者将 pivot token 插入在指定的 token 后面,用于向模型指示它前面的 token 更有可能被标记为方面。例如 “It was the best pad [DOMAIN-B] thai [DOMAIN-I] I’ve ever had.”。在这一步作者通过对 Transformer 进行训练以避免插入过程的不确定性以及源域和目标域之间的依赖性。

b.通过分离的注意力机制进行知识注入

通过注意力机制来进行知识注入可以避免插入导致的句子序列变化,同时粒度更细。

实验

作者采用了 restaurant(Pontiki et al., 2015)、laptop(Pontiki et al., 2014)和 digital devices(Wang et al., 2016)三个数据集作为实验数据集。

作者将跨域设置表示为  ,其中每一个元组的第一个元素是源域,第二个是目标域,模型会在源域中进行训练和微调并在目标域中进行实验。实验结果如下所示,其中-PT表示使用 pivot token 进行知识注入,-MA表示通过修改后的注意方案进行知识注入。

86d54dd04d8dd119cab5358c1403c370.png

表1 基于方面的情感分析结果

可以发现,基于 pivot token 的方法效果更好,作者认为这是由于分离的注意力机制提高了模型的复杂性,而用来识别候选方面的二元指标所提供的信息不足以抵消这样的复杂性开销。此外,尽管 DeBERTa 模型的效果优于 BERT,但实际上 BERT 对于 pivot token 的适应性更好,作者认为这是因为标记的插入会破坏 DeBERTa 中的相对位置信息,而 BERT 的绝对位置受此影响较小。

相比较之下,模型在餐厅数据集作为目标域时效果最好,这主要是因为 ConceptNet 中有关餐饮的信息最多,能够将相关方面更好地覆盖。

总结

本文提出了一种综合方法,用于构建领域特定的知识图谱(KG),并确定在何时将知识注入到Transformer中进行方面提取更加有用。此外,作者们还介绍了两种注入知识的替代方法:通过查询扩展和使用解耦的注意力机制。他们的实验结果表明,注入知识的变压器在跨领域方面提取任务上优于现有的最先进模型。最后,作者们发布了改进版的基准数字设备评论数据集,以支持未来在方面为基础的情感分析方面的研究。

虽然该研究的重点是识别ABSA方面,但是他们构建的领域特定KG和知识注入方法可以应用于其他需要外部知识的NLP任务。在未来的研究中,他们打算探索将其方法扩展到这些应用程序,并研究注入知识到语言模型的替代方法。

此外,该研究的代码已开源至https://github.com/intellabs/nlp-architect。


OpenKG

OpenKG(中文开放知识图谱)旨在推动以中文为核心的知识图谱数据的开放、互联及众包,并促进知识图谱算法、工具及平台的开源开放。

5474a9582376fb188ad26703bb5e2819.png

点击阅读原文,进入 OpenKG 网站。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/428681.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【CSS】鼠标移动到元素上方显示 / 移出盒子范围隐藏案例 ( 子绝父相 | 显示隐藏元素对象 | 鼠标经过样式设置 | 半透明遮罩设置 )

文章目录一、鼠标移动到元素上方显示 / 移出盒子范围隐藏案例要点分析1、子绝父相2、显示隐藏元素对象3、鼠标经过样式设置4、半透明遮罩设置二、代码示例一、鼠标移动到元素上方显示 / 移出盒子范围隐藏案例要点分析 1、子绝父相 这里要 在一个 div 盒子上方套一层遮罩 , 遮罩…

【原理图专题】OrCAD Capture 设计规则(DRC)检查

在原理图设计完成后,需要进行DRC检查,DRC检查能协助工程师快速检查原理图的物理、电气规则是否正确,能快速定位错误和原因。 DRC检查从Capture 工具栏中如下图红框所示的图标中Design Rules Check进入 进入后将打开DRC窗口,有四个选项卡。分别是Design Rules Options、Elec…

带你了解攻击与防护相关知识

目录 一、攻击篇 1.什么是恶意软件? 2.恶意软件有哪些特征? 3. 恶意软件的可分为那几类? 4. 恶意软件的免杀技术有哪些? 5. 反病毒技术有哪些? 6. 反病毒网关的工作原理是什么&#xff1f…

java计时器

在 Java中,我们有一个重要的概念:同步和异步。同步就是 Java中的线程安全,异步就是 Java中的线程非安全。 在使用 JVM时,我们一般都是用 start ()方法启动一个线程,然后设置时间,比如…

Android开发中,自定义注解的两种应用方式

java注解在Android开发中主要有两种使用方式;一种是在程序运行期间获取类的信息进行反射调用;另一种是使用注解处理,在编译期间生成相关代码,然后在运行期间通过调用这些代码来实现相关功能。 我们先了解一下注解的分类和关键字 …

前端实用js dom合集

1. 整个网页变为灰色主题,最外层加css样式:filter:grayscale(1) 黑色主题:filter:invert(1) 2.js剪辑视频片段制作gif动图: 效果:点击开始就开始录制,点击结束右边显示生成的gif动图 生成g…

Python程序异常处理

一、什么是异常 异常就是程序运行时发生错误的信号,在程序由于某些原因出现错误的时候,若程序没有处理它,则会抛出异常,程序也的运行也会随之终止; 程序异常带来的问题: 1.程序终止,无法运行…

浙大数据结构(1)

开始学习数据结构(拖了好久终于开干了) 来自【浙江大学】数据结构(合149讲)陈越 何钦铭 Be a Fighter and Keep Fighting!!! 数据结构(data structure)定义 是计算机中存储,组织数据的方法。通常情况下,精心选择的数据结构可以带…

Chapter7-吞吐量优先的使用场景

7.1 在 Broker 端进行消息过滤 在 Broker 端进行消息过滤,可以减少无效消息发送到 Consumer ,少占用网络带宽从而提高吞吐量。 Broker 端有三种方式进行消息过滤 。 7.1.1 消息的 Tag 和 Key 对一个应用来说,尽可能只用一个 Topic &#xff…

【数据结构学习3】线性表-链表、单链表

目录链式存储结构链表概念头结点的意义单链表的定义和表示单链表的基本操作链式存储结构 链表概念 概念 结点在存储器中的位置是任意的,即逻辑上相邻的数据元素在物理上不一定相邻。线性表的链式表示又称为非顺序映像或链式映像用一组物理位置任意的存储单元来存…

三公经费用泛微全过程数字化管理,使用有记录,付款有依据

公开透明是现代财政制度的重要准则和基本特征。组织要以公开、透明、科学的预算制度确定财政支出,贯穿预算编制、执行、监督全过程。 组织常见的费用管理——“三公”经费,通常指因公出国(境)费、公务用车购置及运行费、公务接待…

富士康转移3000亿产能,iPhone的印度产能倍增,不再“赏饭吃”

日前消息指今年三月份印度的iPhone产量已经是去年的四倍之多,占比将近7%,显示出苹果和富士康都在加速提升印度的iPhone产能,凸显出他们的决心,这对中国制造业将带来深远影响。一、富士康对中国制造影响巨大2021年的数据…

leetcode每日一题:数组篇(1/2)

😚一个不甘平凡的普通人,日更算法学习和打卡,期待您的关注和认可,陪您一起学习打卡!!!😘😘😘 🤗专栏:每日算法学习 💬个人…

key的作用和原理、列表过滤

一、key的作用与原理 虚拟DOM对象的标识。当状态中的数据发生变化时,vue会根据新数据生成新的虚拟DOM。随后vue进行新虚拟DOM与旧虚拟DOM的差异比较,规则如下:对比规则: 旧虚拟DOM中找到了与新虚拟DOM相同的key 若虚拟DOM中内容没…

Iceberg 数据湖是什么?数据湖能解决什么问题?独立于计算层和存储层之间的表格层?

Iceberg 数据湖是什么?数据湖能解决什么问题?独立于计算层和存储层之间的表格层?0. 导读1. Hive数仓遇到的问题2. 一种开放的表格式3. 自下而上的元数据4. 高性能的查询4.1 分区剪裁4.2 文件过滤4.3 RowGroup过滤参考:https://ice…

kafka-4 生产者和消费者

kafka的生产者和消费者四、 生产者4.1 分区分配策略4.2 副本和消息消费4.2.1 副本(AR、ISR、OSR)4.2.2 HW与LEO4.2.3 ISR 集合和 HW、LEO的关系五、消费者5.1 分区分配策略5.2 消费者offset的存储四、 生产者 4.1 分区分配策略 (1&#xff…

【20】linux进阶——linux的数据流和重定向

大家好,这里是天亮之前ict,本人网络工程大三在读小学生,拥有锐捷的ie和红帽的ce认证。每天更新一个linux进阶的小知识,希望能提高自己的技术的同时,也可以帮助到大家 另外其它专栏请关注: 锐捷数通实验&…

一、LED子系统框架分析

个人主页:董哥聊技术我是董哥,嵌入式领域新星创作者创作理念:专注分享高质量嵌入式文章,让大家读有所得!文章目录1、前言2、LED裸机处理3、LED子系统框架4、LED子系统目录结构及核心文件5、sysfs目录结构5.1 确保LED子…

低代码开发重要工具:私有化部署的jvs-logic的设计与价值

逻辑引擎介绍 逻辑引擎是一种能够处理逻辑表达式的程序,它能够根据用户输入的表达式计算出表达式的值。在实际应用中,逻辑引擎通常被用于处理规则引擎、决策系统、业务规则配置等领域,具有广泛的应用前景。 逻辑引擎如下图所示,在…

Hive中SQL基本操作

文章目录1. Hive 中DDL1) 数据库操作2) 创建表 Create table3)内部外部表区别4) Create Table As Select (CTAS)4)分区表 partition2 .Hive中 DML1)从文件加载数据 Loading files into tables2)插入 INSERT3)更新 UPDA…