摘要

由于事件内容的复杂结构和文本和事件之间的语义差距,事件提取任务面临巨大挑战。传统方法通常通过将复杂结构预测任务分解为多个子任务来提取事件。在本文中,我们提出了TEXT2EVENT,一个sequence-to-structure的生成框架,可以以端到端的方式直接从文本中提取事件。具体地,我们设计了一个用于统一事件提取的sequence-to-structure网络,并在推理期间使用了事件知识注射的约束解码算法,以及用于高效模型学习的课程学习算法。实验结果表明,通过在单模型上平均建模所有任务,并统一预测不同的标签,我们的方法可以在有监督学习和迁移学习配置下仅使用record-level标注数据来达到很好的性能。(https://github.com/luyaojie/text2event)

1.介绍


  事件提取是自然语言理解的重要任务,旨在将文本转换为事件记录。例如,在图1中,可以将“The man returned to Los Angeles from Mexico following his capture Tuesday by bounty hunters.” 映射为两个事件记录:{Type: Transport, Trigger: returned, Arg1 Role: Artifact, Arg1: The man, Arg2 Role: Destination, Arg2: Los Angeles, …}和 {Type: Arrest-Jail, Trigger: capture, Arg1 Role: Person, Arg1: The man, Arg2 Role: Agent, Arg2: bounty hunters, … }。
  由于事件内容的复杂结构和文本和事件之间的语义差距,事件提取任务面临巨大挑战。首先,事件记录包含事件类型,trigger和arguments,其构成了类似表的结构。并且不同的事件类型具有不同的结构。例如,在图1中,Transport和Arrest-Jail具有完全不同的结构。其次,可以使用不同的语句来表达同一事件,例如多样化的触发词和异质句法结构。例如,“the dismission of the man”和“the man departed his job”表达了相同的事件记录{Type: End-Position, Arg1 Role: PERSON, Arg1: the man}。
  目前,大多数事件提取方法采用了分解策略,即将复杂事件结构的预测分解为多个分离的子任务(主要包括实体识别,触发检测,参数分类),然后编写不同子任务的组件以预测整个事件结构(例如,管道建模,联合建模或联合推断)。这些基于分解的方法的主要缺点是:(1)它们需要针对不同的子任务标注大量细粒度的数据,这通常会导致数据利用效率低下的问题。例如,对于Transport触发器检测和Person实体识别,都需要进行不同的细粒度表述。(2)手动设计不同子任务的最优组合架构是非常具有挑战性的。例如,管道建模通常会导致误差累积。并且联合建模需要预先定义触发器检测,参数分类和实体识别之间的信息共享和决策依赖性,这通常导致次优和不灵活的架构。
  在本文中,我们提出了一种用于事件提取的sequence-to-structure生成框架TEXT2EVENT,其可以以端到端的方式直接从文本中提取事件。具体地,与将事件结构预测分解成不同的子任务和预测标签不同,我们使用基于神经网络的sequence-to-structure的架构统一建模整个事件提取过程,并且所有的触发器,参数和他们的标签都被统一作为为自然语言单词生成。例如,我们为触发提取生成一个子序列“Attack fire”,其中“Attack”和“fire”被视为自然语言单词。与以前的方法相比,我们的方法更能充分利用数据:它可以仅使用粗粒度的平行文本数据来学习,即, < s e n t e n c e , e v e n t r e c o r d s > <sentence, event~records> <sentence,event records>数据对,而不是细粒度的字符级标注数据。此外,统一架构使其易于建模,学习和利用不同潜在预测之间的交互,并且知识可以在不同的组件之间无缝共享和传输。
  此外,我们为进行高效的sequence-to-structure事件提取设计了两个算法。首先,我们提出了一个约束解码算法,该算法可以使用事件模式指导生成过程。以这种方式,可以在推理期间注入和利用事件知识。其次,我们设计了一个课程学习算法,它从预训练语言模型(PLMS)出发,然后在简单的事件子结构生成任务上训练它(例如,触发器生成和独立参数生成),最后再在完整的事件结构生成任务上训练模型。
  我们在ACE和ERE数据集上进行了实验,实验结果验证了文本方法在监督学习和迁移学习环境中的有效性。总之,本文贡献如下:

  1. 我们提出了一种用于事件提取的新框架 - sequence-to-structure生成,可以以端到端的方式直接从文本中提取事件。通过在单个模型中统一建模所有任务,并预测不同的标签,我们的方法是高效且易于实现的。
  2. 我们设计了一种高效的sequence-to-structure架构,其使用课程学习算法来进行模型训练,并在推理期间使用约束解码算法。
  3. 许多信息提取任务可以形式化为结构预测任务。我们的sequence-to-structure方法可以启发其他信息提取模型的学习。

2.TEXT2EVENT: End-to-end Event Extraction as Controllable Generation

给定输入文本的字符序列 x = x 1 , . . . , x ∣ x ∣ x=x_1,...,x_{|x|} x=x1​,...,x∣x∣​,通过Encoder-Decoder架构,TEXT2EVENT直接生成结构化事件 E = e 1 , . . . , e ∣ E ∣ E=e_1,...,e_{|E|} E=e1​,...,e∣E∣​。 例如,在图1中,TEXT2EVENT将原始文本作为输入,并输出两个事件记录:{Type: Transport, Trigger: returned, Arg1 Role: Artifact, Arg1: The man, Arg2 Role: Destination, Arg2: Los Angeles, …}和 {Type: Arrest-Jail, Trigger: capture, Arg1 Role: Person, Arg1: The man, Arg2 Role: Agent, Arg2: bounty hunters, … }。
  对于端到端事件提取,TEXT2EVENT首先编码输入文本,然后使用约束解码算法生成线性化结构。在下文中,我们首先介绍如何将事件提取形式化为结构生成任务,然后再描述sequence-to-structure模型和约束解码算法。

2.1 Event Extraction as Structure Generation


  本节介绍如何线性化事件结构,以便可以以端到端的方式生成事件。具体而言,线性化事件表示应该满足:(1)能够将文本中的多个事件记录表式为一个表达式;(2)能够以确定性的方式简单可逆地转换为事件记录;(3)使用类似于常规文本生成任务的字符序列,以便可以轻松地利用和迁移文本生成模型。
  具体地,从事件记录格式转换为线性化格式的过程如图2所示。
  我们首先将事件记录(图2a)转换为标签树(图2b),主要方式为:1)首先用事件类型作为标签树的根结点(Root-Transport, Root-Arrest-Jai);2)然后将多个事件参数角色类型连接到事件类型(Transport - Artifact, Transport - Origin, etc);3)最终将原始文本中的跨度对应到参数角色类型节点,并作为该结点的叶子结点(Transport - returned, Transport - Origin - Mexico, Transport- Artifact - The man, etc.)。
  给定转换后的事件树,我们通过深度优先遍历将其线性化为字符序列(图2c),其中“(”和“)”是用于表示线性表达式中语义结构的结构指示器。对于包含多个事件记录的句子,每个事件直接链接到了根节点。对于不表达任何事件的句子,其树格式将被列为空。

