【论文速递】ACL 2021-CLEVE: 事件抽取的对比预训练
【论文速递】ACL 2021-CLEVE: 事件抽取的对比预训练
【论文原文】:CLEVE: Contrastive Pre-training for Event Extraction
【作者信息】:Wang, Ziqi and Wang, Xiaozhi and Han, Xu and Lin, Yankai and Hou, Lei and Liu, Zhiyuan and Li, Peng and Li, Juanzi and Zhou, Jie
论文:https://arxiv.org/pdf/2105.14485.pdf
代码:https://github.com/THU-KEG/CLEVE
博主关键词:AMR,自监督学习,预训练,图神经网络
推荐论文:AMR-IE:http://t.csdn.cn/Vk6VP、TSAR:http://t.csdn.cn/wXEAc
摘要
事件抽取(EE)通过微调从预训练的语言模型(PLMs)中受益匪浅。然而,现有的预训练方法没有涉及事件特征的建模,导致所开发的EE模型不能充分利用大规模无监督数据。为此,我们提出了CLEVE,一个用于EE的对比预训练框架,以更好地从自动解析器(例如AMR)去获得的大型无监督数据及其语义结构中学习事件知识。CLEVE分别包含一个学习事件语义的文本编码器和一个学习事件结构的图编码器。具体来说,文本编码器通过自监督对比学习来学习事件语义表示,使同一事件中的单词比不相关的单词表示得更近;图编码器通过对已解析的事件相关语义结构进行图对比预训练来学习事件结构表示。然后,这两种互补的表示形式一起工作以改进传统的监督EE和无监督的“自由(liberal)”EE,后者需要在没有任何标注数据的情况下联合抽取事件和发现事件模式。在ACE 2005和MAVEN数据集上的实验表明,CLEVE取得了显著的改进,特别是在具有挑战性的无监督环境中。
1、简介
事件抽取(Event extraction, EE)是一项长期存在的重要信息抽取任务,旨在从非结构化文本中抽取事件结构。如图1所示,它包含事件检测任务,用于识别事件触发词(单词“攻击(attack)”)和分类事件类型(攻击(Attack)),以及事件论元抽取任务,以识别作为事件论元的实体(“今天(today)”和“内坦亚(Netanya)”),并对其论元角色(时间-内部(Time-within)和地点(Place))进行分类(Ahn, 2006)。通过明确地捕获文本中的事件结构,EE可以受益于各种下游任务,如信息检索(Glavas和Snajder, 2014)和知识库人口(Ji和Grishman, 2011)。

现有的EE方法主要遵循监督学习范式来训练高级神经网络(Chen et al, 2015;Nguyen等人,2016;Nguyen和Grishman, 2018),使用人工标注数据集和预定义的事件模式。这些方法在许多公共基准测试中工作良好,如ACE 2005 (Walker et al, 2006)和TAC KBP (Ellis et al, 2016),但它们仍然受到数据稀缺和有限的泛化性的影响。由于标注事件数据和定义事件模式特别昂贵且耗费大量人力,因此现有的EE数据集通常只包含数千个实例,覆盖有限的事件类型。因此,它们不足以训练大型神经模型(Wang et al, 2020)和开发可以推广到不断出现的新事件类型的方法(Huang和Ji, 2020)。
受到最近用于NLP任务的预训练语言模型(PLMs)成功的启发,一些开创性工作(Wang et al, 2019a;Wadden等人,2019)试图对EE的一般PLMs(例如BERT (Devlin等人,2019))进行微调。得益于从大规模无监督数据中学习到的强大的通用语言理解能力,这些基于PLM的方法在各种公共基准测试中取得了最先进的表现。
虽然利用无监督数据进行预训练已逐渐成为EE和NLP界的共识,但仍缺乏面向事件建模的预训练方法,以充分利用大规模无监督数据中丰富的事件知识。这里的关键挑战是找到合理的自我监督信号(Chen等人,2017;Wang等人,2019a)为事件的不同语义和复杂结构。幸运的是,之前的工作(Aguilar et al, 2014;Huang等人,2016)提出句子语义结构,如抽象语义表示(AMR) (Banarescu等人,2013),包含广泛和多样的语义和结构信息与事件有关。如图1所示,解析的AMR结构不仅包括带标注的事件(攻击(Attack)),还包括ACE 2005模式中未定义的事件(报告(Report))。
考虑到大规模无监督数据的AMR结构可以很容易地通过自动解析器获得(Wang et al, 2015),我们提出了CLEVE,一种面向事件的对比预训练框架,利用AMR结构构建自我监督信号。CLEVE由两个组件组成,包括学习事件语义的文本编码器和学习事件结构信息的图形编码器。具体而言,为了学习有效的事件语义表示,我们使用PLM作为文本编码器,并鼓励在AMR结构中由ARG、时间、位置边连接的词对的表示在语义空间中比其他不相关的词更接近,因为这些词对通常指的是相同事件的触发词论元对(如图1所示)(Huang et al, 2016)。这是通过对比学习来完成的,将连接的单词对作为积极样本,不相关的单词作为消极样本。此外,考虑到事件结构也有助于抽取事件(Lai et al, 2020)和推广到新的事件模式(Huang et al, 2018),我们需要学习可转移的事件结构表示。因此,我们进一步引入图神经网络(GNN)作为图编码器,将AMR结构编码为结构表示。以AMR子图识别为目标,在大型无监督语料库的AMR结构上对图编码器进行对比预训练。
通过对下游EE数据集上的两个预训练模型进行微调,并联合使用这两种表示,CLEVE相对于传统的监督EE受益于数据稀缺。同时,预训练的表示也可以直接帮助抽取事件并发现新的事件模式,无需任何已知的事件模式或标注实例,从而具有更好的泛化性。这是一个具有挑战性的无监督设置,名为“自由事件抽取”(Huang et al, 2016)。在广泛使用的ACE 2005和大型MAVEN数据集上的实验表明,CLEVE在这两种设置下都可以实现显著的改进。
2、方法
整个CLEVE框架如图2所示。如图2所示,我们的对比预训练框架CLEVE由两个部分组成:事件语义预训练和事件结构预训练,分别在章节3.2和章节3.3中介绍。在本节开始时,我们首先介绍3.1节中所需的预处理,包括AMR解析以及如何修改已解析的AMR结构以进行预训练。

