[论文笔记] Dual-Channel Span for Aspect Sentiment Triplet Extraction

一种利用句法依赖和词性相关性信息来过滤噪声(无关跨度)的基于span方法。

会议EMNLP 2023
作者Pan Li, Ping Li, Kai Zhang
团队Southwest Petroleum University
论文地址https://aclanthology.org/2023.emnlp-main.17/
代码地址https://github.com/bert-ply/Dual_Span/tree/master
简介一种基于span双通道的情感三元组抽取模型

Task

方面级情感分析(ABSA)中的一项子任务(情感三元组抽取,ASTE)。
image.png
图1. ASTE 任务中带有依存树和词性的句子

Problem

在ASTE任务中采用跨度交互的方式已被证明能为模型带来不错的收益。然而,基于span的方法最大的一个问题是它们通常会枚举句子中所有的span,这样会带来非常大的计算成本和噪声。具体来说,长度为n的句子的枚举跨度数量是 o ( n 2 ) o(n^2) o(n2),而在后期跨度配对阶段,所有意见和方面候选跨度之间可能的交互数量为 o ( n 4 ) o(n^4) o(n4),这意味着绝大多数的跨度都是无效的。此外,大多数现有的基于跨度的方法都对两个跨度之间的直接交互进行建模,而高阶交互作用被忽视。
为了解决以上问题,作者对跨度中的语言现象进行了探讨:

  • 在语法依赖树方面,由多个单词组成的aspect或opinion跨度在语法上是依赖的,并且多重依赖关系可以在跨度之间传递高阶交互。
  • 在词性方面,aspect和opinion存在一些常见的情况,如:aspect通常是名词(N)或名词短语(NN-NN),而opinion通常是形容词(JJ)。

Contributions

  • 提出了一种新的跨度生成方法,通过利用句法依赖关系和词性特征之间的相关性,显著减少了跨度候选的数量,从而降低了计算成本和噪声。
  • 通过构建基于句法依赖和词性关系的图注意力网络(RGAT),模型能够捕获跨度/单词之间的高阶语言特征交互,增强了跨度表示。
  • 两个公共数据集上的广泛实验表明,Dual-Span模型在ASTE任务上超越了所有现有的最先进方法,证明了其有效性和优越性。

Methodology

Sentence Encoding

本文采用了两种句子编码方法:

  • GloVe+BiLSTM
  • BERT

其实只做进行BERT版本即可,可能是为了与借鉴的Span-ASTE对比(也采用了这两种编码方法)。

Feature Enhancing Module

如上所述,跨度(或跨度内单词)涉及句法依赖性和词性相关性,因此将这些信息合并到特征表示中可能有利于跨度配对和情感预测。
为了捕获高阶依赖关系,这里我们设计了一种基于图神经网络的方法来对高阶跨度内和跨度的句法依赖关系和词性关系进行编码。具体来说,我们构建了词性关系图(对应于图3(b)所示的多关系矩阵)。然后,我们应用两个关系图注意网络分别学习所讨论句子的句法依存树和构建的词性图上单词之间的高阶交互。

Part-of-speech And Syntactic Dependency Graph Construction

利用斯坦福的CoreNLP来完成句法依赖和词性的标注
image.png
图2. ASTE 任务中一个句法依存树和词性邻接矩阵的例句
G S y n = ( V , R S y n ) G^{Syn}=(V,R^{Syn} ) GSyn=(V,RSyn) G P o s = ( V , R P o s ) G^{Pos}=(V,R^{Pos} ) GPos=(V,RPos)分别表示句法依存图和词性图,索引为i的词与索引为j的词之间的关系向量分别为 r i , j s r^{s}_{i,j} ri,js r i , j p r^{p}_{i,j} ri,jp

High-order Feature Learning with Relational Graph Attention Network

image.png
图3. Dual-Span的模型架构图
在构建好句法依赖图和词性图之后,作者构建了两个关系图注意力网络(RGAT):SynGAT和PosGAT,分别用来捕获句法依赖图和词性图的语言特征。
对于第 i i i个节点,更新过程如下:
image.png
其中 Z Z Z表示注意力头的数量, h i s y n ( l ) h^{syn}_i(l) hisyn(l) h i p o s ( l ) h^{pos}_i(l) hipos(l)表示第 l l l层数第 i i i个节点的表示向量, N ( i ) N(i) N(i)表示与 i i i直接相邻的节点集。
为了融合句法依赖和词性关系特征,作者引入了一种门机制:
image.png