2.2 Sequence-to-Structure Network

基于上述线性化策略,TEXT2EVENT通过基于transformer的编码器 - 解码器架构来生成结构化事件。给定字符序列 x = x 1 , . . . , x ∣ x ∣ x=x_1,...,x_{|x|} x=x1​,...,x∣x∣​作为输入,TEXT2EVENT输出线性化事件表示 y = y 1 , . . . , y ∣ y ∣ y=y_1,...,y_{|y|} y=y1​,...,y∣y∣​。为此,TEXT2EVENT首先通过多层transformer编码器的输入来计算隐藏的矢量表示 H = h 1 , . . . , h ∣ x ∣ \textbf H=\textbf h_1,...,\textbf h_{|x|} H=h1​,...,h∣x∣​:
H = E n c o d e r ( x 1 , . . . , x ∣ x ∣ ) (1) \textbf H=Encoder(x_1,...,x_{|x|})\tag{1} H=Encoder(x1​,...,x∣x∣​)(1)
其中Encoder(·)中的每一层是具有多头注意力机制的transformer block。
  在编码输入字符序列之后,解码器通过输入字符序列的隐藏向量来逐字预测输出结构。在生成的步骤 i i i中,自注意力解码器以线性化形式预测第 i i i个字符 y i y_i yi​以及解码状态 h i d \textbf h^d_i hid​,如下所示:
y i , h i d = D e c o d e r ( [ H ; h 1 d , . . . , h i − 1 d ] , y i − 1 ) (2) y_i,\textbf h^d_i=Decoder([\textbf H;\textbf h^d_1,...,\textbf h^d_{i-1}],y_{i-1})\tag{2} yi​,hid​=Decoder([H;h1d​,...,hi−1d​],yi−1​)(2)
其中Decoder(·)每层是一个transformer block,它包含具有解码器状态 h i d \textbf h^d_i hid​的自注意力,以及具有编码器状态 H \textbf H H的交叉注意力。
  生成的输出结构序列从起始字符“<bos>”开始,并以终止字符“<eos>”结尾。整个输出序列 p ( y ∣ x ) p(y|x) p(y∣x)的条件概率通过每个步骤 p ( y i ∣ y < i , x ) p(y_i|y_{<i},x) p(yi​∣y<i​,x)的概率逐渐组合:
