目前大多数事件抽取方法都是在句子级进行事件抽取。然而,句子级事件抽取很难处理当前激增的数据,如金融、司法、卫生医疗等,这些数据中事件论元总是跨句子存在,甚至在同样的文档中存在多个事件。为了解决这些问题,我们提出了端到端的模型:Doc2EDAG,该模型能够生成基于实体的有向无环图来高效处理文档级事件抽取。并且,我们重新设计了不使用触发词进行事件抽取任务,以简化文档级事件标注。为了阐述Doc2EDAG的有效性,我们构建了一个大型真实的金融数据集,该数据集包含了上述提及的挑战。实验分析表明Doc2EDAG的效果优于目前的SOAT方法。
-
事件抽取在自然语言处理中扮演着重要的角色,它可以产生有价值的结构化信息,以促进各种任务的完成,如知识库的构建、问题的回答、语言的理解等。
-
金融、司法、卫生健康等领域数据的快速增长。
-
本文以金融事件抽取为例,使用Chinese financial announcements (ChFi- nAnn)数据集。金融事件抽取存在两个挑战:1.一个事件记录的论元可能分布在文档中不同的句子中;2.一个文档可能包含多个事件。
该数据集中30%的文档包含多个事件记录。ChFi- nAnn文档数据包含中国股市上市公司的第一手官方披露信息,有几百种类型,如年报和盈利预估。
-
目前大多数事件抽取研究都是用ACE2005数据集,该数据级仅在句子级进行标注,没有考虑论元分散的问题。
图2展示的是股权质押(Equity Pledge)事件记录。对于第一个事件,实体“[SHARE1]”在句子级(ID 5)中是正确的"Pledged Shares"(质押股份).然而,由于股本增加(ID 7),在文档级中正确的"Pledged Shares"应该是"[SHARE2]"。同样,在句子级(ID 9)中,"[DATE3]"是正确的"End Date",但在文档级(ID 10)中就不正确。并且,一些总结性的论文,例如"SHARE[5]"和"[RATIO]"经常在文档的末尾。
为了解决文档级事件抽取的难点,本文提出了新的端到端的模型:Doc2EDAG。Doc2EDAG的关键想法是把事件表转换为基于实体的有向无环图(entity-based directed acyclic graph,EDAG)。EDAG可以把困难的表填充任务转换为易于处理的循序路径扩展子任务。为了有效地支持EDAG生成,Doc2EDAG对具有文档级上下文地实体进行编码,并设计了一种用于路径扩展的内存机制。此外,为了简化基于DS(distant supervision)的文档级事件抽取标注,我们提出了一种新的DEE(文档事件抽取)形式,它去掉了触发词标签,将DEE视为基于文档来直接填充事件表。这种无触发词的设计不依赖于任何预定义的触发词集合来筛选多个触发词候选项,并且任然完全符合DEE的最终目标,即将文档映射到底层事件表。
主要贡献:
-
提出一个新的模型:Doc2EDAG,该模型基于文档直接生成事件表,从而解决DEE的难题。
-
重新规范化了没有触发词的DEE任务,以简化基于DS的文档级事件标注。
-
针对DEE任务构建了一个大规模真实数据集,该数据集具有两个挑战:论元分散和多事件,并进行了大量实验证明Doc2EDAG的优势。
-
几个概念
-
(1)实体提及:文档中的一段文本,表示一个实体对象。
-
(2)事件角色:事件表中预先定义的字段
-
(3)事件论元(event argument):表示特定事件角色的一个实体。
-
(4)事件记录(event record):对应于事件表中的一个条目,包含几个具有所需角色的论元。比如图2两个事件记录中,实体"[PER]"就是具有"Pledger"角色的事件论元。
-
作为文档事件抽取(DEE)的先决条件,我们首先执行文档级的基于远程监督$DS$的事件标注。更具体地说,我们将事件知识库中的表格记录映射到文档文本,并将匹配良好的记录视为由该文档表示的事件。此外,我们采用了一个无触发词的设计,并相应地对一个新的DEE任务进行了重规范,从而实现了端到端的模型设计。
-
事件标注
为了确保标注质量,我们对匹配的记录设置了两个约束条件:1)预定义的关键事件角色的论元必须存在(非关键角色可以为空)2)匹配的论元数量应该高于某个阈值这些约束的配置是特定于事件的,在实践中,可以对它进行调优,以确保文档级的标注质量。满足两项条件的视为完全匹配的记录,即远程监督的ground truth.除了标注事件记录外,还将论元角色分配给匹配的token,最为实体标签。不显示地标注触发词。无触发词的设计好处是能够更容易地基于远程监督做标注,并且不依赖于预定义的词典。
-
无触发词地DEE任务
将DEE任务重新规范化为基于文档直接填充事件表,通常分为三个子任务:
- 实体抽取:抽取实体作为候选论元
2)事件监测:跟据每一种事件类型来判断文档是否被触发
3)事件表填充:把论元填充到触发的事件表。
这种DEE任务与带有触发词地SEE任务不同。
Doc2EDAG的核心思想是将事件记录转换为EDAG,并让模型学会根据文档级上下文生成EDAG。以图2为例,图2描述了一个EDAG的生成过程,图4展示了Doc2EDAG的总体工作流程,由以下几个关键阶段构成:文档级实体编码和EDAG生成。首先描述性预处理模块:输入表示和实体识别。
-
输入表示
词嵌入表:$V \in R^{d_w \times |V|}$,$V$是单词数量
将文档表示为句子序列,$[s_1;s_2;\ldots,s_{N_s}]$,每个句子$s_i\in R ^{d_w \times N_w}$由$[w_{i,1},w_{i,2},\ldots,w_{i,N_w}]$组成,$w_{i,j} \in R^{d_w}$表示一个单词,即第$i$个句子的第$j$个单词,嵌入维度为$d_w$;$N_s$是文档中句子数量,$N_w$是句子的token最大长度。
-
实体识别
这里根据BILSTM-CRF模型,把编码层BILSTM替换为Transformer来进行序列标注。使用Transformer进行上下文编码,将这一阶段命名为Transformer-1。对于每个句子张量$s_i \in R^{d_w \times N_w}$,编码后为$h_i=Transformer-1(s_i)$,其中,$h_i \in R^{d_w \times N_w}$。使用BIO(Begin,Inside,Other)模式进行标注,结合CRF层计算损失$L_{er}$。使用Viterbi进行解码获取最有序列标注结果。