余博涛,南京大学计算机科学与技术系,硕士研究生


论文连接:http://www.aclweb.org/anthology/N16-1034

发表会议:NAACL-HLT 2016

摘要

事件抽取(event extraction)是信息抽取中一个特别具有挑战性的问题。针对该问题的最先进的模型要么应用流水线框架(pipelined framework)的卷积神经网络(convolutional neural networks),要么采用通过具有丰富的局部和全局特征进行结构化预测(structured prediction)的联合架构(joint architecture)。前者基于连续和泛化的单词表示,能够从数据中自动学习隐藏特征表示,而后者则能够减缓流水线方法的错误传播问题,并通过离散结构来利用事件触发词(trigger)和论元角色(argument role)之间的相互依赖关系。在本文的工作中,我们提出了一个双向循环神经网络(bidirectional recurrent neural networksbidirectional RNN)的联合框架来进行事件提取的方法,从而受益于前面所述的两个模型的优点,并解决现有方法中固有的问题。我们系统地研究了此联合模型的不同记忆特征(memory features),并验证该模型在ACE 2005数据集上达到了最好的性能。

模型介绍

1. 概览

文章所提出的模型是基于ACE所定义的事件抽取任务,该任务包含4个子任务:触发词检测(找出句子中代表事件发生的词)、触发词分类(将触发词分类到预定义的8种类型、33种子类型中)、论元检测(检测事件的参与元素)和论元角色分类(将论元分类到预定义的35种论元角色中)。

本文对事件抽取任务建模如下:将一个句子记为,其中为句子中第token即为句子长度;将该句中的实体提及(entity mention)记为,其中是实体提及的数量并且可以为0,它包含实体在句子位置和实体类型的信息;将实体提及的最后一个词在句中位置的索引记为。对于句子中的每个,我们需要预测其事件类型,如果是我们所关心的事件的触发词,则继续预测每个实体提及关于该事件(触发词)的论元角色。因此,事件抽取可定义为分别针对触发词和触发词-论元对的分类问题。

本文所构建的模型如图1所示,主要分为编码(encoding)和预测(prediction)两个阶段。其中编码阶段使用RNN来获得句子的更抽象的表示,而预测阶段则是使用这个表示来同时预测事件触发词子类型和论元角色。

2. 编码

2.1 句子编码

该阶段将以下三个向量串联,将每一个token 转换成一个实数向量

1) w_i 的词嵌入(word embedding)向量

通过查询预训练的词嵌入表获得。

2) w_i 的实体类型嵌入(entity type embedding)向量

采用BIO标注方法对token的实体类型赋值,并通过查询随机初始化的实体类型嵌入表获得该向量。

3) w_i 与依存树(dependency tree)相关的二值向量

该向量的维度等于依存树中所有可能的关系的数量,对句子做依存关系分析得到依存树,如果对于,依存树中有一边与其相连,则向量中这条边的依存关系对应的维度上置为1,其他维度为0

对于每个 w_i 进行转换,就能将句子 W 转换为实数向量序列 X=(x_1,x_2,⋯,x_n)

2.2 Recurrent Neural Networks

作为RNN的输入序列,学习句子信息的更加有效的表示。对于步骤 iRNN使用当前步骤的输入向量 x_i 和上一步的隐藏向量 α_(i-1) 计算当前步骤的隐藏向量 α_i,即 α_i=Φ(x_i,α_(i-1),其中 Φ 是非线性转换函数。本文使用的是以GRU为单元的RNN,并且为了解决在第步时正向RNN不能获取其后面的特征信息的问题,本文采用了双向RNN。记正向RNN ,逆向RNN。将正向和逆向的隐藏向量串联起来,组成向量 ,该向量封装了着眼于 w_i 的整句话的上下文信息。

3. 预测

在预测阶段,模型预测触发词子类型和论元角色。需要注意的是,本文提出使用记忆向量和记忆矩阵对论元角色、触发词子类型之间的依赖关系进行编码。对于每一步,依次进行如下步骤:

3.1 触发词预测

在触发词预测阶段,对于当前token w_i,首先串联以下向量,得到特征表示向量 .

1) h_i