Dual-Channel Span Generation

前面通过R-GAT完成了句法依存和词性信息的融合,接下来就是进行span的枚举了。这里的span枚举有两种方式。

Syntactic Span Generation

只枚举索引为 i i i的词与索引为 j j j的词之间存在依赖边或关系( e i , j = 1 e_{i,j}=1 ei,j=1),且 i i i j j j之间的距离小于 L s L_s Ls,则认为索引 i i i到索引 j j j之间的所有的词是一个span。
image.png
其中, f w i d t h ( i , j ) f_{width}(i,j) fwidth(i,j)是一个可训练的embedding。

Part-of-speech Span Generation

只枚举出所有的名词和形容词, ( k , l ) (k,l) (k,l)中每个词都是NN或者JJ,则 k k k l l l之间的所有词是一个span。
image.png
其中, f w i d t h ( k , l ) f_{width}(k,l) fwidth(k,l)是一个可训练的embedding。

最终将两种枚举方案种的span进行取并集,得到最终的span候选集:
S = S i , j s y n ∪ S k , l p o s S = S^{syn}_{i,j}∪S^{pos}_{k,l} S=Si,jsynSk,lpos

Span Classification

获得span候选集 S S S后,通过利用两个辅助任务(即 ATE 和 OTE 任务)进一步缩小可能的跨度池。相当于对每个span做一个三分类任务:{Aspect, Opinion, Invalid}
image.png
预测为Aspect或Opinion的span并不是全部都作为候选的Aspect或Opinion,而是分别取出tok nz个作为Aspect候选span和Opinion候选span。(做法与Span-ASTE一致)

Triplet Module

对候选的aspect和opinion进行两两配对,配对之后的跨度对的向量表示:
image.png
f d i s t a n c e ( a , b , c , d ) f_{distance}(a,b,c,d) fdistance(a,b,c,d)是一个可训练的embedding, r a b , c d s r^{s}_{ab,cd} rab,cds为词a、b与词c、d之间的依赖关系表示向量做一个均值操作。
接下来对每个配对之后的pair进行4分类:{Positive, Negative, Neutral, Invalid}:
image.png

Training objective

训练的损失函数定义为跨度分类和三元组模块中跨度对分类的负对数似然之和:
image.png

Experiments

Dataset

ASTE-Data-v1和ASTE-Data-v2,所有数据集均基于 SemEval 挑战(Pontiki 等人,2014、2015、2016),并包含笔记本电脑和餐厅领域的评论。
image.png
图4. ASTE两个数据集的想详细统计结果

Main Results

image.png
图5. ASTE-Data-v1数据集的主要结果
image.png
图6. ASTE-Data-v2数据集的主要结果

  • 性能提升: Dual-Span模型在四个公共数据集(Lap14, Res14, Res15, Res16)上进行了广泛的实验,实验结果表明,该模型在F1分数上一致超越了所有现有的最先进方法。这证明了Dual-Span在ASTE任务上的有效性和优越性。
  • 句法结构的利用: 在基于标签的端到端方法中,那些利用句子句法结构的方法(如S3E2, MTDTN和EMC-GCN)通常比仅学习标签信息的方法(如OTE-MTL, GTS和JET)表现得更好,这表明句法特征对于三元组表示是有意义的。

Ablation Study

image.png
图7. 消融实验的结果
通过消融研究,论文进一步验证了Dual-Span中各个组件的有效性。移除句法图注意力网络(SynGAT)、词性图注意力网络(PosGAT)或两者都移除(Dual-RGAT)都会导致性能下降,这表明模型的每个部分都对最终的ASTE任务性能有贡献。

Effectiveness of Dual-Span in Span Generation

image.png
图8. ATE和OTE任务在数据集D2上的实验结果
在 ATE 任务上,Dual-Span 始终优于 Span-ASTE 和 GTS,这表明基于句法和词性相关性的候选缩减和表示对于方面术语识别是有效的。然而,在 OTE 任务上,模型在大多数基准数据集上略逊于 Span-ASTE,这是由较低的 P(precision)值引起的。可能是因为作者只考虑涉及用 JJ或NN 标记的单词的跨度。但是,意见术语可以用 VBN 标记,但他们没有被包括在内。
image.png
图9. 在D2数据集上生成span耗时(秒)的实验结果
Dual-Span模型通过双通道跨度生成策略显著减少了计算成本,实验结果显示,与Span-ASTE相比,Dual-Span在生成跨度的时间消耗上减少了一半。

