笔记:Joint Type Inference on Entities and Relations via Graph Convolutional Networks


Joint Type Inference on Entities and Relations via Graph Convolutional Networks

作者:Sun et al., 2019 ACL

目录

  • 简介
  • 方法
  • 实验
  • 总结

1 简介

本文利用GCN做实体关系联合抽取任务,主要分为两部分(两个子任务但也一起训练),分别为确定实体范围(entity span)以及推断实体类型和对应关系类型。确定实体范围为序列标注任务,之后利用基于GCN的模型做类型联合推断。

2 方法

给定一个语句作为输入,整个处理流程分为两部分:确定entity span可以看作序列标注任务、实体和关系节点的联合类型推断,基于提出的模型可以考虑同一语句中多个实体类型以及关系类型之间的交互。

那么所谓的关系重叠问题、多词实体问题都没问题了,且对于关系与关系之间的交互在一定程度上通过周围节点也能考虑到,尽管本文的图结构的设计中不存在实体节点和实体节点连接以及关系节点和关系节点之间连接的边。

2.1 Background of GCN

先简要介绍一下GCN基础性的知识吧,GCN具体原理看不懂有点难。

GCN的作用就是,在给定含有n个节点的图的情况下,对其进行编码得到对应节点的表示,之后将node表示交给分类器做类型分类(在这个任务上节点是实体或关系 embedding)。

输入:

  • node embedding矩阵\(\mathbf{H}=(n \times d)\), n代表节点数,d代表输入节点embedding的维度。
  • 邻接矩阵\(A=(n \times n)\), 即为抽象的图的具体到实际操作中的结构表示,利用A邻接矩阵GCN才能将节点之间对应的边的联系对应上。

对于一个L层的GCNs来说,每层可以表示为:

其中,\(\hat{A}\)??为邻接矩阵含自环,\(H^{[l]}\)??为第\(l\)??层节点的输出,感觉(Zhang et al., 2018\(^{[3]}\)??)这篇里的对GCN背景的介绍更清晰一些?感兴趣可以看看这篇paper以及

最后得到node-level输出\(\mathbf{Z=H}^{L}\), 一个\(n \times d\)特征矩阵用于最后的分类器类型预测。

2.2 Entity Span Detection

很常规的序列标注任务,采用BILOU标注方案,整体结构如Figure 2.

2.3 Entity-Relation Bipartite Graph

section 2.2就是确定实体范围子任务,那么之后就是基于得到的实体范围,利用基于GCN的模型去做类型推断。
那么首先就要构图即node embedding和边的联系邻接矩阵A都怎么表示,有了这两个输入,图的构建以及相关操作就交给GCN就行了,如果我们假设图中实体节点的个数为\(\hat{\varepsilon}\), 那么根据两两实体有一个关系关系节点数为\(\frac{|\hat{\varepsilon}|(|\hat{\varepsilon}|?1)}{2}+1\), 1为None关系类型。

对于node embedding,利用figure 2的每个词输出:

  • 实体节点embedding
    将实体的每个词的hidden state即\(\{h_i|w_i \in e1\}\)构成的序列--也就是一组向量,作为输入喂给一层CNN+max pooling,之后在使用多层线性层MLP,对CNN输出进行线性变换,最终得到维度为d的entity span node embedding 向量\(\mathbf{H_{e1}}\), 即2.1节中提到的\(\mathbf{H}\)中的一个node embedding 向量。
  • 关系节点embedding
    我们去两种类型的特征向量的组合作为最终的关系节点embedding,分别为实体span中的词的信息以及实体上下文的信息。对于实体中词的信息就简单采用实体span即实体节点的embedding作为其特征向量,对于context信息,采用第一个实体左侧词、两实体中间的词以及第二个实体右侧的词(对应Figure 4应该是\(h_1,(h_7,h_8),h_4\)吧?)的hidden state,分别同实体节点embedding,过CNN+MLP后拼接,之后为了维度适配计算,再过MLP得到一个d维的关系节点embedding \(\mathbf{H_{r12}}\), 也即2.1节中提到的\(\mathbf{H}\)中的一个node embedding 向量。

接下来我们构建实体节点与关系节点之间的边:

我们不再直接连实体节点或关系节点,而是通过entity node - relation node - entity node这种关系节点连接其对应的两个实体节点的形式,原因有两点:a) 并不是所有实体对类型推断有帮助,往往有关系节点信息更多,且关系节点可以作为实体节点的桥梁,反之亦然,实体节点也可作为关系节点的桥梁,使得实体与实体节点,关系与关系节点间接联系。b) GCN不适合全连通图,GCN在全连接图上的会被简化为非常简单的操作,没懂,GCN原理不太会。

