【ACL 2023】 The Art of Prompting Event Detection based on Type Specific Prompts

【ACL 2023】 The Art of Prompting: Event Detection based on Type Specific Prompts

论文:https://aclanthology.org/2023.acl-short.111/

代码:https://github.com/VT-NLP/Event_APEX

Abstract

我们比较了各种形式的提示来表示事件类型,并开发了一个统一的框架,将特定于事件类型的提示用于监督、少样本和零样本触发词事件检测。实验结果表明,定义明确且全面的事件类型提示可以显著提高事件检测性能,尤其是当标注数据稀缺(少样本事件检测)或不可用(零样本事件检测)时。通过利用事件类型的语义,我们的统一框架显示出比以前的最先进基线高达22.2%的F1分数增益。

Introduction

以往的研究进一步鼓励我们向前迈进一步,思考以下三个问题:(1)当训练数据丰富或稀缺时,选择提示是否重要?(2) ED(事件检测)提示的最佳形式是什么?(3) 如何最好地利用提示来检测事件提及

为了回答上述研究问题,我们对每种事件类型的各种形式的提示进行了广泛的实验,包括(a)事件类型名称,(b)原型种子触发词,(c)定义,(d)基于事件类型名称及其预定义论元角色的事件类型结构,(e)基于自由论元的连续软提示,以及(f)更全面的事件类型描述(命名为APEX提示),其涵盖了提示(a)-(d)的所有信息。我们观察到:(1)通过考虑大多数形式的提示的事件类型的语义,特别是种子触发词和全面的事件类型描述,ED在所有设置下的性能都可以显著提高;(2) 在所有形式的事件表示中,基于全面描述的提示显示是最有效的,尤其是对于少样本和零样本ED;(3) 不同形式的事件类型表示提供了互补的改进,表明它们捕获了事件类型的不同方面和知识。

这项工作的贡献如下:

  • 我们研究了各种提示来表示有监督和弱监督ED的事件类型,并证明了定义明确和全面的事件类型提示可以显著提高ED的性能和从旧类型到新类型的可转移性。
  • 开发了一个统一的框架,以利用事件类型的语义,提示监督ED、少样本ED和零样本ED,并展示了最先进的性能,与强大的基线方法相比,F1-score提高了22.2%。

Problem Formulation

Setting of ED

supervised EE(SED):我们遵循传统的监督事件检测设置,其中训练、验证和评估数据集覆盖相同的事件类型集。目标是学习用于识别和分类目标事件类型的事件提及的模型 f f f

few-shot ED(FSED):有两个单独的训练数据集用于少样本事件检测:(1)覆盖旧事件类型(叫做base类型)的大规模数据集 D b a s e = { ( x i , y i ) } i = 1 M \mathcal{D}_{base}=\{(x_i,y_i)\}^M_{i=1} Dbase={(xi,yi)}i=1M,其中 M M M表示基本事件类型的数量;(2) 一个较小的数据集 D n o v e l = { ( x j , y j ) } j = 1 N × K \mathcal{D}_{novel}=\{(x_j,y_j)\}^{N\times K}_{j=1} Dnovel={(xj,yj)}j=1N×K,它覆盖了 N N N种新的事件类型,每个事件类型有 K K K个例子。请注意,除了Other类之外,base事件类型和novel事件类型是不相交的。模型 f f f将首先在 D b a s e \mathcal{D}_{base} Dbase上进行优化,然后在 D n o v e l \mathcal{D}_{novel} Dnovel上进行进一步微调。目标是评估模型从基本事件类型到几乎没有标注的新事件类型的可推广性和可转移性。

zero-shot ED(ZSED):训练数据集是零样本和少样本事件检测之间的唯一区别。在零样本事件检测中,对于基础事件类型,只有大规模的基础训练数据集 D b a s e = { ( x i , y i ) } i = 1 M D_{base}=\{(x_i,y_i)\}^M_{i=1} Dbase={(xi,yi)}i=1M。模型 f f f将仅在基本事件类型上进行优化,并在新类型上进行评估。

Event Type Prompts

