文章目录
1 简介
论文题目:Event Extraction via Dynamic Multi-Pooling Convolutional Neural Networks
论文来源:ACL 2015
论文链接:https://aclanthology.org/P15-1017.pdf
1.1 动机
- 目前的事件抽取方法使用的人工设计的特征,消耗大量的人力,而且容易遭受错误传播和数据稀疏问题。
- 传统CNN+max-pooling只能关注句子中最重要的信息,但是一个句子中可能存在多个事件。
1.2 创新
- 提出一个新的事件抽取框架,自动地提取词汇和句子级别的特征,不使用复杂的NLP预处理。
- 提出动态多池化卷积网络(DMCNN),力求从句子中捕获更多的有价值信息用于事件抽取。
2 方法
在本篇论文中,将事件抽取分为两个阶段,第一个阶段是触发词分类,使用DMCNN对句子中的每个词进行分类,如果句子中存在触发词,则进行第二个阶段论元分类,使用类似的DMCNN结构分配触发词的论元和论元的角色。由于第二阶段更复杂,下面先介绍论元分类的方法,总共分为word-embedding learning、lexical-level feature representation、sentence-level feature extraction,argument classifier四部分,结构如图。
Word Embedding Learning and Lexical-Level Feature Representation
单词级别的特征由候补单词和上下文单词(左右窗口内的单词)的词向量表示。词向量使用Skip-gram模型训练,通过最大化下面概率计算w1、w2……wn(c为窗口的尺寸)。
Extracting Sentence-Level Features Using a DMCNN
DMCNN的输入包括下面三部分:
- Context-word feature: 把整个句子的全部单词当作上下文。
- Position feature: 当前单词到被预测的触发词或候补论元的相对距离,随机初始化。
- Event-type feature: 第一阶段预测的事件类型。
对上面拼接的向量做CNN,公式如下:
对于单个max-pooling对于事件抽取来说是不高效的,因为一个句子中可能包含多个事件,一个论元可能在不同触发词中扮演不同的角色。因此,在论元分类阶段,将特征图根据候补论元和预测触发词分成三部分,混合每个部分的最大值,称为dynamic multi-pooling,公式如下(1≤i≤3表示一个部分),得到句子级别的特征P。
然后将单词级别和句子级别的特征拼接为F=[L,P],进行分类,使用dropout进行正则化,公式如下:
最后接一个softmax,公式如下(O代表输出,θ为参数):
损失函数定义如下:
Model for Trigger Classification
使用触发词分类的模型与论元分类的类似,不同之处如下:
- 对于单词级别的特征,该阶段仅使用候补触发词和它左边和右边的特征表示。
- 对于句子级别的特征,位置特征编码仅根据候补触发词的位置。
- dynamic multi-pooling阶段,根据候补触发词将句子分为两部分。
3 实验
以下面标准预测事件的正确性:
- 触发词的事件子类型和偏移量与参考触发器匹配,则触发词正确。
- 论元的事件子类型和偏移量与参考论元提及中的任意一个匹配,则论元定义正确。
- 论元的事件子类型和偏移量和角色与参考论元提及中的任意一个匹配,则论元分类正确。
在触发词分类和论元分类使用不同的参数,实验结果如下:
根据句子中事件的数量将测试集分为(单个事件和多个事件两部分),结果如下:
第一个对比实验,证明DMCNN的高效,结果如下(Embdding+T(表示人工设计的句子级别特征)):
第二个对比实验,证明词向量的高效性,将数据集分类两部分,一部分仅在测试集出现为A,另一部分在测试集和训练集中都出现相同的事件类型或者论元角色为B,实验结果如下。
对比单词级别和句子级别特征的高效性。
4 总结
- 提出了一个事件抽取方法,可以自动地抽取单词和句子级别的特征。
- 提出动态多池化卷积层(DMCNN),以捕获句子中不止一个的重要信息。