那么如果是e1-r12-e2这种图边形式,称之为静态图,但我们希望它动起来进而剪枝冗余的边,即便是e-r-e这种边我们也不希望所有e-r-e都连接,而是希望尽可能两实体e1, e2有对应的关系r12才连接,因此引入一个binary relation classification任务。二分类即判断两实体间是否存在某个关系节点(不论什么类型仅关注是否有关系),我们用一个softmax层来对输入即关系节点如\(r_{ij}\)做二分类,标签0即无关,1即有关。

那么我们如何构建上述要求的图呢即如何得到A构造边呢,即通过binary relation classification任务得到邻接矩阵A:

  • 如果\(P(\hat{b} = 1|r_{ij}, s) > 0.5\), 那么我们设A中有关\(e_i,e_j,r_{ij}\)顶点之间的邻接值为1.0
  • A的对角元素都置为1.0,自环基操
  • 其余邻接位置均设为0.0

2.4 Joint Type Inference

至此我们的图(或者说那两个输入)就构建完了,我们将其输入给GCN得到node-level输出\(\mathbf{Z}\),对于\(\mathbf{Z}\)中的每行(实体节点 or 关系节点),虽然图中没有直接的实体-实体或关系-关系边,但它可以从图g中其他节点收集和汇总信息。最终的节点表示我们用两矩阵的拼接即\(\mathbf{F=\{Z;H\}}\)即如Figure3中将GCN输出和输入拼接了, 整体结构如Fiugre 3.

最后我们再将两个给定的node 表示(实体节点和关系节点)分别喂给两个全连接softmax层预测对应的类型(多分类),

最后训练目标函数为:\(\mathcal{L=L_{span}+L_{bin}+L_{ent}+L_{rel}}\), 多个子任务目标函数联合。

3 实验

在本文中,默认设置“GCN”为基于动态hard邻接矩阵A的1层GCN联合模型,在ACE05数据集(用于实体关系抽取任务的标准语料库)上取得了最佳的关系性能。

详细内容感兴趣看看原文,这里直接引下别人的参考\(^{[4]}\)

  1. 整个模型比 sota【#TODO1】 p 高,r 低,f 高 (注,,sota 参考\(^{[2]}\))
  2. 把 GCN 换成 NN(就是式子里不要邻接矩阵了?这里应该是直接不用GCN了单纯靠作者的CNN+MLP等操作),还是要比 sota 好,表明本文分这两步 的有效性
  3. p 高,作者认为这归功于 the strong ability to model feature representations of entity nodes and relation nodes、entity type model and the relation type model share more parameters(entity CNN+MLP parameters);r 低,因为做关系分类时没有用上实体类别信息
  4. hard dynamic > soft dynamic > static
  5. binary relation classify 很差,但是加上之后还是要比 static 好,怎么改进一下呢?
  6. 一层 GCN 最好,作者认为这是因为所有模型都 closely related to each other(?没懂)

4 总结

比之前用新标注方案将抽取转序列标注任务联合对实体关系解码看着顺畅多了,GCN再nlp的应用原理之类的有机会还是要了解了解啊,根据table 5看来GCN还是很有用的。而且在实体与实体、关系与关系也可以一定程度交互,加上二分类任务想法挺好虽然比static效果好,但二分类任务本身结果不好啊。

还是没什么想法啊,“你没资格啊!”

参考

【1】Changzhi Sun 1, ?, Yeyun Gong2, Yuanbin Wu1, 3, Ming Gong2, Daxing Jiang2, Man Lan1, Shiliang Sun1, and Nan Duan2.Joint Type Inference on Entities and Relations via Graph Convolutional Networks.ACl 2019.

【2】Changzhi Sun, Yuanbin Wu, Man Lan, Shiliang Sun, Wenting Wang, Kuang-Chih Lee, and Kewen Wu. 2018. Extracting entities and relations with joint minimum risk training.EMNLP 2018.

【3】Yuhao Zhang,* Peng Qi,* Christopher D. Manning.Graph Convolution over Pruned Dependency Trees Improves Relation Extraction.EMNLP 2018.

【4】论文笔记 – Joint Type Inference on Entities and Relations via Graph Convolutional Networks.https://ivenwang.com/2020/12/19/jtiergcn/.