Fenia Christopoulou, et al., “Connecting the Dots: Document-level Neural Relation Extraction with Edge-oriented Graphs”, EMNLP 2019
1 简介
这篇文章跟 GCN 没有半毛钱关系。它用边的表示构建图,做文档级关系抽取。边的表示比较简陋,通过双线性变换做边的传播,这个交互过程还挺有意思(不过也是前人的工作)。还使用了 multi-instance learning 的想法:实体之间的关系可能是在句子里的,但是我们直接在文档里抽取(就这?)。最后是不使用外部数据模型里的 sota。
这篇很多东西都没见过,所以看不懂的也挺多。
2 方法

整个流程如图所示,分成四个部分。其中第一步 encoding 就是 Bi-LSTM,最后的分类器就是 linear + softmax,下面详细说一下图的构建和推断。
2.1 graph layer
构建 graph 是先构建顶点(最后顶点也用不上),再构建边。
顶点有三种:mention、entity、sentence。mention node 就是 mention里面几个词 embedding 的平均,entity node 就是他所指向的所有 mention embedding 的平均,sentence node 就是句子里所有词 embedding 的平均。这里对平均的疑惑详见 4.2。最后为了区别这三种 node,还在每种后面拼上 node type embedding。
有三种点,全排列就应该有 MM、MS、ME、SS、ES、EE 六种边,作者只构建前五种边,然后在图上进行推断,从而找出 entity-entity 的关系。换句话说,就是把关系抽取问题转换成 generate entity-to-entity (EE) edge representations using other existing edges in the graph and consequently infer entity-to-entity relations.
五种边的表示都是通过简单的规则定义的:
- MM:两个 mention 出现在同一个句子里,就连 MM 边。MM 的表示是两个 mention embedding 拼上他们之间内容的 embedding 和距离的 embedding。他们之间内容的 embedding 就是对每个词的 embedding attn 相加,其中的 attn score 是分别计算和两个 mention 的点积,取平均。
- MS:mention 出现在 sentence 里,就连 MS 边。MS embedding 就是 mention 和 sentence 的 embedding 直接拼。
- ME:mention 属于 entity,就连 ME 边。也是直接拼。
- SS:所有句子之间都有边。两个 sentence embedding 拼上句子之间的距离。SS 分成 direct 和 indirect,相邻的就是 direct。
- ES:entity 指向的 mentin 里有一个在 sentence 里,就连 ES 边。直接拼。
最后,五种边都要经过各自的 reshape matrix 来统一维度。
2.2 inference layer
这部分的算法来自 5.3,我其实还不是特别理解。
怎么抽取关系,也就是生成 EE 边呢?作者说,EE 边可以是 ESE(最短的句子内的关系)、ESSE(最短的句子间的关系)、EMSE 等等边来表示的,所以下面就开始让信息在图上传播。GCN 的“信息传播”相当于是用当前点和邻居的平均来更新自己(我是这么理解的,不知道对不对),这里的信息传播不太一样:每一步都是用两两相邻的边,比如 i-k 和 k-j,生成 i-j 的边。具体来讲,使用双线性变换:$$f\big(e_{ik}^{(l)}, e_{kj}^{(l)}\big) = \sigma\big(e_{ik}^{(l)}\odot\big(W e_{kj}^{(l)}\big)\big)$$
其中 $l$ 是边的长度,式子从里到外就是 linear、哈德玛积、非线性变换,这个式子我就完全不明白,这怎么就“生成”一条新的边?如果说 GCN 的 $D^{-\frac{1}{2}}AD^{-\frac{1}{2}}$ 有物理意义,我觉得这个双线性变换的式子也一定有物理意义,这个还得 refer 原文才能搞懂吧。【#TODO3】
然后还紧跟一步:$$e_{ij}^{(2l)} = \beta e_{ij}^{(l)} + (1-\beta)\sum_{k\ne i,j} f\big(e_{ik}^{(l)}, e_{kj}^{(l)}\big)$$
因为原来 ij 之间可能也是有直接相连的边,所以要加权相加。这里 $\beta$ 越大,就表明我们越期望关系可以从更短距离的路径上被推断出来。我这里其实不太理解,两项的右上角标不都是 l 嘛,为啥还长短不一样?【#TODO4】
3 实验
数据集:CDR 和 GDA,都是医学领域,论文 abstrac 作为 document。
是不使用外部知识的模型的 sota
CDR 数据集上消融实验:① 所有五类结点全连接 ② 不使用 2.2 的推断 ③ 在句子而不是文档上训练
- 发现 ① ② 都在跨句子关系(inter)上性能掉了很多(③ 都没有这个能力了),作者觉得 ① 的降低表明了确实是有推断路径存在的
- 文档级抽取对于句子内的关系(intra)的性能也是有很大的改善(② ③ 在 intra 的表现都降低很多,① 几乎没变)
- ② 在 intra 和 inter 的任务都有很大 drop,说明多种实体之间的关系是存在的(这样才有推理的必要)
- 在 GDA 数据集也有类似的结果,只不过由于 inter 的占比变少,所以降得不多
对于边的消融实验:

- SS-indirect 对于 inter 影响很大。如果只留 SS-direct,就需要更多步推断;但是只留 SS-direct 也要比去掉 SS 好得多,表明有一些 inter 的中间节点也是不必要的。
- 把所有与 M 相连的边去掉,inter 降了很多,表明 the importance of some local dependencies in identifying cross-sentence relations.(没懂)
- 把 SS 去掉,inter 的能力就几乎消失了,因为只能从 M 来推断,推断路径就长了很多(那些 GCN 的方法怎么有用的?)
- 长的推断路径比短的不可靠得多,因此特别复杂的,不行
对于点的消融实验:去掉 ① node type ② MM 中间的原文内容 ③ 距离信息
- 对于 intra 没啥影响,对 inter 影响很大,尤其是距离信息
- 三个都去掉,比只去掉 ③ 还好,说明有过拟合产生(那么所有违反常识的实验都可以解释成过拟合?)
4 思考
- 为什么用边的表示建图?作者说,传统用词作为节点,构建异质图,这样不好。因为这样在图里,只要是同样的一对节点,之间的边也是相同的。而在自然语言里,即使是相同的两个实体,在不同上下文中关系可能也不一样,所以最好是 express relation with an edge connection that is unique for the pair.
我先说说我的理解:作者的意思就是图不能很好地表示上下文,因为图里的点就只是关键的词,比如 entity 和 mention,因此尽管图里也有邻居的结构,也能表示一些 context 信息,但是原来文本中的其它“废话”还是被浪费了。所以,作者在构建 sentence node、mention-mention edge 的时候,都是把一大段原文信息引入了。
- node representation 都直接用 word embedding 平均得到。这怎么会靠谱呢?看到有人说可以用 mask-based or structure-aware representation learning,我也不是太理解。
- 句子之间的联系,对于句子内的关系抽取也有帮助!
5 TODO
- MIL
- 这篇文章说自己 independent of syntactic dependency tools,很好奇使用 syn tools 的方法是什么样
- inference 部分前人的工作:Fenia Christopoulou, Makoto Miwa, and Sophia Ana- niadou. A walk-based model on entity graphs for relation extraction. ACL 2018
- 路径的“长短”
- related 里面的几篇 graph 和 non-graph 文章