其中 y < i = y 1 . . . y i − 1 y_{<i}=y_1...y_{i-1} y<i​=y1​...yi−1​和 p ( y i ∣ y < i , x ) p(y_i|y_{<i},x) p(yi​∣y<i​,x)是由softmax(·)归一化后的目标词表 V \mathcal V V上的概率。
  因为线性化事件表示中的所有字符也是自然语言单词,我们采用预训练的语言模型T5作为我们的transformer编码器 - 解码器架构。通过这种方式,可以直接重复使用通用文本生成知识。

2.3 Constrained Decoding


  给定隐藏的序列状态 H \textbf H H,sequence-to-structure网络需要逐字生成线性化事件表示。一个直接的解决方案是使用贪心解码算法,该算法在每个解码步骤 i i i处选择具有最高预测概率 p ( y i ∣ y < i , x ) p(y_i|y_{<i},x) p(yi​∣y<i​,x)的字符。不幸的是,这种贪心解码算法无法保证生成有效的结构化事件。换句话说,它最终可能生成无效的事件类型(该类型与argument-type不匹配)和不完整的结构。此外,贪心解码算法忽略了有效的事件结构知识,这可用于有效地引导解码。例如,我们可以将模型限制为仅在指定的类型位置上生成事件类型字符。
  为了利用事件结构知识,我们提出使用基于trie的约束解码算法进行事件生成。在约束解码期间,将事件结构知识作为提示注入解码器并确保生成有效的事件结构。
  具体地,与在每个步骤中从整个目标词表 V \mathcal V V中选择概率最大字符的贪心解码算法不同,我们的基于trie的约束解码方法基于当前的生成状态动态地选择和修剪候选词表 V ′ \mathcal V' V′。可以通过执行trie树搜索来表示完整的线性化解码过程,如图3a所示。具体而言,TEXT2EVENT在每个生成步骤有三种候选词表 V ′ \mathcal V' V′:

  • Event schema:包含事件类型 T \mathcal T T和Argument角色 R \mathcal R R的标签名称;
  • Mention strings:包含事件触发词和Argument提示 S \mathcal S S,这是从原始输入中获取的文本跨度;
  • Structure indicator:包含“(”和“)”,用于组合事件结构以及提示字符串。

解码从根结点“<bos>”开始,并在终结结点“<eos>”处结束。在生成步骤 i i i时,候选词表 V ′ \mathcal V' V′是最后一个生成节点的子节点。例如,在使用已经生成的字符串“<bos> (”生成下一步骤时,候选词表 V ′ \mathcal V' V′是图3a中的 { “ ( ” , “ ) ” } \{“(”,“)”\} {“(”,“)”}。在生成事件类型名称 T \mathcal T T,参数角色名称 R \mathcal R R和文本跨度 S \mathcal S S时,解码过程可以被认为是在trie树的子树上执行搜索。例如,在图3b中, " ( T r a n s e r " "(~Transer" "( Transer"的候选词表 V ′ \mathcal V' V′是 { “ O w n e r s h i p ” , “ M o n e y ” } \{“Ownership”, “Money”\} {“Ownership”,“Money”}。
  最后,解码器的输出将被转换为事件记录并作为最终的提取结果。

3.Learning

本节介绍如何以端到端的方式学习TEXT2EVENT神经网络。我们的方法可以仅使用粗粒度的平行文本数据,即,<sentence, event records>对,而无需传统方法中使用的细粒度字符级注释。给定训练数据集 D = { ( x 1 , y 1 ) , . . . ( x ∣ D ∣ , y ∣ D ∣ ) } \mathcal D=\{(x_1,y_1),...(x_{|\mathcal D|},y _{|\mathcal D|})\} D={(x1​,y1​),...(x∣D∣​,y∣D∣​)},其中每个样本是一个<sentence, event records>对,学习目标是负对数似然函数:
L = − ∑ ( x , y ) ∈ D l o g p ( y ∣ x , θ ) (4) \mathcal L=-\sum_{(x,y)\in \mathcal D}log~p(y|x,\theta)\tag{4} L=−(x,y)∈D∑​log p(y∣x,θ)(4)
其中, θ \theta θ是模型参数。
  不幸的是,与一般文本到文本生成模型不同,序列到结构生成模型的学习更具挑战性:1)事件生成模型与文本到文本生成模型之间存在输出语义差距。与自然单词序列相比,线性化事件结构包含许多非语义标识,例如 “ ( ” “(” “(”和 “ ) ” “)” “)”,它们不遵循自然语言句子的语法约束。2)非语义标识 “ ( ” “(” “(”和 “ ) ” “)” “)”出现非常频繁,但包含很少的语义信息,这将误导学习过程。
  为了解决上述挑战,我们采用了课程学习策略。具体而言,我们首先使用简单的事件子结构生成任务训练PLMs,以便它们不会过度使用非语义标识;然后我们在完整的事件结构生成任务上再次训练模型。

