0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

JMEE利用句法树以及GCN来建模多事件之间的关联

深度学习自然语言处理 来源:AI算法小喵 作者:阿墨 2022-07-21 10:30 次阅读

写在前面

今天要跟大家分享的是发表在EMNLP的一篇事件抽取的工作JMEEJMEE针对的是多事件触发词及角色联合抽取问题,其中多事件是指在待处理的同一文本范围内存在多个不同事件。

同一文本范围内的多个事件间通常具有一定的相关性,对相关性进行建模将有助于消除事件触发的歧义,提高事件抽取的效果。

本文分享的JMEE首先利用句法树将输入文本从序列模式转换到句法依存图模式,以此缩短token之间信息传递的距离;然后,在句法依存图上利用图卷积来进行节点信息聚合;最后,为了利用多事件之间的关联,设计了self-attention机制来计算上下文表征向量。结合以上方法,JMEE在多事件句的事件抽取任务上相对于其他方法取得了一定的提升。

1. 背景知识

在正式开始分享论文内容之前,我们先介绍下事件抽取。按照比较标准的定义,事件抽取本身包括两个子任务:

事件检测(Event Detection):检测触发词(最能代表一个事件发生的词),同时还要正确判定其事件类型

论元检测(Argument Detection):检测事件的相关元素,同时正确判定这些元素在这个事件中承担的角色

c356f3d8-0818-11ed-ba43-dac502259ad0.png

上图是一个直观的例子。图中左侧是常见的无结构化文本,右侧是事件抽取结果。事件检测发现了 "成立" 这个触发词,并且判定其事件类型为 "Construction" ;论元检测则发现了事件"construction" 发生的时间、地点、执行者以及所作用的对象。

2. 多事件

在第一节所示的例子里,一个句子中只出现了一个事件。实际上,更常见的情形是一个句子中存在多个事件

c38ad22a-0818-11ed-ba43-dac502259ad0.png

这里暂称只含一个事件的句子为单事件句,含多个事件的句子为多事件句。相对于单事件句而言,多事件句的事件抽取是相对更难

论文原文说 “因为多个事件之间往往是相互关联的,所以多事件抽取才更难” 。个人不太认可这个因果关系的说法。一方面,小喵觉得“多个事件判定比一个事件判定要难” 这个说法没问题,但不是因为事件之间的相关性让这个问题变得难;另一方面,事件之间的相关性真正的作用是有助于多事件场景中事件类型的判定。

c3b5bf30-0818-11ed-ba43-dac502259ad0.png

在多事件场景下单独对每一个事件进行判定很有可能出错。假设我们不知道 "巴萨" 代表的是“巴萨罗那足球俱乐部” ,那么“梅西即将离开巴萨"中的 “离开” 可能是“离开某个地方”,也可以是 “不在为球队效力” ;但是结合“计划签下”这个事件的意思,我们可以知道 “离开” 不是 “离开某个地方” 而是 “不在为球队效力”。

3. JMEE核心思想

3.1 整体思想

JMEE主要是通过引入句法树构建网络以及后续的GCN、self-attention来捕获事件间的相关性,从而获得更好的词/字的语义表征,在此基础上再进行后续的工作。其中,引入句法树是关键的关键。

3.2 为什么要引入句法树

我们来看下为什么要引入句法树。

c3ca75ba-0818-11ed-ba43-dac502259ad0.png

上图例子中共有两个触发词,即:“killed”和“barrage”,他们之间间隔了5个其他词。换句话说,从“killed” 到“barrage”需要6步 (6hop,6跳)。实际上,多个事件触发词之间的距离可能远大于我们例子中的6。

另一方面,句中两个词的距离往往大于其在依存树中的距离,比如“killed”和“barrage”在句子中的距离为6,但在句法树中他们的距离仅仅为3。上图底部我用红色箭头标出了3跳的路径,红色的3个箭头组成了一个shortcut path。通过这个shortcut path,我们就可以使用较少的跳数,使信息从"killed"转移向"barrage"。也就是说,从句法树建模词与词的依赖关系更容易也更直接

