胡振宇作者顾宇轩本期编辑崔一鸣 本期责任编辑

文档级事件抽取简述

1. 简介

事件作为信息的一种表现形式,其定义为特定的人及物在特定的时间特定的地点相互作用的事实。事件的组成元素包含触发词、事件类型、论元以及论元角色:

  • 触发词:事件发生的核心词,多为动词和名词。

  • 事件类型:ACE2005 定义了8种事件类型和33种子类型。其中,大多数事件抽取均采用33 种事件类型。

  • 论元:事件的参与者。

  • 论元角色:事件论元在事件中充当的角色。共有35类角色,例如,攻击者 、受害者等。

例如:在Baghdad,当一个美国坦克对着 Palestine 酒店开火时一个摄影师死去了。该事件信息如表1所示:

表1 举例事件相关信息

事件抽取的目标即自动化的从非结构化的信息中完成上述信息的获取,并结构化进行展示。事件抽取是信息抽取领域中一项重要且具有挑战性的任务。其可以为知识库构建,问答以及语言理解任务提供有效的结构化信息。然而传统的事件抽取任务大多数基于句子层面,但是这样具有很明显的缺陷:一个事件会涉及到触发词和多个论元,但是实际情况中,很少会有触发词和所有的论元都出现在一个句子中的理想情况(如图1[1]),所以如果在实际的文本中,孤立的从单个句子抽取,很可能会得不到完整的事件信息。因此,研究文档级别的事件抽取,如何获取跨句子的信息,对事件抽取的实际应用是很有帮助的。

图1 触发词以及论元位于不同句子中的例子

2. 任务

文档级别事件抽取任务包含论元角色识别任务(目前研究主要的关注点)、名词短语共指消解以及事件追踪(即判断抽取的论元属于文档中的哪个事件)。本文主要介绍论元角色识别任务,该任务根据预先定义的事件类型以及对应的事件类型所包含的角色,将一个文档中论元识别出来并填充至相应的角色中,具体如图2[2]

图2 文档级事件抽取任务输入及输出

图2是一个典型的文档级事件抽取的例子,可以看出一个事件的论元分散在了多个句子当中,指出了该项任务两个难点[3],即一个事件的论元分散在多个句子当中和一个文档中可能包含多个事件。单从句子层面进行事件抽取难以克服,下文通过介绍几篇文章中的工作来阐述如何完成该项任务。

3. 数据集

图3 距离监督在关系抽取上的应用

目前而言事件抽取存在着训练数据不足的缺陷,以经常用来做实验的公开数据集 ACE 2005 来说,该数据集文档数仅599篇,所以需要针对文档事件抽取任务构建数据集。远程监督被证明可以为关系抽取以及事件抽取任务自动生成大量数据[4],以关系抽取中的远程监督举例,如图3,在已有的数据库FreeBase中,已知Steve Jobs 与 Apple 具有founders关系,并且Freebase中提供了相关的表示founders关系的样本句子。但是我们觉得样本数量过少,希望能够根据已有知识来扩展一下数据集,以方便我们模型的训练。我们从外界获得大量的文本,进行关键词的匹配,只要是在同一句话中同时出现了Steve Jobs 以及Apple 这两个实体,我们就假设这句话表达了二者之间具有的founders关系,对这句话进行标注,并加入到训练数据集之中。因此通过远程监督的方法来完成数据的自动标注[1],该数据集共包含2976篇文档,其中91%的事件的论元均分散在多个句子中。Shun Zheng et al.直接花费大量人力手工标注得到数据集ChFinAnn,该数据集共包含32040篇文档。

4. 方法

动态融合文档不同层次信息

文档级事件抽取任务无法利用句子层面的抽取方法得到解决,最主要的原因便是一个事件的论元分散在了不同的句子当中,因此如何获取跨句子信息就显得较为重要,以往的方法均是将一个句子作为输入,获得该句子的事件元素。因此最直接的想法便是将整篇文档作为输入,输出事件元素,但实验证明该该种方法效果不佳[2],Xinya Du et al.工作表明,随着输入长度的增加,即一次输入一个句子、k个句子(k=2,3,4)以及整篇文档,准确率呈现先上升后下降,而召回率呈现先下降后上升,最终F1值并没有得到提升,该工作表明文档级事件抽取不仅要关注文档级上下文,句子级上下文也同样重要。因此,提出将文档在不同粒度的信息进行融合用于抽取。具体结构如图5所示,整体上将抽取任务转化为序列标注任务,可以看到模型从两个层次进行信息的获取,左半部分将句子逐句进行编码后输入至Sentence-Level BiLSTM,得到的编码进行拼接,进而获取这k个句子在句子级别的表示,右半部分将这k个句子一起进行编码,然后同时输入至Paragraph-Level BiLSTM,得到这k个句子在文档级别的表示,然后将两者通过门控机制进行融合,如下所示:

