篇章级的事件抽取——阅读笔记

一、《DCFEE》

《DCFEE: A Document-level Chinese Financial Event Extraction System based on Automatically Labeled Training Data》DCFEE:基于自动标注训练数据的文档级中文金融事件抽取系统

Abstract

针对事件抽取(Event Extraction)目前面临着训练数据缺乏文档级别事件抽取两大问题,文章开创性的提出相应的解决方案。

第一,训练数据缺乏。ACE 2005 中,各语言的文档数不过几百篇,对深度学习来说,这样的数据量是不足够的。第二,事件抽取还局限于单个句子。而事实上,一个事件往往涉及到触发词和多种事件元素,触发词和所有的事件元素都出现在同一个句子中的理想情况并不常见,因此篇章级的事件提取非常有必要。

在这篇论文中,研究人员描述了一个从文档层面出发进行事件抽取的系统,此外,他们还将远程监督这(Distance Supervision,DS)一方法应用到事件抽取领域,使得训练集的自动拓展在一定程度上成为了可能。可以说这篇论文试图同时解决上面提到的事件抽取存在的两方面问题。

1. Introduction

金融事件对投资者来说十分有用,通过有针对性的对不同金融事件作出相应的操作,可以为投资者带来巨大的利润。而目前针对中文金融事件抽取的研究还比较少。

下图是论文中给出的一个例子,图中的事件

​ 图1. 一个事件出现在多个句子中

综上所述,本文的贡献如下:

  • 我们提出了DCFEE框架,该框架可以自动生成大量标记数据,并从财务公告中提取文档级事件

  • 本文介绍了一种用于事件提取的自动数据标注方法,并给出了一系列构建中国金融事件数据集的有用提示。

  • 我们提出了一个基于神经序列标记模型、键事件检测模型和参数补全策略的文档级电子表达系统。实验结果表明了该方法的有效性。DCFEE系统是一个可以快速从财务公告中提取事件的在线应用

2. Methodology

图2描述了我们提出的DCFEE框架的体系结构,该框架主要涉及以下两个组件:

(i)数据生成,它使用DS自动标记整个文档中提到的事件(文档级数据),并从事件提到中标注触发器和参数(句子级数据);

(ii)事件抽取EE系统,包含了语句级标注数据支持的事件抽取(SEE)和文档级标注数据支持的文档级事件抽取(DEE)。在下一节中,我们将简要描述标记数据的生成和EE系统的体系结构。

2.1 远程监督扩充训练语料

数据来源:

自动生成数据需要两种类型的数据资源:包含大量结构化数据信息的金融事件知识库和包含事件信息的非结构化文本数据。

  • 结构化数据来源于财务事件知识库,包含9种常见的财务事件类型,并以表格形式存储。这些包含关键事件论元的结构化数据是从金融专业人士的公告中总结出来的。以股权质押事件为例,如图3左侧所示,其中关键参数包括股东名称(名称)、质押机构(ORG)、质押股份数量(NUM)、质押开始日期(BEG)、质押结束日期(End)。
  • 非结构化文本数据来源于企业发布的官方公告,以非结构化形式存储在网络上,我们从搜狐证券网获得这些文本数据。

数据生成方法:

标注数据主要包括两部分:通过标注事件触发词事件论元生成的句子级数据;通过标注文档级公告中的事件提及生成的文档级数据。现在的问题在于如何找到事件触发词。与结构化事件知识库相对应的事件论元和事件提及是从大量的公告中总结出来的。远程监督的方法在关系抽取和事件抽取上均表现出来其在自动标注数据上的有效性。受远程监督的启发,我们假设一个句子包含最多的事件参数,并且在特定触发器的驱动下,很可能是公告中提到的事件。事件提及中的论元很有可能在事件中扮演相应的角色。对于每一类金融事件,我们构建了一个事件触发词典,如股权冻结事件中的冻结事件和股权质押事件中的质押事件。因此,可以通过查询预先定义的词典从公告中自动标记触发词。通过这些预处理,结构化数据可以映射到公告中的事件论元。因此,我们可以自动识别事件提及并标记事件触发词和其中包含的事件论元,以生成句子级别的数据,如图3底部所示。然后,对于一个文档,作者定义其中的一个句子作为文档中的正例,即最能表达文档中事件的一句话,其他句子均为负例。自此,对一篇文档的标注就完成了。文档级数据和句子级数据一起构成了EE系统所需的训练数据。

技巧:

实际情况下,数据标注存在一些挑战:财务公告与事件知识库的对应性;事件论元的模糊性和缩写性。我们使用了一些技巧来解决这些问题,示例如图3所示。

  • 减少搜索空间:通过检索关键事件论元(如公告的发布日期和股票代码),可以减少候选公告的搜索空间
  • 正则表达式:通过正则表达式可以匹配到更多的事件论元,提高标注数据的召回率。例如LONCIN CO LTD (Role=Shareholder Name)在金融事件数据库中,但是LONCIN在公告中。我们可以通过正则表达式来解决这个问题,并将LONCIN标记为事件论元。
  • 规则:一些任务驱动的规则可用于自动标注数据。例如,我们可以通过计算 2017-02-23 (Role=Pledging Start Date) 和2018-02-23(Role=Pledging End Date)之间的间隔标记出12 months (Role=Pledging End Date)

2.2 事件抽取

图4描述了本文提出的事件抽取系统的总体架构,主要包括以下两个组件:旨在从单个句子中抽取出事件论元事件触发词的句子级事件抽取;旨在基于关键事件检测模型和论元填充策略从整个文档中提取事件参数的文档级事件抽取。