通过双向RNN得到的隐藏向量,其包含输入序列的全局上下文信息。

2)

对于 w_i 的局部上下文向量,由该token为 d 中心的大小的窗口中的词的嵌入向量组成,即

3)

上一步的记忆向量。

随后,将特征表示向量 输入一个具有 softmax 输出层的前馈神经网络 F^{trg}中,计算该token在所有可能的触发词子类型上的概率分布,其中 t 为一种事件子类型,最终得到对于 w_i 的预测事件子类型 。若 w_i 并非我们关注的事件类型的触发词,则将 t_i 赋值为“Other”。

3.2 论元角色预测

在论元角色预测阶段,首先检查上一阶段的触发词预测结果 t_i 是否为“Other”,即非触发词。如果是的话,可以直接将 全部置为“Other”并跳至下一阶段。否则,需要针对每一个实体提及 e_j,预测其关于触发词 w_i 的论元类型。类似地,串联以下向量获取 e_j 和 w_i 的特征表示向量

1) h_i 和 h_{i_j}

分别为双向RNN中对应 w_i w_{i_j}的隐藏向量,其中 w_{i_j} 代表 e_j 中最后一个词所对应的token

2)

对于 w_i w_{i_j} 的局部上下文向量,由分别以 w_i w_{i_j} 为中心的 d 大小的窗口中的词的嵌入向量组成,即

3) B_{ij}

对于 V_{ij} 的隐藏向量,其中 V_{ij} 是前人工作中所提出的表达 w_i w_{i_j} 之间的局部论元特征信息的二值特征向量,这些特征包括最短依赖路径、实体类型和子类型等,而 B_{ij} 则通过将 V_{ij} 输入前馈神经网络 F^{bianry} 获得,即

4)

分别为上一步的记忆矩阵 e_j 所对应的行向量。

接下来,类似地,将特征表示向量 输入到具有 softmax 输出层地前馈神经网络 F^{arg}中,获得在所有论元角色上的概率分布 ,其中 a 为一种论元角色,最终获得对于 w_i e_j 的论元角色预测结果。若 e_j 并非我们关注的论元角色,则将 e_j 赋值为“Other”。

3.3 更新记忆向量/矩阵

本文提出使用记忆向量/矩阵来编码触发词和论元之间的依赖关系,具体如下:

1) 记忆向量编码触发词子类型之间的依赖

,其中是所有可能的触发词子类型的数目,该向量的更新策略为

即若 w_i 的触发词子类型被预测为 t_i ,则对应维度置为1,否则不做更改。这个记忆向量“记住”了到第 i 步为止,有哪些触发词子类型被预测。

2) 记忆矩阵编码论元角色之间的依赖

,其中 i=0,⋯, n 是本句中所有事件提及的数目,n_A 是所有可能的论元角色的数目,该矩阵的更新策略为

即若被 w_i 预测为是事件触发词,且 e_j 关于 w_i 的论元角色被预测为a_{ij},则将矩阵中对应实体提及的 e_j 行和论元角色 a_ij 的列置为1,否则不做更改。这个记忆矩阵“记住”了到第 i 步针对 w_i 和 e_j 的论元角色预测为止,有哪些实体提及已经被预测成了哪些论元角色。

3) 记忆矩阵编码论元角色和触发词子类型之间的依赖

即若 w_i 被预测为是事件触发词且其子类型为 t_i ,则将矩阵对应实体提及 e_j 的行和触发词子类型 t-I 的列置为1,否则不做更改。这个记忆矩阵“记住”了到第 i 步针对 w_i 和 e_j 的论元角色预测为止,有哪些论元角色和触发词子类型被预测。

4. 训练