图4 动态融合文档不同层次信息模型具体架构

以文档中某句为事件中心句进行论元补充

一般情况下,一个事件在一个文档中通常会有一个句子最能表达该事件即事件的中心句,从语义层面上来看,即该句子囊括了这个事件的最多的要素和信息,比如包含触发词以及较多的论元。如果能够对该句子识别的基础上进行论元的补充完整,那么就解决了论元分散问题。Hang Yang et al.采用该思路构建了一个DCFEE框架[1]来对文档进行抽取。图5是该框架的具体架构及工作流程,该模型事件抽取过程分成了两个部分,一个是黄色框的句子级别的抽取(SEE:Sentence-level Event Extraction),一个是绿色框的文档级别的抽取(DEE:Document-level Event Extraction)。句子级别的抽取是将抽取问题转化为序列标注问题,采用BiLSTM+CRF序列标注模型,通过将句子切分成字符输入模型,最终在输出端可以得到字符的BIO标注,触发词以及论元均采用该方法抽取。接着将SEE的输入(图中右半部分红色向量)与输出(图中右半部分蓝色向量)拼接作为第二部分DEE的输入,DEE部分的工作分为两步,第一步对于输入的句子,判断其是否是事件的中心句,该步由一个卷积层以及二分类的输出层完成,第二步对于以中心句为基础,在文档中该句子周围的句子中获取论元,对事件进行补充,例如在图5中,为该事件的中心句,但是时间信息却在中,这时,假设该时间涉及的事件就是我们的中心事件,通过补充该时间,使得事件信息抽取完整。

图5 DCFEE框架具体工作流程

将事件抽取转化为构建基于实体的有向无环图

DCFEE通过寻找中心句然后补充的思路一定程度上解决了论元分散的问题,但是却忽略了实际情况中一个文档可能会包含多个事件的情况,在Shun Zheng et al.的工作中,为了比较自己工作与DCFEE,通过改进DCFEE得到了DCFEE-M,DCFEE-M 会产生多个部分正确的事件,但是 DCFEE-M 的论元补全阶段是上下文无关的,对于不同的句子多次提及同一事件的环境下,DCFEE 模型的中心句检测模块无法有效地区分重复的事件实例,造成抽取事件冗余,而且当一个文档由多个简单的句子片段构成时,事件的论元散落在各个句子中,DCFEE 模型无法有效地将这些零碎的信息整合起来识别完整的事件论元及事件角色。针对这些未解决的问题,Shun Zheng et al.提出了一种新颖的端到端的解决方案Doc2EDAG[3],该解决方案可以有效的生成基于实体的有向无环图,以实现文档级事件抽取。

Doc2EDAG的架构如图6所示,总体来看,该模型先将文档中所有的实体识别出来,然后通过文档级的信息的融合处理来解决句子级抽取所带来的信息没有跨句子流通的问题,接着根据设定的事件类型来对文档中是否包含某事件类型的事件进行判断,如果有,则针对该事件类型逐步生成一个有向无环图有向无环图的生成更类似于按照填表的形式,对于每个事件类型的论元,按照设定逐步进行填充,由于针对所有的设定的事件类型逐个判断,所以理论上可以将一个文档中多个事件抽取出来,也就解决了单文档多事件的问题。

图6 Doc2EDAG整体架构及工作流程

该模型可以分为四个阶段的处理流程:

实体识别  采用 Transformer 作为上下文编码器对实体单位进行编码训练,在训练过程中,使用事件论元的角色信息作为实体标签,使用经典的BIO(Begin,Inside, Other)方案,并用 crf 层将其封装起来,来获得实体识别 Loss 函数。

文档级信息编码  为了有效地解决论元分散的问题,需要利用全局上下文来更好地识别一个实体是否扮演特定的事件角色。首先将识别得到的实体以及句子进行embedding并分别使用最大池化操作获得固定维度的向量。然后将句子编码向量添加位置编码后与实体编码拼接起来一起输入Transformer中,以此来促进文档级上下文信息的流通,获得文档级的句子编码以及实体编码,需要注意的是,一个文档中可能会有名称相同的实体,通过最大池化操作将这些相同名称的实体的向量进行合并。

