AGGCN | 基于图神经网络的关系抽取模型_DrugAI的博客-程序员宅基地

技术标签: python  机器学习  计算机视觉  深度学习  人工智能  DrugAI  

 

今天给大家介绍2019年6月发表在ACL上的论文“Attention Guided Graph Convolutional Networks for Relation Extraction”,该工作由新加坡科技设计大学StatNLP研究小组完成。该研究提出了一种以全依赖树作为输入的注意力引导图卷积网络(AGGCN)模型。该模型充分利用了依赖树中的信息,以便更好地提取出相关关系。

01研究背景

 

关系抽取是检测文本中实体之间的关系,它在生物医学文献挖掘方面有着不可或缺的作用。大多数现有的关系抽取模型可以分为两类:基于序列的关系抽取模型和基于依赖关系的关系抽取模型。基于序列的模型仅仅针对单词序列,而基于依赖关系的模型针对整个依赖关系树。因此基于依赖关系的模型更能捕获有用信息,利于关系抽取。为了进一步提高性能,许多学术者还提出了各种剪枝策略来提取依赖信息。

然而,在剪枝的同时,基于规则的剪枝策略可能会删除整个树中的一些重要信息。因此,该文章提出了一种新的注意力引导图卷积网络(AGGCNs),它直接对全树进行操作。该研究开发了一种“软剪枝”策略,将原始依赖树转换为完全连通带权图。这些图的权重被视为节点之间的相关性强度,并使用自我注意机制以端到端的方式学习。为了对大的连通图进行编码,该研究将密集连接引入GCN模型。在密集连接的帮助下,该研究能够对AGGCN模型进行深度较大的训练,从而能够捕获丰富的局部和非局部依赖信息。最后实验表明,AGGCN模型能够在不增加额外的计算下,学习更好的图形表示,该模型针对各种任务,表现出更好的性能。

02实验模型

 

AGGCN模型由几个基本组件构成,其模型如图1所示。

图1 带有示例语句及依存关系树的AGGCN模型

2.1 GCNs

GCN是直接在图结构上运行的神经网络。给定具有n个节点的图,用n×n邻接矩阵A表示。将边的方向性纳入模型来扩展GCN,以对依赖树进行编码。树中的每个节点添加一个自环,并包括依赖弧的相反方向,如果存在从节点i到节点j的边,则Aij = 1且Aji = 1,否则Aij = 0且Aji = 0。第l层的节点i的卷积计算输入特征是h(l-1),输出特征是hi(l),定义公式如下:

其中W(l)是权重矩阵,b(l)是偏差向量,ρ是激活函数(例如RELU)。hi(0)是初始输入xi,其中xi∈Rd,d是输入特征维度。

2.2 注意引导层

AGGCN模型由M个相同的块组成。每个块由三种类型的层组成:注意引导层、密集连接层和线性组合层。

在注意引导层中,通过构造注意引导邻接矩阵Ã,将原始依赖树转换为完全连通加权图。Ãi对应于完全连通图Gi,每个Ãij是从节点i到节点j的边的权重。Ã可以通过自我注意机制构建,并且可以作为后面的图形卷积层计算的输入。Ã的大小与原始邻接矩阵A(n×n)相同,不涉及额外的计算开销。Ã的计算如下所示:

其中Q和K都等于AGGCN模型的第l-1层的集合表示h(l-1)。WiQ∈Rd×d和WiK∈Rd×d都是参数矩阵。Ã(t)是与第t个头部相对应的第t个注意导向的邻接矩阵。最多可以构造N个矩阵,其中N是一个超参数。

2.3 密集连接层

密集连接从任何一层引入直接连接到其前面的所有层。我们首先将gj(l)定义为初始节点,表示在第1,…,第l-1层中产生的节点表示的级联:

每个密集连接的层都有L个子层,这些子层的维度dhidden由L和输入特征维度d决定。在AGGCN中,作者使用dhidden = d/L。例如,如果密集连接的层具有3个子层,并且输入维为300,则每个子层的维度为dhidden = d/L = 300/3 =100。然后,将每个子层的输出连接在一起,形成新的表示形式。因此,输出维度为300(3×100)。AGGCN模型会随着层数的增加而缩小隐藏维度。