​ 图 4: 事件提取的体系结构

2.2.1 句子级事件抽取

我们将句子级事件抽取作为一个序列标注任务,并对基于句子级标注数据的训练数据进行了描述。句子使用BIO标注模式进行标注。如图4左侧所示,模型使用BiLSTM+CRF进行句子级事件抽取,抽取出句子中的候选论元及触发词

2.2.2 文档级事件抽取

文档级事件抽取包括两部分:旨在从文档中发现事件提及的关键事件检测模型;用于填充事件论元的论元补足策略。

关键事件检测:

如图4右侧所示,事件检测的输入由两部分组成:一部分是来自句子级事件抽取输出的事件论元和事件触发器的表示(蓝色),另一部分是当前句子的向量表示(红色)。将两部分串联起来作为CNN的输入特征。然后将当前句分为两类:关键事件与否,即是否为文档中的正例。

论元填充策略:

我们通过文档级事件抽取获得了包含大部分事件论元的关键事件,并通过句子级事件抽取获得了文档中每个句子的事件抽取结果。为了获得完整的时间信息,我们使用论元填充策略,该策略可以自动地从周围句子中填充缺失的事件论元。如图4所示,一个完整的质押事件包括事件提及 S n S_n Sn中的事件论元,以及根据事件提及 S n + 1 S_{n+1} Sn+1中填充的事件论元 12 months。

3 评估

3.1 数据集

我们对四类金融事件进行了实验:股权冻结事件、股权质押事件、股权回购事件和股权增持事件。共有2976份公告通过自动生成数据进行了标记。我们将标记的数据分为三个子集:训练集(占公告总数的80%)、开发集(10%)和测试集(10%)。表1显示了数据集的统计信息。NO.ANN表示可以为每个事件类型自动标注的公告的数量。NO.POS表示正样本句子(事件提及)的数量,相反,NO.NEG表示负样本句子的数量。正负样本句子构成文档级数据,作为文档级事件抽取的训练数据。包含事件触发词和一系列事件论元的正样本句子,标记为SEE的句子级训练数据。

我们随机选取了200个样本(包含862个事件论元)来手动评估自动标注数据的准确率。平均精度见表2,这表明我们的自动标注数据具有较高的质量。

3.2 模型效果

我们使用准确率(P)、召回率(R)和(F1)来评估DCFEE系统。表3显示了基于模式的方法和DCFEE在提取股权冻结事件时的性能。实验结果表明,在大多数事件论元提取中,DCFEE的性能优于基于模式的方法。

表4显示了SEE和DEE在不同事件类型上的P、R、F1。值得注意的是,SEE阶段使用的黄金数据是自动生成的数据,DEE阶段使用的黄金数据来自金融事件知识库。实验结果表明,SEE和DEE的有效性,精度可以接受。

实验表明,基于远程监督的方法可以自动生成高质量的标注数据,避免了人工标注。同时验证了本文提出的DCFEE能够有效地从文档级角度中提取事件。

4. 应用

DCFEE系统的应用:中文财经文本的在线电子商务服务。它可以帮助金融专业人士从财务公告中快速获取事件信息。图5显示了在线DCFEE系统的截图。不同颜色的单词代表不同的事件参数类型,下划线句子代表文档中提到的事件。如图5所示,我们可以从非结构化文本(关于股权冻结的公告)中获得一个完整的股权冻结事件。

​ 图5:在线DCFEE系统的屏幕截图

5. 相关工作

目前的事件抽取方法主要分为统计方法、基于模式的方法和混合方法。统计方法可以分为两类:基于特征提取工程的传统机器学习算法和基于自动特征提取的神经网络算法。基于模式的方法通常在工业上被使用,因为它可以获得更高的准确率,但同时具有较低的召回率。为了提高召回率,主要有两个研究方向:建立相对完整的模式库和采用半自动的方法建立触发器词典。混合事件提取方法将统计方法和基于模式的方法结合在一起。据我们所知,在中文金融领域,还没有一个系统能够自动生成标注数据,并从公告中自动提取文档级事件。

6. 结论

本文提出了DCFEE框架,该框架能够基于自动标注的数据从中国财务公告中提取文档级事件。实验结果表明了系统的有效性。我们成功地将系统上线,用户可以通过该系统从财务公告中快速获取事件信息。

二、《Doc2EDAG》

An End-to-End Document-level Framework for Chinese Financial Event Extraction

中文金融事件提取的端到端文档级框架

金融领域数据有以下两种特征:
① 事件元素分散(Arguments-scattering):指事件论元可能在不同的句子(Sentence)中。
② 多事件(Muti-event):指一个文档中可能包含多个事件

关键概念
实体(entity):实体对象的文本跨度
事件角色(entity role):对于事件表的预定义字段
事件参数(event argument):事件参数是扮演特定事件角色的实体
事件记录(event record):一个事件记录对应于事件表的一个条目,并包含几个具有所需角色的参数

摘要

