AGGCN | 基于图神经网络的关系抽取模型

简介: AGGCN | 基于图神经网络的关系抽取模型

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


image.png

01研究背景



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


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


02实验模型

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

image.png

图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),定义公式如下:

image.png

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


2.2 注意引导层


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


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

image.png

其中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层中产生的节点表示的级联:


image.png

image.png

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


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

image.png

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


2.4 线性组合层


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


image.png

image.png

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

2.5 用于关系抽取的AGGCNs

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

image.png

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

image.png

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

image.png

其中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所示:

image.png

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


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


3.4 句子级关系抽取结果


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

image.png

表2 TACRED数据集的结果

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

image.png

表3 SemEval数据集的结果。

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

目录
相关文章
|
7月前
|
C++
基于Reactor模型的高性能网络库之地址篇
这段代码定义了一个 InetAddress 类,是 C++ 网络编程中用于封装 IPv4 地址和端口的常见做法。该类的主要作用是方便地表示和操作一个网络地址(IP + 端口)
344 58
|
7月前
|
网络协议 算法 Java
基于Reactor模型的高性能网络库之Tcpserver组件-上层调度器
TcpServer 是一个用于管理 TCP 连接的类,包含成员变量如事件循环(EventLoop)、连接池(ConnectionMap)和回调函数等。其主要功能包括监听新连接、设置线程池、启动服务器及处理连接事件。通过 Acceptor 接收新连接,并使用轮询算法将连接分配给子事件循环(subloop)进行读写操作。调用链从 start() 开始,经由线程池启动和 Acceptor 监听,最终由 TcpConnection 管理具体连接的事件处理。
252 2
|
7月前
基于Reactor模型的高性能网络库之Tcpconnection组件
TcpConnection 由 subLoop 管理 connfd,负责处理具体连接。它封装了连接套接字,通过 Channel 监听可读、可写、关闭、错误等
201 1
|
7月前
|
JSON 监控 网络协议
干货分享“对接的 API 总是不稳定,网络分层模型” 看电商 API 故障的本质
本文从 OSI 七层网络模型出发,深入剖析电商 API 不稳定的根本原因,涵盖物理层到应用层的典型故障与解决方案,结合阿里、京东等大厂架构,详解如何构建高稳定性的电商 API 通信体系。
|
9月前
|
域名解析 网络协议 安全
计算机网络TCP/IP四层模型
本文介绍了TCP/IP模型的四层结构及其与OSI模型的对比。网络接口层负责物理网络接口,处理MAC地址和帧传输;网络层管理IP地址和路由选择,确保数据包准确送达;传输层提供端到端通信,支持可靠(TCP)或不可靠(UDP)传输;应用层直接面向用户,提供如HTTP、FTP等服务。此外,还详细描述了数据封装与解封装过程,以及两模型在层次划分上的差异。
2010 13
|
9月前
|
网络协议 中间件 网络安全
计算机网络OSI七层模型
OSI模型分为七层,各层功能明确:物理层传输比特流,数据链路层负责帧传输,网络层处理数据包路由,传输层确保端到端可靠传输,会话层管理会话,表示层负责数据格式转换与加密,应用层提供网络服务。数据在传输中经过封装与解封装过程。OSI模型优点包括标准化、模块化和互操作性,但也存在复杂性高、效率较低及实用性不足的问题,在实际中TCP/IP模型更常用。
1189 10
|
4月前
|
机器学习/深度学习 数据采集 人工智能
深度学习实战指南:从神经网络基础到模型优化的完整攻略
🌟 蒋星熠Jaxonic,AI探索者。深耕深度学习,从神经网络到Transformer,用代码践行智能革命。分享实战经验,助你构建CV、NLP模型,共赴二进制星辰大海。
|
5月前
|
机器学习/深度学习 传感器 算法
【无人车路径跟踪】基于神经网络的数据驱动迭代学习控制(ILC)算法,用于具有未知模型和重复任务的非线性单输入单输出(SISO)离散时间系统的无人车的路径跟踪(Matlab代码实现)
【无人车路径跟踪】基于神经网络的数据驱动迭代学习控制(ILC)算法,用于具有未知模型和重复任务的非线性单输入单输出(SISO)离散时间系统的无人车的路径跟踪(Matlab代码实现)
362 2
|
5月前
|
机器学习/深度学习 并行计算 算法
【CPOBP-NSWOA】基于豪冠猪优化BP神经网络模型的多目标鲸鱼寻优算法研究(Matlab代码实现)
【CPOBP-NSWOA】基于豪冠猪优化BP神经网络模型的多目标鲸鱼寻优算法研究(Matlab代码实现)
130 8
|
7月前
基于Reactor模型的高性能网络库之Poller(EpollPoller)组件
封装底层 I/O 多路复用机制(如 epoll)的抽象类 Poller,提供统一接口支持多种实现。Poller 是一个抽象基类,定义了 Channel 管理、事件收集等核心功能,并与 EventLoop 绑定。其子类 EPollPoller 实现了基于 epoll 的具体操作,包括事件等待、Channel 更新和删除等。通过工厂方法可创建默认的 Poller 实例,实现多态调用。
366 60