模型有N个不同的注意引导邻接矩阵,因此需要N个单独的密集连接层。因此,该研究将每个层的计算修改如下(对于第t个矩阵Ã(t)):

其中t=1,...,N。t取决于注意引导邻接矩阵Ã(t)相关联的权重矩阵和偏差项。权重矩阵的列维每个子层增加dhidden,即Wt(l)∈Rdhidden×d(l),其中d(l)= d + dhidden×(l -1)。

2.4 线性组合层

AGGCN模型只有一个线性组合层,以整合N个不同的密集连接层的表示。线性组合层的输出定义为: 

hout是合并N个独立的密集连接层的输出,即hout = [h(1); ...; h(N)]∈Rd×N。Wcomb∈R(d×N)×d是一个权重矩阵,bcomb是一个用于线性变换的偏差向量。

2.5 用于关系抽取的AGGCNs

关系抽取的目的是预测实体之间的关系。最后该研究将句子表示和实体表示连接起来以获得最终的分类表示。首先,需要获取句子表示形式。计算式为:

其中hmask表示被掩蔽的集体隐藏表示。掩蔽表示我们仅选择句子中的关系标记而不是实体标记。f:Rd×n→Rd×1是最大池化函数,可将n个输出向量映射到1个句子向量。类似地,我们可以获得实体表示。对于第i个实体,其表示hei的计算公式为:     

其中,hei表示与第i个实体相对应的隐藏表示。实体表示与句子表示合并形成新的表示。我们将前馈神经网络(FFNN)应用于关系推理中的级联表示:

其中hfinal作为逻辑回归分类器的输入,进行预测。

03实验

 

3.1 数据

该研究在交叉句子n元关系抽取和句子级关系抽取这两个任务上,评估实验模型性能。对于交叉句子n元关系抽取任务,该实验使用从PubMed中提取的6,987个三元关系实例和6,087个二元关系实例数据集。并考虑了两个特定的评估任务,即,二元类n元关系抽取和多类n元关系抽取。对于句子级关系抽取任务,该研究使用TACRED和Semeval-10 Task8数据集来评估。

3.2 设置

作者在注意引导层选择N个头部(N∈{1,2,3,4}),M个块(M∈{1,2,3});在密集连接层选择L个子层(L∈{2,3,4})。通过初步实验发现(N=2,M=2,L1=2,L2=4,dhidden=340)和(N=3,M=2,L1=2,L2=4,dhidden=300)的时候,分别对应的交叉句子n元关系抽取和句子级关系抽取效果是最好的。文章使用GloVe初始化词向量。

作者用五折交叉验证的平均准确率,来评估交叉句子n元关系抽取任务性能。用TACRED数据集的微观平均F1分数和SemEval数据集的宏观平均F1分数,来评估句子级关系抽取任务性能。

3.3 交叉句子n元关系抽取结果

作者将AGGCN与以这三种为基准模型做了比较:1)基于所有实体对的最短依赖路径特征分类器,2)图结构的LSTM,3)具有剪枝树的图卷积网络模型。对比结果如表1所示:

表1 二类n元和多类n元关系抽取五折交叉验证的平均测试精度

其中“T”表示三元“药物-基因-突变”关系,“B”表示二元“药物-突变”关系。Single表示单个句子内的准确率,Cross表示所有句子的准确率。GCN模型中的K表示预处理的剪枝树距离LCA子树中的依赖路径长度。从表中可以看成,作者提出的AGGCN模型准确率要优于以往所有的模型。

3.4 句子级关系抽取结果

在TACRED数据集中,作者将AGGCN与两种基准模型进行了比较:1)基于依赖关系的模型,2)基于序列的模型。比较结果如表2所示:

表2 TACRED数据集的结果

从表2可以看出,虽然LR模型在精度上有更高的分数,但它的召回率低。虽然PA-LSTM在召回率取得最高的分数,但在其他方面不如AGGCN模型。另外,作者在SemEval数据集上评估的结果如表3所示:

