论文笔记&总结 | JRNN 事件抽取联合模型

原文:Joint Event Extraction via Recurrent Neural Networks (https://www.aclweb.org/anthology/N16-1034/

读此文之前,应有一些事件抽取的概念基础。

摘要:事件抽取是信息抽取领域一个具有挑战性的任务。本文提出了一个基于循环神经网络的事件抽取联合模型,既避免了管道模型中的误差传播问题,同时也考虑到了事件触发词和事件元素之间的关系。

引言:

事件抽取:标识文本中的触发器以及其指定类型和触发器对应的事件元素。触发器通常是引起一个事件的动词或动名词,而事件元素是参与这个事件的相关实体。

对于相同的事件可能有不同的表达,对于同一个表达可能在不同的语义环境表达不同的事件

比如:

attack a stronghold   /   fight a stronghold   这两个同为攻击事件

I like the apple.   在不同的语义环境中,苹果的语义也不同,可以是水果也可以是手机

对于事件抽取的方法主要有两种:

(1)管道模型:首先识别事件触发器,之后再进行事件元素的识别。

(2)联合模型:同时预测句子的事件触发器和事件元素。

联合模型缓解了管道模型存在的误差传播问题,并考虑了事件触发器和事件元素之间的依赖关系。

事件抽取任务描述

ACEAutomatic Content Extraction定义事件为:发生的事务或导致某个状态改变的事务。

Event mention: 事件发生的短语或句子,包含一个触发词和任意数量的事件元素

Event trigger: 能清楚表示事件发生的词

Event argument: 事件的参与者或者在事件中具有一个角色属性的实体信息。

(比如:人物、时间、地点、目标)

ACE事件类型包含8个大类和33个子类,每个子类都有固定的角色集需要事件元素来填充。

比如:死亡事件的角色包括地点受害者、和时间

所有事件的元素角色共有36种。

模型

论文笔记&总结 | JRNN 事件抽取联合模型

上图为文章的模型图,先讲一下具体用到的定义:

定义:

句子的表示:W =w1w2 . . . Wn,其中Wi表示句子中的第i个单词

Entity mention的表示:E = e1, e2, . . . , ek .

(每个Entity mention包含两个部分:实体头部的偏移量和实体的类型

分别i1, i2, . . . , ik表示每个Entity mention e1, e2, . . . , ek )的最后一个单词的索引。)

对于每个单词Wi 判断它是否是一个触发词:     是→进一步判断它的事件元素

                                                                         否→直接判断wi+1是否是触发词

整个模型分为两个阶段:编码阶段和预测阶段

对于编码阶段用到的词向量表示由三个部分组成:1.词向量编码

                                                                               2.wi的实体类型编码

                                                                               3.依存树的二维向量表示,向量维度取决于句子中所包含的依存关系。

之后用到了双向的GRU网络进一步提取了向量特征。

预测阶段:

为了同时抽取事件触发词和其对应的事件元素,创建了二进制记忆向量,分别是:

论文笔记&总结 | JRNN 事件抽取联合模型:trigger

论文笔记&总结 | JRNN 事件抽取联合模型

论文笔记&总结 | JRNN 事件抽取联合模型

这三个向量初始化为0,并在W的预测过程中更新。

 

输入:h1, h2, . . . , hn和初始化的记忆向量,联合预测阶段循环n次,对于每一次的

循环都进行以下几步:

1)对于Wi的触发词预测

Step1:首先计算Wi的特征向量表示,由三部分组成: 

  • 论文笔记&总结 | JRNN 事件抽取联合模型wi的隐藏层向量
  • 论文笔记&总结 | JRNN 事件抽取联合模型:  wi的局部上下文向量(将单词的向量连接到wi的上下文窗口d中生成)。

        论文笔记&总结 | JRNN 事件抽取联合模型= [D[wi-d], . . . , D[wi], . . . , D[wi+d]].

  • 论文笔记&总结 | JRNN 事件抽取联合模型上一步的记忆向量。

                                                                     论文笔记&总结 | JRNN 事件抽取联合模型

Step2之后将得到的向量输入到一个一层的前馈神经网络中,并连接一个softmax分类器,最后得到触发器的类型ti。

2)对于Wi的事件元素预测

首先判断触发器预测阶段的类别是否是other是→将所有的候选事件元素的角色信息(????????????????=1 to k)other

                                                                         否→循环所有entity mentione1, e2, . . . , ek。循环步骤为:

       step 1.计算候选事件元素ejwi的特征表示向量:

  • 论文笔记&总结 | JRNN 事件抽取联合模型wiejRNN隐藏层向量
  • 论文笔记&总结 | JRNN 事件抽取联合模型wiej局部上下文向量(将单词的向量连接到wiw????????上下文窗口d中生成)
论文笔记&总结 | JRNN 事件抽取联合模型= [D[wi−d],...,D[wi],...,D[wi+d],D[wij−d],...,D[wij],...,D[wij+d]]
  • 论文笔记&总结 | JRNN 事件抽取联合模型tokens i and 论文笔记&总结 | JRNN 事件抽取联合模型局部参数特征。
  • 论文笔记&总结 | JRNN 事件抽取联合模型论文笔记&总结 | JRNN 事件抽取联合模型ej一步的记忆向量

                                       论文笔记&总结 | JRNN 事件抽取联合模型

       step 2.之后同触发器预测的步骤,得到事件元素角色????????1,????????2,…,???????????? .

3)计算记忆向量

Trigger Memory:  

论文笔记&总结 | JRNN 事件抽取联合模型 nT是触发器类型的数量。

论文笔记&总结 | JRNN 事件抽取联合模型

在i时刻词向量表示之前已经识别到的事件类型。

Argument Memory:

论文笔记&总结 | JRNN 事件抽取联合模型 nA是元素角色的个数。

论文笔记&总结 | JRNN 事件抽取联合模型

表达了entity mention在i之前所扮演的元素类型

Argument/Trigger Memory:

论文笔记&总结 | JRNN 事件抽取联合模型

论文笔记&总结 | JRNN 事件抽取联合模型

表达了在i之前事件角色在哪些类型中已经出现过

输出:Wi对应的触发器类型ti,预测后的事件元素角色????????1,????????2,…,????????????以及当前步的三个记忆向量。

实验结果如下:

论文笔记&总结 | JRNN 事件抽取联合模型