TEXT2EVENT: Controllable Sequence-to-Structure Generation for End-to-end Event Extraction翻译相关推荐

  1. UIE:Unified Structure Generation for Universal Information Extraction

    论文:https://arxiv.org/pdf/2203.12277.pdf 作者采用生成式text to structure结构统一了信息抽取的四个任务,并且在13个数据集上采用有监督.低资源和少 ...

  2. Conditional Structure Generation throughGraph Variational Generative Adversarial Nets 论文阅读

    目标 基于语义条件生成图 (1)基于条件生成尽可能相似的图. (2)有条件的生成新的图. 解决的问题 (1)基于语义有条件的生成图 (2)如何处理图在生成过程中的顺序的问题 解决问题的方法 (1)提出 ...

  3. 论元笔记 ACL 2017|Automatically Labeled Data Generation for Large Scale Event Extraction

    文章目录 1 简介 1.1 创新 2 背景知识 3 数据生成 4 事件抽取 5 实验 1 简介 论文题目:Automatically Labeled Data Generation for Large ...

  4. 论文笔记 ACL 2019|Exploring Pre-trained Language Models for Event Extraction and Generation

    文章目录 1 简介 1.1 动机 1.2 创新 3 抽取模型 3.1 触发词抽取 3.2 论元抽取 3.3 确定论元区间 3.4 重新加权loss 4 训练数据生成 4.1 预处理 4.2 事件生成 ...

  5. Automatically Labeled Data Generation for Large Scale Event Extraction

    Automatically Labeled Data Generation for Large Scale Event Extraction 简介 这篇文章关注对event extraction提供标 ...

  6. 【论文解读 ACL 2019 | PLMEE】Exploring Pre-trained Language Models for Event Extraction and Generation

    论文题目:Exploring Pre-trained Language Models for Event Extraction and Generation 论文来源:ACL 2019 国防科技大学 ...

  7. 【论文阅读笔记|ACL2019】PLMEE:Exploring Pre-trained Language Models for Event Extraction and Generation

    论文题目:Exploring Pre-trained Language Models for Event Extraction and Generation 论文来源:ACL 2019 国防科技大学 ...

  8. Minecraft 1.12.2模组开发(十四) 建筑生成 (structure generation)

    我们今天对 主世界建筑生成进行制作 1.在 util 包中新建 IStructure 接口 在 IStructure.java 中编写 package com.Joy187.newmod.util;i ...

  9. Automatically Labeled Data Generation for Large Scale Event Extraction论文笔记

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 一.当年现状 二.数据集 三.方法 小结 总结 前言 例如:本周阅读了这篇论文,特此记录笔记 一.当年现状 .在 AC ...

最新文章

  1. (邓爱萍)继承 课本
  2. 中文自然语言处理(NLP)(三)运用python jieba模块计算知识点当中关键词的词频
  3. Synchronized和Lock区别
  4. 一文讲透数仓临时表的用法
  5. java设计一个顺序表类的成员函数,用java编写一个逐个输出顺序表中所有数据元素的成员函数...
  6. 为什么优酷的《楚乔传》画质更清晰?独家解密窄带高清技术
  7. HWSD土壤数据集下载及打开方法
  8. lfw分类 python_LFW精确度验证__python读写txt
  9. 华为数字化转型的钻石模型
  10. python生成单位阵或者对角阵的三种方法
  11. Android开发—三种动画实现原理及使用
  12. 数据结构复习题(一)
  13. 【转】光通信主要会议和期刊总结
  14. [UnityShader入门精要读书笔记]37.水波效果
  15. 这次财报,同程艺龙又沾了腾讯的光
  16. 【GDOI2017第三轮模拟day1】影魔(主席树)
  17. 【日常分享】使用U盘给DELL电脑安装电脑系统,小白装机
  18. 在Ubuntu 14.04 上安装 Nginx-RTMP 流媒体服务器,并Android真机测试
  19. 上海亚商投顾:科创50指数录得6连阳 芯片股掀涨停潮
  20. 中国BOPET电容器膜市场行业投资前景展望及风险评估报告2022-2028年

热门文章

  1. 【优盘变为空白?文件都跑哪儿去了】
  2. 递归函数python基例_python基础——递归函数
  3. 【推荐算法】今日头条推荐系统原理
  4. S7-1200PLC通过USS通信控制V20变频器的具体方法和步骤
  5. 一句话讲解深度学习算法
  6. JavaScript 通过plus读取android手机短信内容
  7. 关于雷达(Radar)信道
  8. WIN10快捷方式锁屏设置方法
  9. Ubuntu 下调用 opencv 在图片显示汉字和数字
  10. JS中怎么定义全局变量