表3 SemEval数据集的结果。

观察两个表可知,无论在哪个数据集上,作者提出的AGGCN模型的F1值始终是最高的。结合这几个实验可得,AGGCN在各种关系抽取任务中都能取得最好的结果。

参考资料

https://www.aclweb.org/anthology/P19-1024/

 

代码

https://github.com/Cartus/AGGCN

 

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/u012325865/article/details/106726637

智能推荐

vue, H5 播放器video 嵌入APP(andriod,IOS) m3u8不能正常播放,总时长显示不正常,显示正在直播-程序员宅基地

m3u8是后端同事自己对mp4视频的切割处理,由于我们前端同事对这个格式的视频数据没有去了解,后端同事也不知道这个数据有错,导致我们走了很多的弯路。。一直以为是前端处理的插件不当导致的不能播放,试了很多是视频插件,后面用xgplayer-hls可以播放其他地方的m3u8数据,但是自己封装的m3u8不能播放,然后改用xgplayer-hls.js,哎,终于能播放了,但是发现这个.m3u8多次请求,正常是.m3u8只请求一次,后面都是请求.ts。多次请求.m3u8会造成服务器的负担,这个就行不通了。还发

标自然段的序号格式_word怎么自然段编号-word段落添加编号-word怎么分段编号_麦子与海的博客-程序员宅基地

WORD使用中如果之前有编号,中间段落需要按回车,如何让它不自动编号?1、取消一次自动编号中的某个编号。可以在换行时按“Shift+Enter”键(在本段落换行),Word就不会自动编号,需为下个段落编号时,回车一下,Word就会按照原来的编号次序,继续自动编号。 2、直接按回车(Enter)键二次,即可完全取消Word的本次自动编号。下次编号从1开始。 3、按下Ctrl+Z键,此时自动编号会消失..._为所有题目添加格式为1.2.3.编号怎么办

嵌入式实时操作系统ucosii——实时系统概念_简述ucos 实时操作系统的系统消息机制_pjc虽云乐的博客-程序员宅基地

1、前/后台系统后台行为:无限循环的应用程序,也可以叫做任务级前台行为:中断服务程序处理异步事件,也可以叫做中断级2、代码的临界段临界区:指处理时不可分割的代码(为了确保临界段代码的执行不被中断,在进入临界段之前必须关中断,而临界段代码执行完后,须马上打开中断)3、资源任何为任务所占用的实体都可称为资源。资源可以使输入、输出设备,也可以是一个变量、一个结构或一个数组4、共享资源可以被一个以上的任务..._简述ucos 实时操作系统的系统消息机制

基于Docker用Centos镜像安装MQ9.1版本_centos 安装websphere mq 9_胡学徒的博客-程序员宅基地

基于Docker用Centos镜像安装MQ9.1版本本次尝试安装MQ9.1版本在docker的centos容器中,安装完成之后生成固定的镜像,为今后需要提供MQ服务时提供方便的方式,以供学习和调试使用!相关步骤如下记录,操作之前需要安装许多的软件包在精简版的centos中一些命令会在之后的安装过程中被使用。步骤1:从docker镜像仓库中拉取centos:7.1.1503镜像docker ..._centos 安装websphere mq 9

万丈高楼平地起 功夫不负有心人_huxy_001的博客-程序员宅基地

作为一个已搬砖一年的底层coder,却深感个人技能、工作能力没能随着工作年限的增长而得到提高,还是依靠校园中打下的还不甚牢固的基础,勉强度日而已。在这个技术日新月异快速更新迭代的时代,不进则退,原地踏步即为退步,任何时候都不能停下学习的脚步!故一为勉励,更为督促,做为菜鸟,初入贵地,瞻大神之出神入化大技术,仰前辈之学而不辍大毅力,一步一脚印,踏出一片坦途。最后以一句‘万丈高楼平地起,功夫不

【跟着Head First学Python】3、结构化数据:处理结构化数据_结构化数据处理方法_一笑照夜的博客-程序员宅基地