训练过程使用log似然函数作为损失函数,使用mini-batchAdaDeltaupdate rule的随机梯度下降算法优化模型,训练时也同时优化词嵌入表和实体类型嵌入表。

模型分析

1. 数据集

本文使用一个大规模语料库预训练词嵌入表,使用ACE 2005语料库训练和评估事件抽取模型。

2. 记忆向量/矩阵的效果实验

本文在使用C-CBOW模型预训练词嵌入表的情形下,针对三个记忆向量/矩阵对事件抽取的触发词预测和论元角色预测的效果进行了实验,有或没有每一个记忆向量/矩阵构成了总共8种情形,它们的实验结果如下表。结果显示,G^{trg} 和 G^{arg} 的应用对结果没有提升、反而降低了,本文认为是触发词子类型间和论元角色间的依赖不够强,导致它们并未在此模型中起作用。而编码论元角色和触发词子类型之间依赖的 G^{trg/arg} 的应用则显著提升了实验结果。因此在后续实验中,模型仅应用 G^{trg/arg}

3. 词嵌入的评估

本文对使用不同词嵌入算法预训练词嵌入表的效果进行评估,结果如下表。其中RANDOM是随机初始化,WORD2VEC是前人工作中使用Skip-gram模型在Google News语料上训练的词嵌入表。结果显示,使用预训练词嵌入表的实验结果明显优于随机初始化,所以预训练词嵌入表对事件抽取任务有十分重大的意义。使用C-CBOW模型的效果优于其他模型,因此在后续实验中,预训练词嵌入表全部使用C-CBOW模型。

4. 与其他模型的对比实验

本文对比了Li’s baselineLiao’scross-eventHong’s cross-entityLi’s structureDMCNN,用JRNN指代本文所提出的模型,实验结果如下表。除了在触发词识别中略低于DMCNN模型,在其他任务中JRNN都取得了最好的效果,尤其是在论元检测和分类中,相比其他模型有较大的提升。实验结果证明了RNN和记忆特征在事件抽取任务中的特征表示的有效性。

5. 一句多事件的实验

本文对一句话中包含多个事件的情况下的性能进行了实验验证,结果如下表所示,其中1/1代表一句中仅有一个事件,1/N代表一句中有多个事件。结果显示,在不管是一个事件还是多个事件的多数情形下,本文模型都取得了最好的性能。仅仅在论元任务中对于一个句子仅包含一个事件的情况下,性能低于DMCNN,本文认为这是因为DMCNN对于论元使用了位置嵌入特征,而本文的记忆矩阵 G^{trg/arg} 在一个事件的情形下并未起作用。


OpenKG

开放知识图谱(简称 OpenKG)旨在促进中文知识图谱数据的开放与互联,促进知识图谱和语义技术的普及和广泛应用。

点击阅读原文,进入 OpenKG 博客。

