利用动态多池化CNN实现事件提取

利用动态多池化CNN实现事件提取

本篇博客主要介绍论文[Event Extraction via Dynamic Multi-pooling Convolutional Neural Networks]的主要内容,以及复现论文的实验过程:


【摘要】:

传统的ACE事件抽取的方法首先依赖人工设计的特征和复杂的NLP工具。这些传统的方法缺少一般性,需要大量的人力成本,而且会产生误差传播以及数据稀疏问题。本文提出了一个新的事件抽取方法,目的是自动地抽取文本级别的以及句子级别的特征,不需要使用复杂的NLP工具。我们提出了一个单词表示模型来描述有意义的语义规律而且采用了一个基于卷积神经网络的框架来描述句子级别的线索。然而,CNN仅仅能描述句子中最重要的信息,而且当考虑多事件句子的时候可能丢失掉有价值的事实。我们提出了一个动态多池化CNN(dynamic multi-pooling convolutional neural network,DMCNN),为了保持更多的重要的信息,该方法根据事件触发器和参数使用动态的多池化层。实验结果证明我们的方法比其他最好的方法(state-of-the-art methods)都要明显地好。


介绍


事件抽取(Event Extraction):其目标在于发现事件特别类型的触发器以及事件参数。目前最好的方法是通过利用一系列通过文本分析以及语言学知识提取的精心设计好的特征。总体上,我们可以将这些特征分为两类:Lexical features 以及 contextual features。

词法特征(Lexical features):包括词性、实体信息以及形态学特征。目标是获取词语的语义以及词语背后的知识。提取传统的词法特征用以往传统的方法是one-hot 编码的方法。这种方式可能会遇到数据稀疏问题,以及不能充足地获取词的语义。

上下文特征(Contextual features):提取内部语义,最近CNN的改进以及被证明,能够有效提取一个句子中的词之间的语法以及语义知识。但是CNN通常是运用最大池化层去对整个句子的表示进行一个取最大值操作,以获取最重要的信息。但是,在事件提取中,一个句子可能包含,两个或者多个事件。而且,这些事件可能共享扮演不同角色的同一参数。


内容


在这篇论文中,作者提出了一种动态多池化CNN去解决上述问题:
为了解决词汇层线索(lexical-level clues)问题,介绍了一种词编码(word-representation)方法。
为了解决句子层线索(sentence-level clues)问题,发明了一种动态多池化CNN方法。根据触发词以及参数词返回句子中每一部分的最大值。论文的主要贡献有:

  1. 为事件提取提出了一个新颖的框架,它可以不通过复杂的NLP预处理过程,自动地从纯文本中提出Lexical-level features 以及 sentence-level features;
  2. DMCNN;
  3. .运用ACE2005事件提取数据集进行实验,发现实验效果比其他最好的方法都要好。

ACE2005


ACE项目是为了开发自动提取技术,为了支持自动处理源语言数据。自动处理,那时定义包括,分类、过滤以及基于源数据语言内容的选择。ACE为广播稿、新闻通讯社以及报纸数据标注了英语、中文、阿拉伯语标签。三种主要的ACE任务:实体检测与跟踪(EDT)、关系检测与描述(RDC)、事件检测与描述(EDC)。以及第四种,实体链接(LNK)。

事件描述(Event mention):一个短语或者句子,描述一个事件,包括一个触发器以及一些参数。
事件触发器(Event trigger):最能清楚表达事件发生的一个词,ACE中主要为一个动词或者名词。
事件参数(Event argument):一个事件中的一个实体描述,暂时性的表达或者值。
参数角色(Argument role):事件与参数之间的关系。

给定一篇英文文本,一个事件抽取系统能够预测出带有具体子类型的事件触发器以及每个句子的参数。ACE定义了8种事件以及33种子事件。这里,主要是直接利用ACE提供的实体标签。

事件描述以及句法分析器实例:

利用动态多池化CNN实现事件提取

上部分展示了两种事件描述共享了三个参数:Baghdad、cameraman、American tank。两种事件 描述:Die事件,触发器为“died”;Attack事件,触发器为”fired”。