我们比较以下五种形式的提示来表示事件类型:(a)事件类型名称是事件类名,通常由一到三个token组成。(b) 定义可以是正式描述事件类型含义的短句。(c) 原型种子触发词经常被识别为事件触发词的token或短语的列表。(d) 事件类型结构由事件关键论元角色组成,指示目标事件类型的核心参与者。(e) 提示也可以是连续软提示,即表示每个事件类型的参数的自由向量。(f) 我们进一步定义了一个更全面的描述APEX Prompt,它是手动编写的,涵盖了除软提示之外的所有以前的提示。所有事件类型提示的示例如图1所示。

A Unified Framework for ED

我们在Wang等人的基础上进行了调整,并设计了一个统一的事件检测框架(如图1所示),该框架利用特定于事件类型的提示来检测监督、少样本和零样本触发词设置下的事件。形式上,给定输入句子 W = { w 1 , w 2 , … , w n } W=\{w_1,w_2,\dots,w_n\} W={w1,w2,,wn},我们将每个事件类型提示 T t = { τ 1 t , τ 2 t , … , τ m t } T^t=\{\tau ^t_1,\tau ^t_2,\dots,\tau ^t_m\} Tt={τ1t,τ2t,,τmt}作为 M M M个token的查询,以提取事件类型 t t t的触发词。具体而言,我们首先将它们连接成序列[CLS] τ 1 t , … , τ m t \tau ^t_1,\dots,\tau ^t_m τ1t,,τmt [SEP] w 1 , … , w n w_1,\dots,w_n w1,,wn [SEP]。我们使用预训练的BERT编码器来获得输入句子 W = { w 1 , … , w n } W=\{w_1,\dots,w_n\} W={w1,,wn}以及事件类型提示 T = τ 1 t , … , τ m t T={\tau ^t_1,\dots,\tau ^t_m} T=τ1t,,τmt的上下文表示。

给定每种事件类型的提示,我们的目标是从输入句子中提取相应的事件触发词。为了实现这一目标,我们需要捕获每个输入token与事件类型的语义相关性。因此,我们学习事件类型提示的上下文表示序列上的权重分布,以获得感知事件类型 t t t的上下文表示 A i t = ∑ j = 1 ∣ T t ∣ α i j ⋅ τ j t A_i^t=\sum_{j=1}^{|T^t|} \alpha_{ij} \cdot \tau_j^t Ait=j=1Ttαijτjt ,其中 α i j = cos ⁡ ( w i , τ j t ) \alpha_{ij}=\cos (w_i,\tau_j^t) αij=cos(wi,τjt) τ j \tau_j τj是第 j j j个提示token的上下文表示。 cos ⁡ ( ⋅ ) \cos(\cdot) cos()是两个向量之间的余弦相似函数。

据此,事件类型感知上下文表示 A i t A^t_i Ait将与来自编码器的原始上下文表示 w i w_i wi连接,并被分类为二进制标签,指示它是否是事件类型 t t t的候选触发词: y ~ i t = U o ( [ w i ; A i t ; P i ] ) \tilde{y}^t_i=U_o([w_i;A^t_i;P_i]) y~itUo([wi;Ait;Pi]),其中 [ ; ] [;] [;]表示连接操作, U o U_o Uo是用于事件触发词检测的可学习参数矩阵,并且 P i P_i Pi是单词 w i w_i wi的一个独热码(POS)编码。对于基于连续软提示的事件检测,我们遵循Li和Liang,其中前缀索引 q q q被预加到输入序列 W ′ = [ q ; W ] W′=[q;W] W=[q;W]。前缀嵌入通过 q = M L P θ ( Q θ [ q ] ) q=MLP_θ(Q_θ[q]) q=MLPθ(Qθ[q])来学习,其中 Q θ ∈ R ∣ Q ∣ × k Q_θ\in \mathbf{R}^{|Q|\times k} QθRQ×k表示前缀索引词汇表的嵌入查找表。 M L P θ MLP_θ MLPθ Q θ Q_θ Qθ都是可训练的参数。

Experiments and Results

Conclusion