所以JMEE引入句法树,利用句法树的依赖关系连接词/字,缩短词/字之间的信息传递需要的距离(跳数);此外,引入句法树后也可以自然地从图卷积的角度来进行后续的操作。

4. 模型细节

c400d31c-0818-11ed-ba43-dac502259ad0.png

现在我们来看下JMEE模型的具体细节。JMEE整体框架大体上包括4部分:词嵌入句法图卷积模块触发词检测模块论元检测模块。实际上,一直到句法图卷积模块都是在做表示学习

4.1 词嵌入

c430d8fa-0818-11ed-ba43-dac502259ad0.png

前面我们说引入句法树依赖关系后,很自然地就可以用图卷积的方式来做相应的词的表征了。但实际上,JMEE并没有一上来就这么做。因为如果完全依靠句法树里的依赖关系,某些词的左右词所涵盖的local context可能就被忽视了(本来直接一步或几步就能达到却变成需要很多步之后才能到了)。所以,JMEE选择先利用双向LSTM来捕获这种local context

其中为输入文本中第个token(词或字)的表征向量,其利用了实体、词性、位置等信息,具体地由以下四个向量拼接而成:

词嵌入(word embedding):从预先训练好的词向量模型中获得,JMEE选择的词向量模型为Glove

词性嵌入(Pos-tagging label embedding):利用随机初始化Pos-tagging label embedding table将的词性标签转换成实值向量;

位置嵌入(Positional embedding):假设是当前词,那么为与的相对距离;利用随机初始化的Position embedding tabel将转换为实值向量;

实体类型的嵌入:利用随机初始化的entity label embeeding label将对应的BIO实体类别标签如B-Name转换为实值向量。

LSTM层的输出作为图卷积的初始值。

4.2 图卷积

文章没有给出具体的网络图,所以下面我们直接来看公式。

图卷积部分整体上是比较简单的,把句中词/字当作网络图中的节点利用节点的邻居来加权表征节点自己。这里的关键在于邻居节点以及边类型的定义。

节点

举个例子,假设当前节点是下图中的“arrested”,它的邻居节点就是与它通过句法依赖直接关联的词“police”、“connection”。注意,可能包括自己,因为可能有自环。

边及边类型

至于节点间的连边以及边类型JMEE直接利用的是句法依赖关系。所以,这个例子中节点 “police“ 与节点 “arrested”,连边类型为:

节点“police“ 与节点 “connection” 相连,连边类型为:

图卷积

c45b056c-0818-11ed-ba43-dac502259ad0.png

图卷积模块的第层,节点的图卷积向量为:

这里表示边(u,v)的类型标签;而、则分别是与类型标签的相关的权重参数偏置参数;是激活函数;词嵌入模块的最终输出,即。

连边类别重新定义

假设,句法依赖关系共有种,再加上反向边和自环后,一层图卷积层就会有个权重参数偏置参数,这个参数量太大了。为了减少参数量,JMEE重新定义了边类型,最终只维护了3种类型标签:

c4f2ffb6-0818-11ed-ba43-dac502259ad0.png

门控机制highway units

c50a7cc2-0818-11ed-ba43-dac502259ad0.png

前面图卷积的公式相当于每次卷积的时候每个邻居都对当前节点的表征做了贡献。但实际上,不是所有的邻居或者说所有的边都是有益于表征的,有些词可能会增加歧义性。所以,JMEE增加门控机制,为有不同类型标签的边分配不同的权重,这也可以看成是加权邻居的贡献:

其中,为边的权重。图卷积存在一个问题,即over-smooth/information over propagation。换句话说,节点在拓扑上互相传播信息,利用其他节点的信息更新自己的信息(汇聚节点信息),当卷积深度不断增加时,处于同一连通分支的节点的表征会趋于一致。针对这个问题,JMEE增加了highway units。最终在原始信息转移信息新的表征信息共同作用下,获得节点的图卷积向量:

这里,通常被称为transform gate,则称为carry gate。个人觉得这个思想与跟残差网络思想(允许原始输入信息直接传输到后面的层中)类似。

4.3 事件、论元检测

