【论文速递】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开源证券】商贸零…...
C++实现分布式网络通信框架RPC(3)--rpc调用端
目录 一、前言 二、UserServiceRpc_Stub 三、 CallMethod方法的重写 头文件 实现 四、rpc调用端的调用 实现 五、 google::protobuf::RpcController *controller 头文件 实现 六、总结 一、前言 在前边的文章中,我们已经大致实现了rpc服务端的各项功能代…...
Golang 面试经典题:map 的 key 可以是什么类型?哪些不可以?
Golang 面试经典题:map 的 key 可以是什么类型?哪些不可以? 在 Golang 的面试中,map 类型的使用是一个常见的考点,其中对 key 类型的合法性 是一道常被提及的基础却很容易被忽视的问题。本文将带你深入理解 Golang 中…...
渗透实战PortSwigger靶场-XSS Lab 14:大多数标签和属性被阻止
<script>标签被拦截 我们需要把全部可用的 tag 和 event 进行暴力破解 XSS cheat sheet: https://portswigger.net/web-security/cross-site-scripting/cheat-sheet 通过爆破发现body可以用 再把全部 events 放进去爆破 这些 event 全部可用 <body onres…...
UDP(Echoserver)
网络命令 Ping 命令 检测网络是否连通 使用方法: ping -c 次数 网址ping -c 3 www.baidu.comnetstat 命令 netstat 是一个用来查看网络状态的重要工具. 语法:netstat [选项] 功能:查看网络状态 常用选项: n 拒绝显示别名&#…...
系统设计 --- MongoDB亿级数据查询优化策略
系统设计 --- MongoDB亿级数据查询分表策略 背景Solution --- 分表 背景 使用audit log实现Audi Trail功能 Audit Trail范围: 六个月数据量: 每秒5-7条audi log,共计7千万 – 1亿条数据需要实现全文检索按照时间倒序因为license问题,不能使用ELK只能使用…...
Java 加密常用的各种算法及其选择
在数字化时代,数据安全至关重要,Java 作为广泛应用的编程语言,提供了丰富的加密算法来保障数据的保密性、完整性和真实性。了解这些常用加密算法及其适用场景,有助于开发者在不同的业务需求中做出正确的选择。 一、对称加密算法…...
Ascend NPU上适配Step-Audio模型
1 概述 1.1 简述 Step-Audio 是业界首个集语音理解与生成控制一体化的产品级开源实时语音对话系统,支持多语言对话(如 中文,英文,日语),语音情感(如 开心,悲伤)&#x…...
MySQL用户和授权
开放MySQL白名单 可以通过iptables-save命令确认对应客户端ip是否可以访问MySQL服务: test: # iptables-save | grep 3306 -A mp_srv_whitelist -s 172.16.14.102/32 -p tcp -m tcp --dport 3306 -j ACCEPT -A mp_srv_whitelist -s 172.16.4.16/32 -p tcp -m tcp -…...
Device Mapper 机制
Device Mapper 机制详解 Device Mapper(简称 DM)是 Linux 内核中的一套通用块设备映射框架,为 LVM、加密磁盘、RAID 等提供底层支持。本文将详细介绍 Device Mapper 的原理、实现、内核配置、常用工具、操作测试流程,并配以详细的…...
【Java学习笔记】BigInteger 和 BigDecimal 类
BigInteger 和 BigDecimal 类 二者共有的常见方法 方法功能add加subtract减multiply乘divide除 注意点:传参类型必须是类对象 一、BigInteger 1. 作用:适合保存比较大的整型数 2. 使用说明 创建BigInteger对象 传入字符串 3. 代码示例 import j…...