论文浅尝 | 使用循环神经网络的联合事件抽取相关推荐

  1. 论文阅读05:基于循环神经网络的联合事件抽取-Joint Event Extraction via Recurrent Neural Networks

    公众号:数据挖掘与机器学习笔记 1.简介 事件抽取是把含有事件信息的非结构化文本以结构化的形式呈现出来,在自动文摘.自动问答.信息检索等领域有着广泛的应用.近些年来 ,事件抽取一直吸引着许多研究机构和 ...

  2. 论文浅尝 | 基于事理图谱的脚本事件预测

    论文笔记整理:邱圣广,南京大学硕士,研究方向为自然语言处理. 链接:https://www.ijcai.org/proceedings/2018/0584.pdf 绪论 1.  脚本事件预测 脚本事件 ...

  3. 论文浅尝 | 采用多层注意力机制的事件检测

    笔记整理:杨帆,浙江大学计算机学院硕士,研究方向知识图谱. 动机 事件编码(event encoding)之前的工作集中在提取实体,检测触发单词以及匹配预定义的模板,这些方法存在以下缺点:首先它们依赖 ...

  4. 论文浅尝 | 基于平行新闻的Bootstrapping关系抽取

    笔记整理:吴锐,东南大学大四本科生,研究方向为自然语言处理. Citation:Michael Glass, K. B. . (2012). Bootstrapping relation extrac ...

  5. 论文浅尝 | 图神经网络综述:方法及应用

    论文链接:https://arxiv.org/pdf/1812.08434.pdf GNN相关论文列表链接:https://github.com/thunlp/GNNPapers 近日,清华刘知远老师 ...

  6. 论文浅尝 | 利用多语言 wordnet 上随机游走实现双语 embeddings

    论文笔记整理:谭亦鸣,东南大学博士生,研究方向为知识图谱问答. 来源:Knowledge Based System 链接:https://www.sciencedirect.com/science/a ...

  7. 论文浅尝 | 当知识图谱遇上零样本学习——零样本学习综述

    随着监督学习在机器学习领域取得的巨大发展,如何减少人工在样本方面的处理工作,以及如何使模型快速适应层出不穷的新样本,成为亟待解决的问题.零样本学习(Zero-Shot Learning, ZSL)的提 ...

  8. 论文浅尝 | 近期论文精选

    本文转载自公众号 PaperWeekly, 对我们近期的论文浅尝进行了精选整理并附上了相应的源码链接,感谢 PaperWeekly! TheWebConf 2018 ■ 链接 | https://ww ...

  9. 论文浅尝 | 从 6 篇顶会论文看「知识图谱」领域最新研究进展 | 解读 代码

    本文内容源自往期「论文浅尝」,由 PaperWeekly 精选并重新排版整理,感谢 PaperWeekly. ISWC 2018 ■ 链接 | http://www.paperweekly.site/ ...

最新文章

  1. 【POJ1509】Glass Beads 【后缀自动机】
  2. info replication
  3. python中的序列类型和序列号_python~序列类型及操作
  4. 2020年第十一届蓝桥杯 - 省赛 - Python大学组 - C.跑步锻炼
  5. linux webapi测试,Webapi管理和性能测试工具WebBenchmark
  6. 语音编码分类及编解码标准
  7. 微软老兵 Antoine LeBlond 将正式离职
  8. 内核启动的汇编阶段——head.S文件
  9. ICCV 2021 第二届无人车视觉(AVVision)研讨会征稿
  10. IoC容器Autofac(2) - 一个简单示例(附demo源码)
  11. 大工13秋《计算机文化基础》在线测试1,大工13秋《计算机文化基础》辅导资料六...
  12. pytorch手动安装开发包
  13. mysql5.7编译安装
  14. 十七、Oracle学习笔记:视图操作和表复制
  15. 8位串行加法器 计算机组成原理,安尧-2013434158-计算机组成原理8位加法器实验报告.doc...
  16. 蓝色学校网站模板_中小学网站源码_学校网站管理系统
  17. c语言统计大写英文字母的个数,c语言 对任意输入的字符串,统计其中的大写字母和小写字母的个数...
  18. 关于大数据,你应该知道的50个专业术语
  19. vue项目,解决IE浏览器报Promise未定义的错误
  20. 为了旅游和梁定郊大吵一次,此行贿赠喜爱的朋友!!!

热门文章

  1. 追MM与设计模式的有趣见解
  2. 我张哥做的这ARM开发板,真酸爽!
  3. STM32的map文件学习笔记
  4. #define的高级用法
  5. java io流操作_十个Demo进行讲解Java中IO流的常用操作~
  6. 案例 github_2019年12月Github上最热门的Java开源项目,速来围观!
  7. Linux C高级编程——网络编程之UDP(4)
  8. ViceDinoSpecCtrlDlg.cpp
  9. hdfs复制文件夹_HDFS常用命令
  10. 四、Vue组件化开发学习笔记——父子组件通信,父级向子级传值(props),子级向父级传值(自定义事件),slot插槽