Conclusion

  • Dual-Span模型通过利用句法关系和词性特征来改进ASTE任务的性能。
  • 实验结果表明,该方法在ASTE和ATE任务上相比所有基线方法都有显著提升。
  • 论文指出,对于OTE任务,Dual-Span通常不如枚举所有可能跨度的简单跨度基方法。

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

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

相关文章

MSF融合流程

1. 添加重力约束 重力约束是在在车体系的方向是(0,0,1),添加时1)如果已知车辆在水平方向运动,添加平面约束;2)如果已知车辆静止(判断IMU加速度计和陀螺仪的n…

【基础】连续数的和 c++

描述 给出两个整数n和k,(2≤n≤70000,1≤k≤n),求出1,2,3,…,n中连续k个数的和,并计算出和为平方数的个数。 例如n10,k3。在1,2,…,10中,连续3个数的和有 1236 2349 34512 45615 56718 67821 78924 891027…

reflectasm java 高性能反射工具

reflectasm java 高性能反射工具 大佬文章 官网示例 maven 引入 <dependency><groupId>com.esotericsoftware</groupId><artifactId>reflectasm</artifactId><version>1.11.9</version> </dependency>实体类 public class U…

MySQL数据自动同步到Es

Logstash 测试数据准备 DROP DATABASE IF EXISTS es;CREATE DATABASE es DEFAULT CHARACTER SET utf8;USE es;CREATE TABLE book (id INT NOT NULL,title VARCHAR(20),author VARCHAR(20),price DECIMAL(6,2),PRIMARY KEY(id) );DROP PROCEDURE IF EXISTS batchInsertBook;DELI…

【Java基础知识总结 | 第四篇】Java基础重要知识(面试题)

文章目录 4.Java基础重要知识&#xff08;面试题&#xff09;4.1基本数据类型4.1.1 八种基本数据类型4.1.2 基本类型和包装类型的区别4.1.3包装类型的缓存机制4.1.4自动装箱和拆箱&#xff1f;原理&#xff1f;&#xff08;1&#xff09;定义&#xff08;2&#xff09;原理 4.2…

使用 BPF 监控 Kubernetes 集群(k8s BPF 工具 kubectl-trace认知

写在前面 学习中遇到&#xff0c;整理分享&#xff0c;博文内容涉及&#xff1a;kubectl-trace 安装&#xff0c;在节点&#xff0c;容器中如何使用需要注意的问题&#xff1a;job 闪完成&#xff0c;一直 Pending 状态解决理解不足小伙伴帮忙指正 不必太纠结于当下&#xff0c…

ROS使用catkin_make编译单个功能包和所有功能包

编译功能包&#xff1a; catkin_make -DCATKIN_WHITELIST_PACKAGES"需要单独编译的包名"但是如再次使用catkin_make编译所有功能包时会出现只编译上次设置的单独功能包&#xff0c;如果想要再次使用catkin_make编译所有功能包&#xff0c;需要执行&#xff1a; cat…

c++异构计算获取计算进度

异步运行任务&#xff0c;并定期检查任务是否已完成。如果没有&#xff0c;您希望打印出任务的进度。但是&#xff0c;您提供的代码存在一些问题&#xff1a; 1。“TaskRun”类未在您提供的代码段中定义。请确保其定义正确&#xff0c;并且“run”方法是“TaskRun”的成员函数…

springboot项目讲解

技术栈 vue(前端) springboot(后端主框架) mybatis&#xff08;ORM&#xff0c;用于后端和数据库的映射&#xff0c;即java对象转换成表&#xff09; mysql (关系型数据库) 顶层结构 .idea&#xff1a; idea缓存文件(不需要管) src&#xff1a;代码核心文件夹 —main&#xf…

【PINet车道线检测】代码复现过程

《Key Points Estimation and Point Instance Segmentation Approach for Lane Detection》 论文&#xff1a;https://arxiv.org/abs/2002.06604 代码&#xff1a;GitHub - koyeongmin/PINet 论文解读&#xff1a;http://t.csdnimg.cn/AOV91 这是篇关于自动驾驶中车道检测技…

代码随想录算法训练营第50天 | 123.买卖股票的最佳时机III ,188.买卖股票的最佳时机IV

动态规划章节理论基础&#xff1a; https://programmercarl.com/%E5%8A%A8%E6%80%81%E8%A7%84%E5%88%92%E7%90%86%E8%AE%BA%E5%9F%BA%E7%A1%80.html 123.买卖股票的最佳时机III 题目链接&#xff1a;https://leetcode.cn/problems/best-time-to-buy-and-sell-stock-iii/ 思…

如何本地部署1Panel面板

文章目录 前言1. Linux 安装1Panel2. 安装cpolar内网穿透3. 配置1Panel公网访问地址4. 公网远程访问1Panel管理界面5. 固定1Panel公网地址 前言 1Panel 是一个现代化、开源的 Linux 服务器运维管理面板。高效管理,通过 Web 端轻松管理 Linux 服务器&#xff0c;包括主机监控、…

PTA一笔画

作者 张志梅 单位 青岛大学 小丁最近迷恋上一个游戏&#xff0c;传说中的“一笔画”游戏。 那么什么是一笔画&#xff1f;如下图&#xff0c;顾名思义就是一笔可以完成的图。一笔画最基本的要求是在画图的过程中&#xff0c;笔不能离开纸&#xff0c;且笔所画过的线不能重复…

Springboot和Spring Cloud版本对应

Spring在不断地升级&#xff0c;各个版本存在一些不兼容的地方&#xff0c;为了避免出现问题&#xff0c;最好注意使用正确的版本。 官网的对应关系&#xff1a;https://start.spring.io/actuator/info 如下图&#xff1a; 下面附一下创建项目的工具&#xff1a; Spring官方…

【洛谷 P9242】[蓝桥杯 2023 省 B] 接龙数列 题解(线性DP+二维数组)

[蓝桥杯 2023 省 B] 接龙数列 题目描述 对于一个长度为 K K K 的整数数列&#xff1a; A 1 , A 2 , … , A K A_{1},A_{2},\ldots,A_{K} A1​,A2​,…,AK​&#xff0c;我们称之为接龙数列当且仅当 A i A_{i} Ai​ 的首位数字恰好等于 A i − 1 A_{i-1} Ai−1​ 的末位数字…

代码随想录算法训练营第53天 | 1143.最长公共子序列 ,1035.不相交的线 ,53. 最大子序和

动态规划章节理论基础&#xff1a; https://programmercarl.com/%E5%8A%A8%E6%80%81%E8%A7%84%E5%88%92%E7%90%86%E8%AE%BA%E5%9F%BA%E7%A1%80.html 1143.最长公共子序列 题目链接&#xff1a;https://leetcode.cn/problems/longest-common-subsequence/description/ 思路&…

13|连接数据库:通过链和代理查询鲜花信息

新的数据库查询范式 提出问题&#xff1a;用户用自然语言提出一个问题&#xff0c;例如“去年的总销售额是多少&#xff1f;”。LLM 理解并转译&#xff1a;LLM 首先会解析这个问题&#xff0c;理解其背后的意图和所需的信息。接着&#xff0c;模型会根据解析的内容&#xff0c…

KY61 放苹果(用Java实现)

描述 把 M 个同样的苹果放在 N 个同样的盘子里&#xff0c;允许有的盘子空着不放&#xff0c;问共有多少种不同的分法&#xff1f; 注意&#xff1a;5、1、1 和 1、5、1 是同一种分法&#xff0c;即顺序无关。 输入描述&#xff1a; 输入包含多组数据。 每组数据包含两个正整…

2024年零基础转行软件测试真的可以吗?“我“该如何做?

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 零基础的学生&…

博图西门子HMI下载报错—缺少面板映像,下载失败解决办法

一、报错展示 二、解决过程 1、第一种&#xff1a; 在安装博图(V17)时&#xff0c;需要下载各类软件&#xff0c;这时钩选全部能够选择的软件。然后进行下载。但是在这里我遇到了下载软件时&#xff0c;无法选择红框中的文件。那么就需要单独去西门子官网下载。 2、第二种&am…