上一章我们介绍了python中的列表,本章介绍其余三种数据结构:字典、集合和元组。1、字典字典有两个特点:其一,字典是由大括号{}包围的;其二,字典的每一个元素的模式都是“键:值”,而不是“键=值”,两个元素之间用逗号,隔开。注意,字典初始化的顺序不会保持,在初始化后,再次查看字典时,元素顺序可能变化。一般访问字典的数据时,使用中括号记法,中括号中是键,使用键来访问其关联的数据值。..._结构化数据处理方法

随便推点

s7-200 plc 梯形图转换成c语言的方法,S7-200PLC模拟量4-20mA转换成整数程序算法示例.pdf..._叶宇霖的博客-程序员宅基地

S7200PLC 模拟量4 -20 mA 转换成整数程序算法示例S7200PLC 模拟量4 -20 mA 转换成整数程序算法示例,以及模拟量数据滤波平缓处理,消除曲线的尖峰毛刺程序示例。连续采集10 个数,找出最大值,最小值,十个值相加-减去最大值和最小值,除以8,求平均值,即可,数显示比以前稳定多了。1、以下程序是把4 -20mA 对应的400 -1200 度的量程的测温探头的温度转换2、模拟..._plc梯形图可以转c语言吗

苹果vs剪辑下载_Mac上有哪些好用的视频剪辑软件-程序员宅基地

1.iMovie苹果的原生视频剪辑软件,操作简单,视频剪辑的小白可以先尝试使用这款软件去进行一些简单的操作。iMovie是一款由苹果出品的视频剪辑软件。iMovie剪辑因为其界面功能的简洁而受到欢迎,大多数的工作只需要简单的点击和拖拽就能完成。有些同学可能会有疑问,iMovie不是免费的吗?是这样的,每一台mac都会自带iMovie,绑定Apple ID,如果有一天你进入Apple Store看要..._vs剪辑通行证下载苹果

基于 Formily 的表单设计器实现原理分析 ​_formily 生成单选框_青云技术社区的博客-程序员宅基地

编者寄语:本期为大家带来基于 Formily 的拖拽式表单设计器玩法,探索可视化时代表单设计器的可能。背景在控制台类 web 应用中,表单是最常见的交互形式。用户在表单中填写信息,点击提交就能完成对数据创建或者修改操作。最开始,前端开发人员根据业务模型和具体需求,通过逐一编写或者声明实现表单中的各个字段,测试通过之后发布上线。渐渐地,开发人员开始把一些常用的方法抽象成表单库复用,提升开发效率。随着业务复杂度的增加和需求的不断演进,对表单的展示形式和灵活程度要求也在不断提高,现有的表单库只能解决部分._formily 生成单选框

MapJoin和ReduceJoin区别及优化_谦蓦的博客-程序员宅基地

MapJoin和ReduceJoin区别Map-side Join(Broadcast join)思想: 小表复制到各个节点上,并加载到内存中;大表分片,与小表完成连接操作。两份数据中,如果有一份数据比较小,小数据全部加载到内存,按关键字建立索引。大数据文件作为map的输入,对map()函数每一对输入,都能够方便的和已加载到内存的小数据进行连接。把连接结果按key输出,经过shuffle阶段,_mapjoin和reducejoin区别

linux coreutils升级,Coreutils_weixin_39928844的博客-程序员宅基地

Coreutils提供了配置工具,定义颜色代码更加方便;Coreutils包含的不仅仅是ls,同时作为Linux用户,我更习惯于使用GNU的各种shell工具。其实就是安装了Coreutils,就可以使用Linux下的程序,【ls/mkdir/mv】等等;3.2 安装Coreutils理论总是一衣带水,多之又多,操作起来其实是非常简单的。第一步 下载brew install coreutils第二..._linux coreutils

字符串拼接_snprintf拼接字符串_Caso_卡索的博客-程序员宅基地

本文总结记录Linux C中有关字符串的拼接方法,strncat 和 snprintf 函数_snprintf拼接字符串

推荐文章

热门文章

相关标签