现存的event extraction方法只抽取本句子中event argument。但是很多任务情况下argument分散在多个句子中,event mention也在文本中多次出现。本文提出Doc2EDAG生成非循环图填充document-level EE。是一个无触发词的方法。数据集和代码(https://github.com/dolphin-zs/Doc2EDAG.)

1. 介绍

金融公告越来越多特别是chinese financial announcements ,抽取这些announcement中的事件面临两个挑战:参数分散muti-event(同一事件出现多次)。如图对于文本中多次数显的equity pledge事件,参数总是一直在变化。

​ 图2. 事件表格

前人大部分工作都在ACE2005上,整个数据集只注重从单个句子中抽取事件。但是金融文档需要文档级别的事件抽取EE。参数分散比多事件更加难。本文提出Doc2EDAG解决这两个问题,模型的关键是将事件表格转换为基于实体的有向无环图(entity-based directed acyclic graph, EDAG)将表填任务转换为path expand任务。为了更好的扩展path Doc2EDAG编码实体、document-level context和memory mechanism。使用无触发词的方法将文本映射到到事件表格。

总而言之,我们的贡献包括:

  • 我们提出了一种新颖的模型Doc2EDAG,该模型可以直接基于文档生成事件表,以有效应对DEE的独特挑战。

  • 我们重新设计了无需触发词的DEE任务,以简化基于远距离监控DS的文档级事件标签。

  • 我们建立了一个大规模的文档级别的事件抽取现实世界数据集,它具有参数分散和多事件的独特挑战,广泛的实验证明了Doc2EDAG的优越性。

2. 相关工作

最近信息抽取构建了联合模型能同时抽取实体并且识别结构。Ren等集中于抽取实体和实体间关系。一些也同时抽取实体和事件,但是没有考虑参数分散argument scatter问题。另一个问题是缺少训练数据,远距离支持distant support结合一些简单的约束规则效果很好。

4. 文档级事件标注

首先做文本级事件标注。为了保证标注效率使用了两个约束条件:①key role必须有参数其他role可以是空。②匹配到的参数必须大于某个阈值。

DEE没有触发词的任务:需要三个子任务

  • 抽取实体作为参数候选

  • 逐个事件判断文本是否触发了这个事件。

  • 事件填充,将参数填入表格

4.1 事件标签

为了保证标注质量,我们对匹配记录设置了两个约束:

  1. 预定义关键事件角色的参数必须存在(非关键参数可以为空)
  2. 匹配参数的数量必须大于某个阈值。

这些约束的配置是特定于事件的,在实践中,我们可以对它们进行调优,以直接确保文档级别的标记质量。我们将满足这两个约束的记录视为匹配良好的记录,用作远距离监督的地面实况。除了标记事件记录之外,我们还将参数的角色作为token级实体token分配给匹配的token。注意,我们没有显式地标记触发词。除了不影响DEE功能之外,这种无触发词设计的额外好处是基于远程监督DS的标签更加简单,它不依赖于预定义的触发词字典或手动管理的启发式方法来过滤多个潜在的触发词。

4.2 没有触发词的任务

我们将基于DEE的新颖任务重新设计为直接基于文档填充事件表,这通常需要三个子任务:

  1. 实体提取,提取实体作为候选参数
  2. 事件检测,逐个事件判断文本是否触发了这个事件
  3. 事件填充,将参数填充到触发事件表中。这个新颖的DEE任务与带有触发词的普通SEE任务有很大不同,但与上面简化的基DS的事件标记是一致的。

5. Doc2EDAG

关键思想是将事件表转化为基于实体的有向无环图(EDAG),EDAG的形式可以将原本难以处理的事件表填充问题转化为更易于处理的几个顺序的路径扩展子任务『several sequential path-expanding sub-tasks』问题。同时,为了生成有效的EDAG,Doc2EDAG使用文档级上下文对实体进行编码,并设计用于路径扩展的存储机制。

输入表示

每个文本表示为d = [si,s2,…,sNs],最长的文本有Ns个句子,每个句子表示为si = [wi,1,wi,2,…,wi,Nw]最长的句子有Nw个词,wi,j表示第j个句子的第i个词。

实体识别

实体识别是一种典型的序列标记任务。我们在句子级别上进行这项任务,并遵循一种经典的方法BI-LSTM-CRF (Huang et al., 2015),该方法首先对标记序列进行编码,然后添加条件随机场(CRF)层以方便序列标记。唯一的区别是,我们使用的是Transformer而不是LSTM编码,基于 bilstm-CRF 改编为 transformer-CRF,并且将这个transformer称为transformer-1 ,将role标签加上BIO作为CRF的训练标签。损失函数记为Ler

5.1 文档级别的实体标注

解决参数分散需要使用全局信息,于是使用文档级别的实体编码抽取到的entity mention、context 产生一个dw的向量,用特殊标签表示。

entity & sentence embedding

首先通过在entity mention上使用最大池化得到固定长度的entity mention表示dw。也在整个句子上使用最大池化得到单句嵌入ci ∈ Rdw

document-level encoding

上面的到e和c都只包含local information(句子级别),使用transformer-2,add表示句子位置的向量。经过transformer-2 之后更具相同的surface name 使用最大池化得到ee长度为Ne

5.2 EDAG 生成

在cd的基础上使用一个线性分类器分类事件。然后对每个识别出来的事件生成EDAG。

EDAG building

模型训练之前需要基于table event record 构建 EDAG。对每个事件类型自定义参数顺序,按照这个顺序转换为链接列表,每个节点一个实体或者一个空参数NA。最后将前缀相同的链接列表融合,如下图。

图3: 一个EDAG生成示例,它从事件触发开始,并按照预定义的事件角色顺序依次展开。

任务分解

将填表任务分解为path-expanding 任务。假设trigger是第一个节点,就能每次一个role扩展节点,每次扩展的时候EDAG的每个叶子节点都根据当前role扩展哪一个实体。如果没有实体可以扩展就连接一个NA节点。

Memory

记录已经扩展了的实体。使用随机初始化的向量m和ed作为一个记忆状态,每次扩展路径的时候都添加对应的role标签或者NA的零向量。

path expanding

每个路径扩展视为一个二分类,经过transformer-3之后选取er使用一个二分模型判断是否扩展路径。

图4:Doc2EDAG的整体工作流程,其中我们遵循图2中的示例和图3中的EDAG结构,并使用条纹区分不同的实体(请注意,输入令牌的数量和实体位置是虚构的, 严格来说它们不匹配,这是之前的内容,在这里,为了简洁起见,我们仅包括前三个事件角色和关联的实体)。

模型结构

损失函数是事件触发分类损失Ltr、EDAG 生成损失 Ldag、以及实体识别的Ler 三个损失函数分别乘上对应的系数之后求和。

给定一个文本,首先EDAG识别entity mention,编码为document-level contexts,然后针对触发的事件生成EDAG。训练的时候可以使用ground-truth和EDAG,但是训练的时候不能,可能导致错误产生,我们使用了scheduled sampling将entity mentions转换到模型能识别的数据。

扩展错误的节点对结果影响比较大,需要设置一个参数θ。

标注数据的质量和比例:

6. 实验结果

三、《使用多粒度上下文编码的文档级事件角色提取》

《Document-Level Event Role Filler Extraction using Multi-Granularity Contextualized Encoding》

使用多粒度上下文编码的文档级事件角色填充符提取

1. 论文简介

本文研究了端到端神经序列模型(预训练语言模型表示)如何在文档级事件角色填充符提取中执行,以及上下文长度如何影响模型的性能。为了在不同粒度级别(例如句子和段落级别)学习到的神经表示上实现信息动态汇总,提出了一种新颖的多粒度阅读器。

文档级事件抽取任务流程分为以下三个部分:

  1. 角色填充抽取『role filler extraction』
  2. 名词短语共指消解『noun phrase coreference resolution』
  3. 事件追踪『event tracking』

目的:作者首先研究了端到端神经网络模型如何在文档级的角色抽取上执行,以及上下文长度对模型性能的影响。为了动态聚合在不同粒度的信息(句子级、段落级),作者提出了一个新的多粒度阅读器。

2. 背景

给定一篇由多个段落和句子组成的文章,一组预定义的事件类型和相关角色,本文的目标是识别文本表示中描述的每个事件对应的角色的文本范围,这通常需要对句子层面的理解和对句子以外上下文语境的准确解释。

​ 图1. 文档级事件角色填充提取任务

比如,识别 “Teofifilo Forero Castro”(S3)为car bomb attack(S2)中的victim,确定S4中不存在角色(这两个都主要依赖于句子级的理解),识别“four terrorists”(S1)为perpetrator individual(需要跨句子边界的关联解析)。

近期关于文档级事件角色抽取使用了pipeline架构,针对每个角色和相关上下文检测使用单独的分类器。然而这些方法在不同的阶段存在错误传递,并且严重依赖特征工程,此外,这些特征是针对特定领域的,需要语感和专家知识。

神经网络端到端模型在句子级的信息抽取任务中表现出色,但是之前没有研究将文档级事件角色提取作为端到端神经序列学习任务。首先,长序列中的长期依赖性是循环神经网络中一个很大的挑战。另外,即使使用BERT等模型适当减轻了长期依赖的影响,它们在序列的最大长度上仍有限制,少于大部分的关于事件的文章

3. 方法

首先将问题转化为针对文档中的一系列连续句子的序列标注任务,为了解决现有方法存在的问题,作者研究了上下文长度(即最大长度)对模型性能的影响,需找最合适的长度。作者提出一个多粒度阅读器,可以动态聚合本地上下文(句子级)和更广泛的上下文(如段落级)中学习到的信息。

3.1 构造成对的标记标签序列

本文将文档级事件角色填充符提取形式化为端到端序列标记问题,即使用标签结构BIO标注模式『Beginning, Inside, Outside』将文档转化为token/BIO-tag成对的序列,如下图所示。

图2. 训练序列阅读器进行事件角色填充符提取的框架的概述。

作者构造不同上下文长度的示例序列训练和测试端到端k-sentence阅读器(即单句,双句,段落和块阅读器)。这里的“块”是指符合BERT最大序列长度512的句子块。使用一个句子拆分器将文档分为句子s1,s2,…,sn。

构造训练集时,从每个句子i开始,将k个连续句子连接起来,形成长度为k的重叠候选序列,即序列1为{s1,…sk},序列2为{s2,…sk+1}。为了使训练集平衡,作者从候选序列中采样相同数量的正序列和负序列,其中“正”序列包含至少一个事件角色,而“负”序列不包含事件角色。

构造验证集时,将连续k个句子组合在一起,生成 n k \frac{n}{k} kn 个序列,即序列1为{s1,…sk},序列2为{sk+1,…s2k}。

对于段落阅读器,在训练集中,k为平均段落长度,在测试集中,k为真实段落长度。

k-sentence阅读器的输入为 X = x 1 ( 1 ) , x 2 ( 1 ) , x 3 ( 1 ) , . . . x 1 ( k ) , . . . , x k ( k ) X={x_1^{(1)},x_2^{(1)},x_3^{(1)},...x_1^{(k)},...,x_k^{(k)}} X=x1(1),x2(1),x3(1),...x1(k),...,xk(k) ,其中 x i ( k ) x_i^{(k)} xi(k)是第k句的第i个token, l k l_k lk是第k句的长度。

3.2 k-sentence Reader

由于k-sentence阅读器不能识别句子边界,作者将输入句子简化为{x1,x2,…,xm}

3.2.1 嵌入层

在嵌入层,作者将输入句子的每个token表示为其本身的词嵌入与上下文表示的连接

词嵌入:使用100维Glove预训练模型,对于给定的一个token x i x_i xi,有embedding : x e i = E ( x i ) xe_i=E(x_i) xei=E(xi)

预训练LM表示:研究证明,预训练语言模型产生的上下文嵌入能够在句子边界之外建模,提升一系列任务的性能。这里作者使用了BERT-base作为预训练模型,使用12层表示的平均值。对于给定的{x1,x2,…,xm}序列:

x b 1 , x b 2 , . . . , x b m = B E R T ( x 1 , x 2 , . . . , x m ) xb_1,xb_2,...,xb_m=BERT(x_1,x_2,...,x_m) xb1,xb2,...,xbm=BERT(x1,x2,...,xm),连接后每个token为 x i = c o n c a t ( x e i , x b i ) x_i = concat(xe_i,x_bi ) xi=concat(xei,xbi)

3.2.2 BiLSTM层

为了帮助模型更好的捕获序列token之间特定于抽取任务的特征,使用一个3层BiLSTM编码器:

p 1 , p 2 , . . . , p m = B i L S T M ( { x 1 , x 2 , . . . , x m } ) p_1,p_2,...,p_m=BiLSTM(\{x_1,x_2,...,x_m\}) p1,p2,...,pm=BiLSTM({x1,x2,...,xm})

3.2.3 CRF层

基于联合的方式对标注决策进行建模能够获得更好的性能(如"I-Weapon"不应该在"B-Victim"后面),作者使用了CRF进行联合标注决策建模。

p 1 , p 2 , . . . , p m p_1,p_2,...,p_m p1,p2,...,pm 经过线性层之后,获得大小为 m × 标注种类n 的矩阵P,其中 P i , j P_{i,j} Pi,j代表第i个token在标注j上的得分。对于一个标注序列 y 1 , y 2 , . . . , y m y_1,y_2,...,y_m y1,y2,...,ym

s c o r e ( X , y ) = ∑ i = 0 m A y i , y i + 1 + ∑ i = 0 m P i , y i score(X,y) = \sum_{i=0}^mA_{y_i,y_i+1} + \sum_{i=0}^mP_{i,y_i} score(X,y)=i=0mAyi,yi+1+i=0mPi,yi

其中A是得分矩阵的转移矩阵, A i , j A_{i,j} Ai,j表示从标注j到标注i的转移得分。在所有可能的标注序列得分上应用一个softmax函数,从而产生正确序列的可能。在训练过程中,最大化正确标注序列的可能性。

3.3 多粒度阅读器

为了探索聚合不同粒度的上下文token表示(句子级和段落级),作者提出了多粒度阅读器。与k-sentence阅读器相似,作者使用相同的嵌入层表示token,但将其应用于两个粒度。词向量在不同粒度时相同,上下文表示却不同。相应的,作者在句子级上下文表示和段落级上下文表示上,建立了两个BiLSTM( B i L S T M s e n t 和 B i L S T M p a r a BiLSTM_{sent}和BiLSTM_{para} BiLSTMsentBiLSTMpara).

3.3.1 Sentence-Level BiLSTM

3.3.2 Paragraph-Level BiLSTM

3.3.3 融合推理层

与k-sentence阅读器相似,作者在融合表示之上为段落中每个token引入了CRF层。

图3. 多粒度阅读器的概述。深蓝色的 B i L S T M s e n t BiLSTM_{sent} BiLSTMsent为句子级别每个token的表示。黄色的 B i L S T M p a r a BiLSTM_{para} BiLSTMpara为段落级别每个token的表示。

4、实验分析

数据集采用MUC-4,包括1700个带有相关角色的文档,使用head noun phrase match比较结果,使用精确匹配的准确率了解模型对角色边界的识别效果。

端到端模型能够达到甚至超越pipeline模型的性能。尽管作者的模型不依赖于人工设计的特征,contextualized 双句阅读器和段落阅读器在头名词匹配上达到与CE相同的分数,多粒度阅读器达到了接近60的F1分数。结果表明,序列上下文嵌入提高神经网络阅读器的性能。在文档级任务上,并不是越长的上下文会有越好的标注模型,对此任务来说,关注句间上下文和段落级的上下文同等重要。

设置消融实验,去除门控融合证明了动态组合上下文的重要性;去除BERT后召回率和F1都显著下降;替换掉CRF层对每个token独立标注决策时精确率和召回率都显著下降。

5. Conclusions

1、嵌入层『Embedding Layer』,每个token通过单词嵌入『word embedding』和上下文符号表征
『contextual token representation』拼接表示。

2、词嵌入『Word Embedding』使用GloVe词向量模型,获得固定长度的预训练词向量。

3、预训练语言模型表征『Pre-trained LM representation』,已经被证明了拥有可以超出句子边界建模上下文的能力,并且在一系列NLP任务上表现良好。本文中,在冻结权重的情况下计算所有12层Transformer表征平均值作为最终表征,主要的原因是,先前的论文已经验证,使用最后一层的表征或者将所有12层的表征相加产生的结果始终较差。

作者证明文档级事件角色抽取任务可以使用端到端神经网络序列模型解决,通过研究输入上下文长度对神经网络序列阅读器的影响,如果长度太长,可能会难以捕获,造成性能下降。作者提出了新的多粒度阅读器,动态组合段落级和句子级上下文表示。在benchmark数据集上的评估和分析证明了作者模型比之前的工作有了很大的改进。

在未来工作中,将进一步探索模型如何应用到联合抽取、处理共引用及构建事件模板上。

四、《TDJEE》

A Document-Level Joint Model for Financial Event Extraction

摘要

从众多财务公告中提取财务事件对于投资者做出正确的决定非常重要。然而,仍然有挑战性的是,事件参数总是分散在财务公告中的多个句子中,而大多数现有的事件提取模型仅适用于句子级别的场景。为了解决这个问题,本文提出了一种基于关系的,基于Transformer的文档级联合事件提取模型(TDJEE),该模型将单词之间的关系编码到上下文中,并利用经过修饰的Transformer捕获文档级信息来填充事件自变量。同时,在财务领域缺少标记数据可能会导致模型的提取结果不稳定,这就是所谓的冷启动问题。此外,提出了一种基于Fonduer的知识库与远程监督方法相结合的方法,以简化事件标记并为模型训练和评估提供高质量的标记训练语料库。真实世界中的金融公告的实验结果表明,与其他模型相比,TDJEE具有竞争性结果并且可以有效地提取多个句子中的事件自变量。

1.简介

事件提取[1]旨在识别构成事件的主要角色并将其填充为相应的预定义事件类型的事件自变量,在NLP(自然语言过程)中是一项具有挑战性的任务。自然地,事件提取可以分为两个子任务:事件参数提取和事件类型检测。它在智能问答,信息检索[2],自动摘要[3],推荐[4]等领域具有广泛的应用。

近年来,随着财务公告的增加,手动分析大量财务公告是一项劳动密集型任务。因此,从财务公告中自动提取结构化事件对于投资者做出决定至关重要。然而,解决事件论点散布在金融领域中不同句子中的问题仍然是一个挑战。为了清楚地说明这一挑战,这里是图1所示的示例。事件角色Equity Holder和Pledgee在句子1中,而开始日期和结束日期在句子3中。此外,抵押股份在句子5中。但是,大多数事件提取模型[5-7]提取句子中的参数,例如ACE 2005数据集(https://www.ldc.upenn.edu/collaborations/past-projects/ace,2021年1月15日),这是一个流行的事件提取数据集。显然,此类模型缺乏跨多个句子提取事件参数的能力。研究人员已在文档级别上关注挑战散布参数的问题。黄等。 [8]指出,具有三阶段任务的流水线体系结构可以提取文档级上下文信息,但是错误信息的传播将成为产生正确结果的障碍。郑等。 [9]首先使用端到端模型来识别事件级别的事件自变量。然后,使用二进制分类器确定事件类型,并将事件参数转换为有向无环图。但是,仍然很难解决事件参数相距甚远的问题。

在本文中,我们提出了一个基于关系感知转换器的[10]文档级联合事件提取模型(TDJEE)来解决跨多个句子的事件参数的挑战。TDJEE包括两个子模型:事件参数提取和事件类型检测。在事件参数提取中,从BERT[11]中获得单词表示,每个单词表示包含来自其他句子的上下文信息。然后,使用条件随机场(CRF)方法[12]来识别事件参数。事件类型检测是一项分类任务,旨在从文档中识别出核心事件语句,并检测出相应的事件类型。在事件类型检测中,我们利用注意机制[13]整合单词表征,得到句子表征。关系感知转换器用于进一步捕获文档级信息。

此外,金融领域缺乏足够的标记数据可能导致低质量的不稳定模型,即冷启动问题。为了训练和评估我们的模型,我们首先使用Fonduer[14]自动建立一个特定领域的知识库,存储结构化的中国金融事件,然后通过远程监督标签生成训练数据。此外,还设计了匹配器和滤波器来过滤噪声信息。然后,我们利用弱监督方法获得了一个比ACE 2005大60倍的金融特定中文数据集。

在真实数据集上的实验结果表明,TDJEE具有较好的效果,能够有效地在财务公告的不同句子中提取事件论证。本文使用的实现代码和数据集可在https://github.com/q5s2c1/TDJEE/tree/master(2021年3月20日)上获得。

本文的其余部分组织如下。第二节讨论相关的工作。在第三节中,我们首先概述了TDJEE模型并做了一些初步的研究,然后详细介绍了基于fonduer的知识库的构建、基于远程监督的事件标注、文档编码、事件参数提取、事件类型检测以及优化技术。实验结果和讨论在第四节。最后,第五部分给出了结论和下一步的工作。

2. 相关工作

有两种类型的事件提取方法:管道方法和联合模型。管道方法将事件提取任务划分为多个子任务,并依次进行处理。它的缺点是不同子任务之间的错误可能被传播。为了解决这类问题,提出了用于事件提取的联合模型,通常包括联合推理和联合建模。联合推理使用集成学习通过一个整体目标函数来优化模型。联合建模将事件结构视为依赖树,再将提取任务转换为依赖树结构预测。它可以识别触发词,同时提取元素。推理和建模共享隐含层参数,可以避免由于错误传播而导致的性能下降。

从技术角度来看,事件提取方法也可以分为基于模板和规则的方法、基于深度学习的方法和基于弱监督的方法。早期的事件提取方法是基于模板匹配或正则表达式[15]的。研究人员使用句法分析和语义约束来识别句子中的事件。PALKA[16]使用语义框架和短语模式来表示事件的抽取模式。通过整合WordNet[17]的语义信息,PALKA可以在特定的领域达到接近人类的结果。然而,模板方法的性能高度依赖于语言,可移植性较差。

近年来,大部分的事件提取方法都是基于深度学习的。与传统的基于模板和基于规则的方法相比,深度学习方法更具通用性。Chen等人[6]提出了一种动态多池卷积神经网络(DMCNN)来提取事件,该网络将事件提取视为触发分类和参数分类两阶段的多分类任务。但是,这个方法会受到错误传播的影响,并且忽略了触发词和参数之间的依赖关系。Zhao等人[18]提出的DEEB-RNN模型充分利用文档信息进行事件提取,通过基于rnn的融合层次和注意机制对文本进行编码,然后利用文本的表示来判断句子中的事件触发词和类型。然而,随着句子长度的变长,基于rnn的方法不能很好地工作。Han等人[19]提出了一种基于扩张门选卷积神经网络的网络模型,通过扩展网络的词表示和深度来提高性能。Peng等[20]将CNN与门线性机制相结合,对文本编码进行加速。

特别是深度学习模型严重依赖于大规模的训练语料库。采用弱监督方法减少事件标注。Chen等人使用高质量的标注语料库训练分类器。迭代地使用训练过的分类器对未标记的数据进行标记,并选择高置信度的样本来训练分类器。最后,获得一个高质量的标记数据集用于事件提取。Liao等人[22]首先使用自训练[23]和半监督学习方法扩展标注语料库。然后,同时训练词粒度分类器和句子粒度分类器,并利用联合训练[24]扩展标注数据进行事件抽取。

在金融事件提取中,李等人 [25]提出了一种通过自动构建提取规则来提取中国金融事件的方法,但是这种方法忽略了关于实体和关系的背景信息。丁等[26]提出了一个联合事件嵌入模型KGEB,它将知识图嵌入事件向量表示中。 KGEB使用知识库(例如Freebase和YAGO)为事件嵌入提供两种类型的背景知识:分类知识和关系知识,并且在股票价格波动预测任务中取得了可喜的成果。 Dor等 [27]专注于从文本中挖掘与公司相关的事件,其中包括在Wikipedia上描述公司的文章。其标签训练语料库是通过弱监督而产生的。它利用分类模型来检测与公司相关的事件语句。对于金融领域的报道,Ding等人。 [28]首先定义基于专家知识的基本事件框架,然后与传统自然语言处理工具(例如规则,词性标记和命名实体识别)相结合,以进行触发词识别和事件元素识别,最后转换财务报告中的事件以结构化形式出现。 Yang等人提出的DCFEE。 [29]实现了股权冻结,质押,回购以及增加或减少财务公告的持有量的提取。 DCFEE模型通过使用远程监督来扩展训练语料库,并将事件提取分为两个阶段的子任务。在第一阶段,执行句子级事件提取任务。将Bi-LSTM(双向长短期记忆)[30]和CRF(有条件随机场)[12]组合在一起以标记句子中的事件元素,然后通过词典检测事件触发词。在第二阶段中,将已识别的事件元素和事件触发词与当前句子作为输入连接在一起,而CNN用于确定当前句子是否为事件句子。Doc2EDAG等。 [9]将事件转换为基于实体的有向无环图(EDAG),该图可以将硬时隙填充任务转换为几个顺序的路径扩展子任务。此外,Doc2EDAG设计了一种用于路径扩展的存储机制,以有效地支持EDAG生成。

3. Model

在本节中,我们首先提供我们的模型TDJEE的概述。在此基础上,提出了基于fonduer的知识库的构建方法。在此基础上,详细介绍了改进的基于远程监督的事件标注方法。接下来,我们将介绍TDJEE的文档编码、事件参数提取、事件类型检测等细节。最后讨论了TDJEE的一个损耗函数。

3.1. TDJEE概述

TDJEE的主要思想是将更丰富的上下文信息整合到句子表示中。图2显示了TDJEE模型的概述。

TDJEE首先实现了三层文档编码,即使用BERT生成金融文档的令牌嵌入。然后,事件提取主要包括两部分:事件参数提取和事件类型检测。事件参数提取是一个序列标记任务。在事件参数提取模型中,BERT首先对文档进行编码,提供文档的语义向量表示。然后,通过前馈神经网络将高维的文档表示映射到低维的文档表示,最后由CRF层识别事件参数实体。事件类型检测可以看作是一种典型的分类任务。在事件类型检测中,使用基于变压器的关系感知编码器来捕获多句中的上下文信息。然后,将事件参数提取的结果整合到句子表示中,用于最终的分类。

3.2 基于fonduer的知识库构建

Fonduer是一个基于机器学习的丰富格式数据的知识库构建(KBC)系统,它使用深度学习模型自动捕获表示(即特征)[14]。图3给出了事件知识库的构建框架。事件知识库的构建主要分为三个阶段:数据预处理、利用预定义的基于规则的matcher对事件候选集进行匹配和过滤、为候选事件集生成多模态特征和训练弱监督分类模型。

3.2.1 数据预处理

本文主要研究五种类型的财务公告事件。不同的事件类型使用不同的数据库来存储提取的结构化事件。数据库中表的结构与事件本体的类型相对应。

在数据预处理期间,使用pdfminer(https://github.com/pdfminer/pdfminer.six,2021年1月15日)将PDF格式的财务公告转换为HTML格式,并将所有公告输入到Fonduer中。 PDF格式的数据负责提供视觉信息,而HTML格式的数据负责提供文本和结构化信息。 Fonduer系统首先解析HTML格式的数据以识别段落,句子,表格等,然后将解析的内容转换为Fonduer定义的数据模型。 Fonduer中的数据模型是有向无环图(DAG),可以清楚地描述文档上下文之间的层次结构。图中的每个节点代表一个上下文。 DAG的根节点是相应的文档。一个文档可以分为几章。这些章节包括文本,表格和图片。文本按段落划分,每个段落由不同的句子组成。对于表格数据,可以对行,列和标题属性进行分段。请注意,公告数据不包含图像内容。使用Fonduer数据模型的优点是它可以从文档中的不同上下文中提取事件参数,并形成候选事件。

3.2.2 候选事件集生成

为了生成候选事件集,首先要设计一些匹配器过滤器。 PersonMatcher,DateMatcher,OrganizationMatcher和NumberMatcher用于匹配已命名的实体,例如人的名字,日期,组织名称和出现在句子中的数字。这些命名的实体标识符由spaCy提供(https://github.com/howl-anderson/Chinese_models_for_SpaCy,2021年3月26日)。 DictionaryMatcher用于匹配预定义词典中的事件参数。 RegexMatchSpan用于匹配基于正则表达式的句子中的合格事件参数。 LambdaFunctionMatcher包含由用户定义的函数,用于过滤输入的N-gram字符。最终可以获得多个事件参数。

由于不同实体的组合将形成一个新的候选事件,这可能导致候选事件的数量呈指数增长。因此,在生成的候选事件中存在大量否定示例。过滤器实质上是用户从大量公告中进行挖掘的一组规则。对于任何类型的事件,可以使用以下规则来过滤候选事件:

  • 规则1:如果多个事件参数具有相同的值,则可以过滤掉其余的参数。
  • 规则2:如果任何关键事件参数的值为空,则可以将其过滤掉。
  • 规则3:如果事件参数位于表结构中,则其他事件参数也应位于同一表的同一行中,否则可以将其过滤掉。

3.2.3 多模态特征和弱监督分类

为了有效地提高分类模型的性能,Fonduer为每个候选事件生成了一种多模态特征,包括文本特征,结构特征,表格特征和视觉特征。文本特性是词性和对应于事件参数的命名实体标记的连接。结构特征表示事件参数在原始HTML文档中的位置、相应的标记、属性和其他信息。表格特征表示诸如事件参数在财务公告表中的位置和属性距离等信息。视觉特征主要用来表示不同的事件论点是否具有相似的视觉特征。事件的多模态特征由上述特征串联起来,用于弱监督分类任务。

如图4所示,在弱监督分类中,用户首先通过标记功能为数据提供弱监督标签,然后使用分类模型从手动标记的数据中学习潜在的关系,使用测试数据来验证模型的性能,最后,用户通过观察模型的性能来调整标记功能。这样的过程是迭代的。最终将训练具有更好性能的分类模型。使用此模型标记所有候选事件后,可以获得结构化事件知识库。这里,标记功能是数据编程范例,其以编程方式标记候选事件,即,将候选事件标记为正/负示例或跳过标记。

​ 图4. 事件标记的过程

3.2.4 事件本体

表1显示了五种公告的事件本体:股票回购(ER),股票冻结(EF),股票低配(EU),股票超重(EO)和股票质押(EP)。事件本体定义了形成结构化事件所需的事件角色信息,包括两种关键角色和非关键角色。关键角色是形成事件的必要信息,例如ER中的公司名称和已发行股份。没有任何关键作用,就无法形成完整的结构化事件。

表1. 股票回购(ER),股票冻结(EF),股票低配(EU),股票超重(EO)和股票质押(EP)的事件本体

3.3 基于远程监督的事件标签

根据基于知识库的远程监管数据标记方法[31],我们首先构建基于Fonduer的金融事件知识库,然后使用远程监管方法将知识库与文档(即公告)对齐,以获取大量信息。标签数据。

使用远程监督方法使知识库与非结构化文本对齐可以自动构建大量的训练数据,从而减少了对人工注释数据的依赖。这种方法的缺点是假设过于肯定,会引入很多噪声。在事件提取中,一个事件包含多个事件自变量,并且事件自变量可能分散在多个句子中。因此,传统的远程监督方法不适用于事件自变量的标记。在本文中,我们改进了远程监管方法中知识库与非结构化文本的对齐方式,并使用定向链接方法将知识库中的知识与文本进行匹配,如图5所示。

具体来说,我们使用PDF解析工具将PDF格式的公告文档转换为文本格式。然后,我们清理文本数据。数据清洗是对转换后的文本进行标准化,主要包括对乱码进行过滤和根据特殊符号对句子进行分段。然后,我们根据文档ID从知识库中检索文档中的结构化事件,并使用BIO(开始、内部、外部)格式标记事件参数。注释结果通过两个条件进行筛选:

(1)事件必须包含由事件本体定义的关键角色(如个人或公司);

(2)文档和事件本体具有相同数量的事件角色。

最后,我们得到了五种类型的事件:股权冻结(EF)、股权回购(ER)、股权减持(EU)、股权增持(EO)和股权质押(EP)的有标记数据的语料。

3.4 文档编码

近年来,预训练语言模型在许多自然语言处理任务中取得了良好的效果。在本文中,我们利用BERT嵌入文档来捕获句子边界之外的上下文信息。在用BERT对文档进行编码之前,我们首先将文档D分割成几个序列{s1, s2, s3,…, S q},其中q为句子个数。每个序列的长度小于128。然而,直接截断长度大于128的句子会导致事件论元在预测时的不完全性。我们选择最大索引值小于128的标点符号作为句子的切割位置。句子的数量在不同的文档是不同的,为了能够使用伯特模型批量计算句子中的每个字符对应的向量表示,我们限制允许的最大数量的句子每个文档的文档和修复输入64 * 128的二维矩阵。也就是说,句子的数量不超过64个,句子的长度不超过128个。如果句子的数量超过限定值,它将被直接截断。否则,如果句子数量小于限制值,空白行将用字符填充,并结合掩码来表示实际的句子长度和数量。最后,文档可以表示为式(1):

你可能感兴趣的:(阅读笔记,自然语言处理)