3、实验结果


评估结果:评价结果如表1和表2所示。我们可以观察到:(1)在ACE 2005和MAVEN上,CLEVE对其基本模型RoBERTa都有了显著的改进。ED on ACE 2005、EAE on ACE 2005和ED on MAVEN的t检验p值分别为4×10−8、2×10−8和6 ×10−4。它也优于或达到与其他baseline的水平,包括那些使用依赖解析信息(dbRNN, GatedGCN, SemSynGTN和MOGANED)。这证明了我们提出的对比预训练方法和AMR语义结构的有效性。值得注意的是,RCEE ER在EAE中优于我们的方法,因为它的特殊优势是将EE重新定义为MRC任务,以利用复杂的MRC方法和大量标注的外部MRC数据。考虑到我们的方法本质上是一种学习更好的面向事件表示的预训练方法,CLEVE和RCEE ER自然可以一起工作来进一步提高EE。(2)消融研究(比较CLEVE及其w/o语义或结构表示变体)表明,事件语义预训练和事件结构预训练对我们的方法都是必不可少的。(3)对比CLEVE及其在ACE (golden)和ACE (AMR)上的变体,可以看出AMR解析与正确标注相比不可避免地会带来数据噪声,从而导致性能下降。然而,这种差距可以很容易地通过引入大量无监督数据和预训练来弥补。
全文阅读
【论文速递 | 精选】
相关文章:
【论文速递】ACL 2021-CLEVE: 事件抽取的对比预训练
【论文速递】ACL 2021-CLEVE: 事件抽取的对比预训练 【论文原文】:CLEVE: Contrastive Pre-training for Event Extraction 【作者信息】:Wang, Ziqi and Wang, Xiaozhi and Han, Xu and Lin, Yankai and Hou, Lei and Liu, Zhiyuan and Li, Peng and …...
《自动驾驶规划入门》专栏结语
一、 源起 2021年10月12日,化学工业出版社的金编辑根据博客中留下的微信号联系上我,问我有没有出书的想法。从小到大,书与文字在我心里是有着神圣地位的。我在“想试试”与“害怕做不好”这两种矛盾的心情中,还是先应了下来。签了…...
【数据结构与算法】2.八大经典排序
文章目录简介1.分析排序算法2.插入排序2.1.直接插入排序2.2.希尔排序3.选择排序3.1.直接选择排序3.2.堆排序3.2.1.堆的数据结构3.2.2.算法实现4.交换排序4.1.冒泡排序4.2.快速排序5.归并排序6.基数排序7.八大排序算法总结简介 排序对于任何一个程序员来说,可能都不会…...
Windows 免安装版mysql,快速配置教程
简单步骤 下载并解压mysql压缩包,把 “<mysql根目录>/bin” 路径添加到系统环境变量path中命令行执行 mysqld --initialize --console,初始化data目录(数据库表文件默认存放在" <mysql安装根目录>/data "目录下&#…...
空间误差分析:统一的应用导向处理(Matlab代码实现)
👨🎓个人主页:研学社的博客💥💥💞💞欢迎来到本博客❤️❤️💥💥🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密…...
【C++】引用、内联函数、auto关键字、范围for、nullptr
引用什么叫引用引用的特性常引用使用场景传值、传引用效率比较引用和指针的区别内联函数auto关键字(C11)基于范围的for循环(C11)指针空值nullptr(C11)引用 什么叫引用 引用不是新定义一个变量,而是给已存在变量取了一个别名,编译器不会为引用变量开辟内…...
pytest数据驱动
文章目录一、数据驱动概念二、数据驱动yaml1、yaml的基本语法:2、yaml支持的数据格式:3、安装4、使用5、读取方法a、目录结构b、yaml文件c、测试方法d、测试用例e、测试结果三、数据驱动excel1、安装导入2、操作3、读取方法a、目录结构b、excel文件c、测…...
OSI七层网络模型
应用层 定义了各种应用协议规范数据格式:HTTP协议、HTTPS协议、FTP协议、DNS协议、TFTP、SMTP等等。 表示层 翻译工作。提供一种公共语言、通信。 会话层 1、可以从校验点继续恢复数据进行重传。——大文件 2、自动收发,自动寻址的功能。 传输层 1、…...
易基因|MeRIP-seq揭示m6A RNA甲基化通过调控组蛋白泛素化来促进癌症生长和进展:Cancer Res
大家好,这里是专注表观组学十余年,领跑多组学科研服务的易基因。2022年05月16日,《Cancer Res》杂志发表了题为“M6A RNA Methylation Regulates Histone Ubiquitination to Support Cancer Growth and Progression”的研究论文,该…...
Java 日期处理踩过的坑
前言 整理Java日期处理遇到过的问题,希望对大家有帮助 制作不易,一键三连,谢谢大家。 1.用 Calendar 设置时间的坑 反例: //提供者模式获取实例Calendar calendar Calendar.getInstance();//获取当前时间Date currentDate c…...
一文吃透 Spring 中的IOC和DI(二)
✅作者简介:2022年博客新星 第八。热爱国学的Java后端开发者,修心和技术同步精进。 🍎个人主页:Java Fans的博客 🍊个人信条:不迁怒,不贰过。小知识,大智慧。 💞当前专栏…...
【期末指北】嵌入式系统——选择题(feat. ChatGPT)
作者|Rickyの水果摊 时间|2023年2月20日 基本信息 ☘️ 本博客摘录了一些 嵌入式系统 的 常见选择题,供有需求的同学们学习使用。 部分答案解析由 ChatGPT 生成,博主进行审核。 使用教材信息:《嵌入式系统设计与应…...
MyBatis-Plus——代码生成器(3.5.1+版本)
文章目录配置数据源配置(DataSource)全局配置(GlobalConfig)包配置(PackageConfig)策略配置(StrategyConfig)模板引擎配置(TemplateEngine)代码生成器测试样例…...
宁盾上榜第五版《CCSIP 2022 中国网络安全行业全景册》
2月1日,国内网络安全行业媒体Freebuf咨询正式发布《CCSIP(China Cyber Security Panorama)2022 中国网络安全行业全景册》第五版。宁盾作为国产身份安全厂商入驻身份识别和访问管理(SSO、OTP、IDaaS)及边界访问控制&am…...
【Linux系统】第七篇:Linux调试器gdb的使用
文章目录一、gdb简介二、gdb的安装三、gdb使用3.1、release和debug版本3.2、gdb基本使用命令1、启动gdb2、调试命令3、显示代码(list)4、断点命令(breakpoint)5 、变量命令(variable)6、特殊调试命令7、调用…...
Shell 特殊变量及其含义
shell是我们在linux下编写自动执行程序的常见脚本工具,通常会涉及到以下几个特殊变量,它们分别是:$#、$*、$、$?、$$。 变量含义$0当前脚本的文件名。$n(n≥1)传递给脚本或函数的参数。n 是一个数字,表示…...
LeetCode 2396. 严格回文的数字
如果一个整数 n 在 b 进制下(b 为 2 到 n - 2 之间的所有整数)对应的字符串 全部 都是 回文的 ,那么我们称这个数 n 是 严格回文 的。 给你一个整数 n ,如果 n 是 严格回文 的,请返回 true ,否则返回 fals…...
【RocketMQ】源码详解:Broker启动流程
Broker启动 入口: org.apache.rocketmq.broker.BrokerStartup#main broker的启动主要分为两部分:1.创建brokerController 2.启动brokerController。与平时进行业务开发时不同的是,这里的BrokerController相当于Broker的一个中央控制器类&…...
vue事件
1. 事件传参 <button click"clickEvt($event, 22)">点我</button>2. 事件修饰符 prevent:阻止默认事件stop:阻止事件冒泡(加到子元素)once:事件只触发一次capture:使用事件的捕获模…...
研报精选230220
目录 【行业230220国信证券】银行业行业专题:经济复苏中的优质中小银行【行业230220国信证券】汽车行业周报(2023年第7周):吉利将发布新品牌“银河” ,2022年宇通纯电动客车获欧洲销量冠军【行业230220开源证券】商贸零…...
网络六边形受到攻击
大家读完觉得有帮助记得关注和点赞!!! 抽象 现代智能交通系统 (ITS) 的一个关键要求是能够以安全、可靠和匿名的方式从互联车辆和移动设备收集地理参考数据。Nexagon 协议建立在 IETF 定位器/ID 分离协议 (…...
国防科技大学计算机基础课程笔记02信息编码
1.机内码和国标码 国标码就是我们非常熟悉的这个GB2312,但是因为都是16进制,因此这个了16进制的数据既可以翻译成为这个机器码,也可以翻译成为这个国标码,所以这个时候很容易会出现这个歧义的情况; 因此,我们的这个国…...
生成xcframework
打包 XCFramework 的方法 XCFramework 是苹果推出的一种多平台二进制分发格式,可以包含多个架构和平台的代码。打包 XCFramework 通常用于分发库或框架。 使用 Xcode 命令行工具打包 通过 xcodebuild 命令可以打包 XCFramework。确保项目已经配置好需要支持的平台…...
【kafka】Golang实现分布式Masscan任务调度系统
要求: 输出两个程序,一个命令行程序(命令行参数用flag)和一个服务端程序。 命令行程序支持通过命令行参数配置下发IP或IP段、端口、扫描带宽,然后将消息推送到kafka里面。 服务端程序: 从kafka消费者接收…...
【Java_EE】Spring MVC
目录 Spring Web MVC 编辑注解 RestController RequestMapping RequestParam RequestParam RequestBody PathVariable RequestPart 参数传递 注意事项 编辑参数重命名 RequestParam 编辑编辑传递集合 RequestParam 传递JSON数据 编辑RequestBody …...
Reasoning over Uncertain Text by Generative Large Language Models
https://ojs.aaai.org/index.php/AAAI/article/view/34674/36829https://ojs.aaai.org/index.php/AAAI/article/view/34674/36829 1. 概述 文本中的不确定性在许多语境中传达,从日常对话到特定领域的文档(例如医学文档)(Heritage 2013;Landmark、Gulbrandsen 和 Svenevei…...
接口自动化测试:HttpRunner基础
相关文档 HttpRunner V3.x中文文档 HttpRunner 用户指南 使用HttpRunner 3.x实现接口自动化测试 HttpRunner介绍 HttpRunner 是一个开源的 API 测试工具,支持 HTTP(S)/HTTP2/WebSocket/RPC 等网络协议,涵盖接口测试、性能测试、数字体验监测等测试类型…...
深度解析:etcd 在 Milvus 向量数据库中的关键作用
目录 🚀 深度解析:etcd 在 Milvus 向量数据库中的关键作用 💡 什么是 etcd? 🧠 Milvus 架构简介 📦 etcd 在 Milvus 中的核心作用 🔧 实际工作流程示意 ⚠️ 如果 etcd 出现问题会怎样&am…...
2025-05-08-deepseek本地化部署
title: 2025-05-08-deepseek 本地化部署 tags: 深度学习 程序开发 2025-05-08-deepseek 本地化部署 参考博客 本地部署 DeepSeek:小白也能轻松搞定! 如何给本地部署的 DeepSeek 投喂数据,让他更懂你 [实验目的]:理解系统架构与原…...
js 设置3秒后执行
如何在JavaScript中延迟3秒执行操作 在JavaScript中,要设置一个操作在指定延迟后(例如3秒)执行,可以使用 setTimeout 函数。setTimeout 是JavaScript的核心计时器方法,它接受两个参数: 要执行的函数&…...