我们研究了各种提示来表示事件类型的语义,并使用统一的框架来进行监督、少样本和零样本事件检测。实验结果表明,对事件类型进行定义明确和全面的描述可以显著提高事件检测的性能,尤其是当标注有限(很少的事件检测)甚至不可用(零样本事件检测)时,与现有技术相比,F1-score增益高达22.2%。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

STM32CubeMX配置STM32G071UART+DMA收发数据(HAL库开发)

时钟配置HSI主频配置64M 配置好串口&#xff0c;选择异步模式 配置DMA TX,RX,选择循环模式。 NVIC中勾选使能中断 勾选生成独立的.c和h文件 配置好需要的开发环境并获取代码 串口重定向勾选Use Micro LIB main.c文件修改 增加头文件和串口重定向 #include <string.h&g…

thinkphp6报错Driver [Think] not supported.

thinkphp6报错Driver [Think] not supported. 问题解决方法测试 问题 直接使用 View::fetch();渲染模板报错 解决方法 这个报错是由于有安装视图驱动造成的 运行如下命令安装即可 composer require topthink/think-view官方文档中是这么写的 视图功能由\think\View类配合视…

Python集合(set)

目录 集合创建集合访问集合向集合中添加和删除元素集合的 交集&#xff0c;并集&#xff0c;差集运算**交集****并集****差集** 集合方法 集合 集合是无序和无索引的集合。在 Python 中&#xff0c;集合用花括号编写。 创建集合 创建集合&#xff1a; thisset {"a"…

若依在表格中如何将字典的键值转为中文

文章目录 一、需求&#xff1a;二、问题解决步骤1、给需要转换的列绑定formatter属性2、获取字典项3、编写formatter属性绑定的方法 一、需求&#xff1a; 后端有时候返回的是字典的键值&#xff0c;在前端展示时需要转成中文值 后端返回的是dictValue&#xff0c;现在要转换…

《设计模式的艺术》笔记 - 简单工厂模式

介绍 定义一个工厂类&#xff0c;它可以根据参数的不同返回不同类的实例&#xff0c;被创建的实例通常都具有相同的父类。因为在简单工厂模式中用于创建实例的方法是静态方法&#xff0c;因此简单工厂模式又被称为静态工厂方法模式&#xff0c;属于类创建型模式 实现 class Pr…

Java学习,一文掌握Java之SpringBoot框架学习文集(8)

&#x1f3c6;作者简介&#xff0c;普修罗双战士&#xff0c;一直追求不断学习和成长&#xff0c;在技术的道路上持续探索和实践。 &#x1f3c6;多年互联网行业从业经验&#xff0c;历任核心研发工程师&#xff0c;项目技术负责人。 &#x1f389;欢迎 &#x1f44d;点赞✍评论…

顺序图作业

顺序图作业 一. 简答题&#xff08;共7题&#xff0c;100分&#xff09; (简答题) 交互是什么&#xff1f;请举 2-3 个交互的实际例子。 正确答案&#xff1a; 一次交互就是指在特定语境中&#xff0c; 为了实现某一个目标&#xff0c; 而在一组对象之间进行交换的一组 消息所…

如何为数据保护加上“安全锁”?

伴随着数字经济的日趋活跃&#xff0c;数据安全和隐私保护成为了各国政府和企业都十分重视的问题&#xff0c;纷纷加强了数据安全防护。但实际上&#xff0c;近几年数据泄露问题接连不断&#xff0c;虽然没有造成严重的后果&#xff0c;但也足以证明目前数据安全防护的紧迫性。…

Virtual Box安装Kali Linux 虚拟机

一、Kali Linux —— 安装和配置 Kali Linux 是道德黑客最好的安全软件包之一&#xff0c;包含一组按类别划分的工具。它是一个开源的系统&#xff0c;其官方网页是https://www.kali.org。 一般来说&#xff0c;Kali Linux 可以作为操作系统安装在机器上。Kali Linux提供了更…

1024 科学计数法 (20)