EDAG生成  该部分首先对每个事件类型进行触发分类,对被触发的事件类型按照预定义的事件角色顺序创建EDAG(因此一个文档可以得到多个EDAG对应多个事件),EDAG的节点对应与角色匹配的实体或者NA(表示没有与该角色匹配的实体),创建完成的EDAG每条完整路径对应着一条事件记录。

EDAG路径扩展  该部分则是转化为二分类任务,即判断某个实体是否是当前节点对应的论元角色,如果是则将该实体添加到EDAG中,如果没有任何实体能与当前的角色匹配,则将NA添加到EDAG中。

Doc2EDAG模型通过使用NER模型将所有的实体识别出来之后,将所有的句子编码以及实体编码输入到Transformer中来完成跨句子信息的获取。然后对每个实体逐一分类最终获取事件完整的论元。

5. 总结

以往的事件抽取大多基于句子层面,本文简单阐述了文档级事件抽取与传统基于句子级事件抽取的不同,并指出了文档级事件抽取的难点所在,即论元分散和单文档多事件。通过介绍三个文档级事件抽取任务的相关模型,来介绍解决文档级别事件抽取任务的相关思路和方法,以及获取跨句子信息的不同的方式,其中Doc2EDAG以一种新颖的方式在一定程度上解决了两大难点并得到了良好的效果。本文通过对已有相关工作的梳理和总结,以期能够为后续文档级事件抽取提供帮助。

参考资料

[1]

Hang Yang, Yubo Chen , Kang Liu , et al.: DCFEE: A Document-level Chinese Financial Event Extraction System based on Automatically Labeled Training Data. In: Proceedings of the 56th Annual Meeting of the Association for Computational Linguistics-System Demonstrations. 2018: 50-55.

[2]

Xinya Du, Claire Cardie.: Document-Level Event Role Filler Extraction using Multi-Granularity Contextualized Encoding. In: Proceedings of the 56th Annual Meeting of the Association for Computational Linguistics-System Demonstrations. 2020.

[3]

Shun Zheng, Wei Cao, Wei Xu, et al.: Doc2EDAG: An end-to-end document-level framework for chinese financial event extraction. In: Proceedings of the 2019 Conference on Empirical Methods in Natural Language Processing and the 9th International Joint Conference on Natural Language Processing. 2019: 337-346.

[4]

Yubo Chen, Shulin Liu, Xiang Zhang, et al:. Automatically labeled data generation for large scale event extraction. In: Proceedings of the 2019 Conference on Empirical Methods in Natural Language Processing and the 9th International Joint Conference on Natural Language Processing. 2019: 409-419.

哈工大SCIR
哈工大SCIR

哈尔滨工业大学社会计算与信息检索研究中心

入门事件抽取
2
相关数据
有向无环图技术

在图论中,如果一个有向图从任意顶点出发无法经过若干条边回到该点,则这个图是一个有向无环图(DAG图)。 因为有向图中一个点经过两种路线到达另一个点未必形成环,因此有向无环图未必能转化成树,但任何有向树均为有向无环图。

知识库技术

知识库是用于知识管理的一种特殊的数据库,以便于有关领域知识的采集、整理以及提取。知识库中的知识源于领域专家,它是求解问题所需领域知识的集合,包括基本事实、规则和其它有关信息。

数据库技术

数据库,简而言之可视为电子化的文件柜——存储电子文件的处所,用户可以对文件中的数据运行新增、截取、更新、删除等操作。 所谓“数据库”系以一定方式储存在一起、能予多个用户共享、具有尽可能小的冗余度、与应用程序彼此独立的数据集合。

最大池化技术

最大池化(max-pooling)即取局部接受域中值最大的点。

准确率技术

分类模型的正确预测所占的比例。在多类别分类中,准确率的定义为:正确的预测数/样本总数。 在二元分类中,准确率的定义为:(真正例数+真负例数)/样本总数

信息抽取技术

信息/数据抽取是指从非结构化或半结构化文档中提取结构化信息的技术。信息抽取有两部分:命名实体识别(目标是识别和分类真实世界里的知名实体)和关系提取(目标是提取实体之间的语义关系)。概率模型/分类器可以帮助实现这些任务。

F1值技术

为了能够评价不同算法的优劣,在Precision和Recall的基础上提出了F1值的概念,来对Precision和Recall进行整体评价。F1的定义如下: F1值 = 正确率 * 召回率 * 2 / (正确率 + 召回率)

远程监督技术

该方法由 M Mintz 于 ACL2009 上首次提出,与传统预先定义关系类别不同,Distant Supervision 通过将知识库与非结构化文本对齐来自动构建大量训练数据,减少模型对人工标注数据的依赖,增强模型跨领域适应能力。

推荐文章
暂无评论
暂无评论~