事件检测事件论元检测部分都是分类模型。

c5384d46-0818-11ed-ba43-dac502259ad0.png

将每个token(词/字)做为当前token,再经过词嵌入及句法图卷积模块都获得了所有token的向量表示。进一步,为了利用事件触发词之间的关联关系,JMEE设计了self-attention机制用于信息聚合。简单地说,JMEE认为在判断一个token的触发词标签时需要考虑到其他可能的触发词的信息,比如前面例子中的“离开”与“计划签下”。具体地,假设(文本序列中的第个token)为当前token,那么与之相关的上下文向量按如下方式计算:

这里代表归一化操作。可以看到主要由两部分组成,其一是的向量,其二是其余token的向量按attention权重加权后的表征。

事件检测

对进行触发词标签判定,只需要将其上下文向量送入一个简单的分类器,如下:

这里的是非线性激活函数,最终就是的触发词标签。JMEE标签体系选取的是BIO,所以经过事件检测模块就可以得到类似于序列标注的结果如“O,...,O,B-Name,I-Name,O,...,O,B-Loc,I-Loc,I-Loc,O,...,O”。我们基于这个结果序列就可以获得候选事件触发词。

论元检测

显然候选事件触发词、实体都是连续的文本片段(即tokens的子序列)。对每一对候选触发词和实体,我们从向量中获得其相关子序列中每个token的向量,然后利用max-pooling汇聚向量信息获得候选触发词的向量以及实体的向量。将和拼接后送入全连接层进行论元角色的判定:

结果表示的是第个实体在第个候选触发词所对应的事件中扮演的角色。这里需要补充一点,一般事件抽取认为输入文本中的实体即是候选论元,所以JMEE做论元检测时同于对实体进行角色分类。

5. 实验

5.1 实验数据

实验数据选择的是ACE2005,下面是它的具体信息:

c5587288-0818-11ed-ba43-dac502259ad0.png

5.2 实验结果

整体性能比对

c585744a-0818-11ed-ba43-dac502259ad0.png

JMEE与其他方法的整体性能比对结果来看,无论是在事件检测(触发词识别、触发词分类)还是论元检测(论元识别、论元角色分类),JMEE都取得了最佳的效果。

单事件、多事件场景比对

c5ae66f2-0818-11ed-ba43-dac502259ad0.png

从 纯粹的单事件抽取(1/1) 和 纯粹的多事件抽取(1/N) 比对结果来看,在多事件抽取场景下,尤其在事件检测任务上JMEE相对于对比方法的提升更大。

总结

今天我们分享了事件抽取模型JMEE,它主要是利用了句法树GCN以及self-attention来建模多事件之间的关联,从而提升多事件场景下事件抽取的效果。


审核编辑:刘清

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 图卷积网络
    +关注

    关注

    0

    文章

    7

    浏览量

    1500
  • GCN
    GCN
    +关注

    关注

    0

    文章

    5

    浏览量

    2274
  • LSTM
    +关注

    关注

    0

    文章

    43

    浏览量

    3733

原文标题:一文详解多事件抽取模型JMEE