科学计数法是科学家用来表示很大或很小的数字的一种方便的方法&#xff0c;其满足正则表达式 [-][1-9].[0-9]E[-][0-9]&#xff0c;即数字的整数部分只有 1 位&#xff0c;小数部分至少有 1 位&#xff0c;该数字及其指数部分的正负号即使对正数也必定明确给出。 现以科学计数…

FineBI报表页面大屏小屏自适应显示问题

大屏正常显示 显示正常 小屏BI自适应显示 存在遮挡字体情况 小屏浏览器缩放显示 等比缩放后显示正常

C++结合OpenCV:图像的像素处理基础

像素是图像构成的基本单位&#xff0c;像素处理是图像处理的基本操作&#xff0c;可以通过位置索引的形式对图像内的元素进行访问、处理。 二值图像: 是一种特殊的灰度图像&#xff0c;在OPENCV中&#xff0c;将黑定义为0&#xff0c;255定义为白。 在OPENCV中&#xff0c;二值…

c++例题2点和直线关系

#include<iostream> #include<string> using namespace std; //圆的类 class yuan{ public:int x2 10;int y2 10;int r 5; }; //点的类 class dian{ public :void setx(int x){x1 x;}int getx(){return x1;}void sety(int y){y1 y;}int gety(){return y1;} pr…

Sqoop性能优化:高效数据传输的技巧

当使用Apache Sqoop进行数据传输时&#xff0c;性能优化至关重要。高效的数据传输可以减少任务运行时间&#xff0c;减轻集群负载&#xff0c;提高整体工作效率。在本文中&#xff0c;将深入探讨Sqoop性能优化的关键技巧&#xff0c;并提供丰富的示例代码&#xff0c;以帮助大家…

(学习日记)2024.01.09

写在前面&#xff1a; 由于时间的不足与学习的碎片化&#xff0c;写博客变得有些奢侈。 但是对于记录学习&#xff08;忘了以后能快速复习&#xff09;的渴望一天天变得强烈。 既然如此 不如以天为单位&#xff0c;以时间为顺序&#xff0c;仅仅将博客当做一个知识学习的目录&a…

Github 2024-01-13 C#开源项目日报 Top8

根据Github Trendings的统计&#xff0c;今日(2024-01-13统计)共有8个项目上榜。根据开发语言中项目的数量&#xff0c;汇总情况如下&#xff1a; 开发语言项目数量C项目8 Redis - 内存数据库和数据结构服务器 创建周期&#xff1a;5411 天开发语言&#xff1a;C协议类型&am…

功效产品如何做好营销?媒介盒子解答

功能性产品目前的营销痛点就在于宣传夸张导致用户信任度降低&#xff0c;尤其是健康类产品&#xff0c;作为消费者&#xff0c;对此类产品大多持观望态度&#xff0c;但媒介盒子作为提供品牌宣传服务的团队&#xff0c;想和大家聊聊&#xff1a;功能性产品除了在功能上进行宣传…

Vue+ElementUI+Axios实现携带参数的文件上传(数据校验+进度条)

VueElementUIAxios实现携带参数的文件上传&#xff08;数据校验进度条&#xff09; 可以实现对上传文件的类型&#xff0c;大小进行数据校验&#xff0c;以及对上传文件所要携带的数据也进行的校验&#xff0c;也有文件上传进度的进度条。 一、Vue 结构部分 弹窗显示&#xff0…

Linux集锦大全【持续更新】

文章目录 Linux集锦大全【持续更新】Linux最常用的几个归档和压缩命令解压方法之一 tar语法压缩文件查看压缩文件的内容解压文件 解压方法之一 zip语法参数参考实例仅保存文件名 解压命令之一 unzip基本命令指定目录解压不解压某些文件 解压命令之一 gzip Linux最危险的几个命令…

crackmapexec工具详解

下载地址&#xff1a;https://github.com/Porchetta-Industries/CrackMapExec wiki&#xff1a;https://www.crackmapexec.wiki/ 1.安装&#xff08;MAC&#xff09; 1.1.python3.9 pipx 安装&#xff08;运行软件有警告&#xff0c;推荐 python3.11 pipx 安装&#xff09; …