文章出处:【微信号:zenRRan,微信公众号:深度学习自然语言处理】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    一种基于决策的飞机级故障诊断建模方法研究

    现代飞机是由许多子系统组成的复杂系统,系统结构层次多,关联度高,故障之间存在横向和纵向传播性。因此,在健康管理技术实施过程中,应最大程度利用故障特征监测技术,并借助各种算法和智能模型
    的头像 发表于 11-16 16:40 918次阅读
    一种基于决策<b class='flag-5'>树</b>的飞机级故障诊断<b class='flag-5'>建模</b>方法研究

    依存句法分析器的简单实现

    生成式句法分析指的是,生成一系列依存句法树,从它们中用特定算法挑出概率最大那一棵。句法分析中,生成模型的构建主要使用三类信息:词性信息、词汇信息和结构信息。前二类很好理解,而结构信息需要特殊语法标记
    发表于 10-17 13:12

    基于CRF序列标注的中文依存句法分析器的Java实现

    这是一个基于CRF的中文依存句法分析器,内部CRF模型的特征函数采用 双数组Trie(DoubleArrayTrie)储存,解码采用特化的维特比后向算法。相较于《最大熵依存句法分析器的实现》,分析
    发表于 01-16 14:21

    基于本体和句法分析的领域分词的实现

    针对基于字符串匹配的分词方法、基于理解的分词方法和基于统计的分词方法所存在的缺陷,提出基于本体和句法分析的某领域分词方法,通过建立体裁本体进行句法分析,从智能
    发表于 04-09 09:10 20次下载

    基于集合枚举的最小预测集挖掘算法

    为缩减关联规则存储空间和方便查询关联规则,提出一种前件为单一项目的最小预测集算法。利用集合枚举找到最大频繁项目集,据此挖掘最小预测集。对
    发表于 04-23 10:17 21次下载

    利用UML映射工具实现系统可靠性建模

    许多可靠性建模技术是基于可靠性框图、故障、Markov 链等表示方法,但系统架构师、产品经理和软件开发者往往对这些表示方法不太熟悉,他们通常使用统一建模语言UML)
    发表于 05-30 14:00 17次下载

    基于FP_的时空关联规则挖掘算法研究

    基于FP_的时空关联规则挖掘算法研究_张雪萍
    发表于 01-07 19:08 0次下载

    基于八叉的三维地质建模系统设计研究李灿辉

    基于八叉的三维地质建模系统设计研究_李灿辉
    发表于 03-16 08:00 0次下载

    Quasi-TreeIJSTMs一种针对句法树的混合神经网络模型的介绍和实验分析

    关联性使其训练效率不高,该文提出一种针对句法树的混合神经网络模型,借助TBCNNs的卷积和池化方法实现了类似TreeILSTMs的计算,故将此模型命名为Quasi-TreeIJSTMs。该文在依存
    发表于 09-17 15:14 3次下载
    Quasi-TreeIJSTMs一种针对<b class='flag-5'>句法树</b>的混合神经网络模型的介绍和实验分析

    什么是Transition-based基于转移的框架?

    用在生成依存句法树上,则具体表示为从空状态开始,通过动作转移到下一个状态,一步一步生成依存句法树,最后的状态保存了一个完整的依存。依存分析就是用来预测词与词之间的关系,现在转为预测动
    的头像 发表于 03-19 13:40 5085次阅读
    什么是Transition-based基于转移的框架?

    自然语言处理中极其重要的句法分析

    深层文法句法分析,即利用深层文法,例如词汇化邻接文法(Lexicalized Tree Adjoining Grammar,LTAG)、词汇功能文法(Lexical Functional
    的头像 发表于 04-09 10:23 1.3w次阅读

    什么是句法分析

    要深入研究句法分析,首先要知道,什么样的句法分析算是好的句法分析,所以句法分析方法的评价是首要思考的问题,目前进行句法分析,主要是用依存
    的头像 发表于 11-24 09:36 7903次阅读
    什么是<b class='flag-5'>句法</b>分析

    基于ST-GCN的人体动作识别与生成

    ST-GCN是TCN与GCN的结合。TCN,对时间维度的数据进行卷积操作;GCN,则对空间维度的数据进行卷积操作。GCN属于GNN,而GNN的基础是图论。神经网络处理的传统数据都是欧式
    的头像 发表于 03-15 09:50 3624次阅读

    设备的传递及kernel 对设备的解析

    当 U-Boot 将设备加载到内存指定位置后,ARM 内核的 SoC 以通用寄存器 r2 传递 dtb 在内存中的地址。kernel 获取到该地址后对 dtb 文件做进一步的处理。 设备的传递
    的头像 发表于 07-29 11:19 2348次阅读
    设备<b class='flag-5'>树</b>的传递及kernel 对设备<b class='flag-5'>树</b>的解析

    sql表与表之间如何建立关联

    在关系型数据库中,建立表之间关联是非常重要的,它可以帮助我们更好地组织和管理数据。在本文中,我们将详细讨论如何在SQL中建立表之间关联。 在SQL中,表
    的头像 发表于 11-23 11:38 2528次阅读