Ye, Yuan, et al. “Integrating Relation Constraints with Neural Relation Extractors.” AAAI 2020
以前的关系抽取都是“就事论事”,只依靠当前句子的实体对儿的信息完成。但事实上,很多关系在全局上是有很多限制(constraint)的,“就事论事”的方法忽略了这些限制。这篇文章提出了 Constraint Loss,放在神经网络的目标函数中,全局地进行优化。而且这篇文章还提出了两种 Constraint Loss 从规则的角度和样本的角度分别利用 constraint。想法和算法其实都比较朴素,但有一说一,很有意义。
1 简介
从全局来看,很多关系都是有限制的,比如,在“国家”和“城市”这对实体中,关系是“首都”的只能有一个,因为国家只能有一个首都。之前冯老师 [1]【#TODO1】 在这方面有过尝试,使用 ILP(整数线性规划)将约束化为边界,使得最后的结果不违反这些约束。但是这个方法只是相当于在最后一步 fine-tune 一下,并不能误差反传,共同优化。
但是,直接把关系约束加入关系提取的模型,面临仨挑战:
- 关系限制是根据全局样本确定的,而非几个单独的样本。怎么才能表示这些约束?
- 既然是全局的限制,那么如果分 batch 优化,这“全局”的限制怎么用?
- 用关系限制对结果约束之后,怎么反传,优化 NN?
作者设计了五大类的关系约束,和两种 Constraint Loss。这俩分别是 Coherent 和 Semantic:Coherent 是在实体对的角度,这一对实体要满足五类约束;Semantic 是在约束规则的角度,即对于每一类约束,都要让所有的实体对尽量满足。为啥弄两个?Coherent 优点是可以分 batch 优化;Semantic 则更“全局”。
另外,本文的方法可以适用于所有 NRE 算法,只需要在后面加上 CLC(Constraint Loss Calculator)即可。
2 相关工作
2.1 NRE
NRE 的数据集一直是自动构建的,即在语料库中寻找知识库中的三元组,有三元组,就用此三元组把这句话标注了。这显然不靠谱。为了减少错误标注,NRE 通常使用 multi-instance learning (MIL) framework,即认为 bag 里至少有一种正确的标注。【#TODO2 看不懂,得看看他参考的论文 [2,3,4]】
这篇文章采用的基准模型是 ACNN 和 APCNN [5],可以动态降噪【#TODO3】。
2.2 关系约束
在大的深度学习领域,有很多人曾把逻辑规则引入 NN,以增强模型的灵活性(可能是因为有了抽象的规则(而不是学到的模糊的规则),更抽象了,所以更灵活了?)和可解释性。但是,这些框架在 NRE 上不能直接用,因为这些只能检查每个样本,有没有逾矩,无法满足上文说过的全局的关系约束。
3 关系限制
有两大类,3+2=5 小类。为了简化说明,就用两个三元组 $<subj_m,r_m,obj_m>$ 和 $<subj_n,r_n,obj_n>$ 之间是否满足,来定义这些关系限制。
3.1 种类限制(Type Constraints)
非常简单,就是对于这一种关系,它的两个实体必须是特定的种类。比如,“校友”关系对应的两个实体必须是“人”和“学校”。那反过来一想,对于某个实体,他就可能在多种关系中做主语,也可能在多种关系中做宾语。因此作者就建立了这样的规则:
- 如果两种关系 $r_i$ 和 $r_j$ 的主语可以是相同的(我理解是“相同类型”而非“相同 token”,但是作者没明说,我也懒得看代码),那么就把关系对 $(r_i,r_j)$ 纳入集合 $C^{ts}$
- 如果 $r_i$ 和 $r_j$ 的宾语可以是相同的,那么就把关系对 $(r_i,r_j)$ 纳入集合 $C^{to}$
- 如果 $r_i$ 的主语和 $r_j$ 宾语可以是相同的,那么就把关系对 $(r_i,r_j)$ 纳入集合 $C^{tso}$
3.2 数量限制(Cardinality Constraints)
如果关系 $r_i$ 可以有多个主语,就把 $r_i$ 归入 $C^{cs}$;可有多个宾语,则归入 $C^{co}$.
这样我们就得到了五类关系约束。读到这里,可能会有人问,“归入集合 $C$”是什么意思?这里并没有构造什么 $C$ 的数学表达,作者只是阐述了这样的一个概念。作者的想法朴素就朴素在这里:在下文中,“属于关系限制集合”都是用非常简单的 one-hot 指示向量表示的,而这些表示甚至都没能统一。
4 算法
4.1 NRE 基础模型
ACNN、APCNN [5] 具体不讲了,最后一层得到关系的分布 $p_{\theta}$。
4.2 CLC(Constraint Loss Calculator)
之前说过了,关系限制是全局的。所以作者采取每个 batch 优化一次的方法,勉强也是全局了。具体来讲,在每个 batch,在目标函数中都加个 Constraint Loss:$$L_{total} = L_O + \lambda L_C$$
但并不是改个损失函数直接跑这么简单的。具体做法还是分两步,先用 $L_O$ 做目标,ACNN 或者 APCNN 的方法得到预测关系的分布,然后用这些分布计算 Constraint Loss,最后把这俩 loss 加一起,用于反向传播从而逐步优化。
我看到这里就觉得有点失望——这太不优雅了!这也叫共同优化?但是仔细一想,关系限制是全局的,也不可能直接改 loss,还用原来的模型计算 loss。我的这种失望,是因为没见识过这种“全局限制”的问题,而做出的不合理预期,是出于无知的无能狂怒,以后一定要避免。
下文就具体讲述 Constraint Loss $L_C$ 的计算。采用两步计算:
- 对于一对样本,计算局部 loss $L(p^m,p^n,C^\phi)$,其中 $p^m,p^n$ 代表第 m 和 n 个样本,这也只是一个概念,具体取值后面再说(不同算法不一样)
- 把所有的局部 loss 合并成 batch 级别的 $L_C$
作者提出了 Coherent 和 Semantic 两种算法,这两种是互相独立的,都能算出 $L_C$,只是角度不同。
4.3 Coherent
Coherent 的方法是在样本对的角度考虑的。是让两两每队样本,都尽可能符合关系限制。Coherent 的局部 loss $L(p^m,p^n,C^\phi)$ 为:
$$L(p^m,p^n,C^{**}) = -I\log(\sum v p_*^m p_*^n)$$
这里的 $C^{**}$ 对应上面五类限制,即 $^{cs,co,tso,ts,to}$,$p_*^m$ 表示样本 $m$ 中的关系是 $r_*$ 的概率,$I$ 和 $v$ 都是指示符,取值是 0 或 1。
那么这个式子是什么意思呢?要分成两大类关系限制,具体分析。
对于种类限制,有:
$$L(p^m,p^n,C^{t*}) = -I_{t*}^{mn}\log(\sum_{ij}v_{i,j}^{t*}p_i^mp_j^n)$$
先解释细节:
- $v_{i,j}^{t*}$ 的取值规则:如果 $(r_i,r_j)\in C^{t*}$,那么 $v_{i,j}^{t*}=1$,否则为 0。通俗的说,就是如果这两个关系可能受到种类限制,$v$ 就取 1,就把这一项纳入 loss 的计算。注意,这个 $v$ 是根据关系和关系之间会不会有种类限制决定的。
- $I_{t*}^{mn}$ 的取值规则:用 $I_{ts}^{mn}$ 举例,如果两个样本(就是两个三元组 $<subj_m,r_m,obj_m>$ 和 $<subj_n,r_n,obj_n>$)的 $subj_m = subj_n$,则 $I_{ts}^{mn}=1$,否则为 0。通俗的说,就是如果这两个样本之间可能受到种类限制,$I$ 就取 1,就把这一项纳入 loss 计算。这个 $I$ 是样本决定的。
这两点,就是我上文说的正过来和反过来想的表示。
那么这个 loss 就非常好理解了:如果这两个样本的实体可能受到种类限制($I=1$),那么,对于这两个样本各自的所有预测可能的关系,都看看这两个关系会不会受到种类限制($v=1$),对于会受到种类限制的关系对,就把两个预测的概率相乘,纳入 loss。因此,这个局部的 loss 是对于样本 $m$ 和样本 $n$ 在所有种类限制上计算出的分数。所以说,Coherent 是站在样本对的角度考虑的。
对于数量限制,有:
$$L(p^m,p^n,C^{c*}) = -I_{c*}^{mn}\log(\sum_{i}v_{i}^{c*}p_i^mp_i^n)$$
这里 $v_i^{c*}$ 的定义和上面也类似,以 $v_i^{cs}$ 为例,如果关系 $r_i$ 的主语可以有多个,那么 $v_i^{cs}=1$,反之为 0。$I_{c*}^{mn}$ 也类似,如果俩样本主语一致,$I_{c2}^{mn}=1$;谓语一致,$I_{co}^{mn}=1$。
于是这个 loss 也很好理解了:如果这两个样本的实体可能受到数量限制($I=1$),就再看关系会不会受到数量限制($v=1$),把可能的依然相乘、相加、取反。因此这个 loss 代表样本 $m,n$ 在所有数量限制上计算出的分数。所以,我再重复说一遍,Coherent 是站在样本对的角度考虑的。
最后的 $L_C$ 就是所有样本对的暴力相加:
$$L_C = \sum_m\sum_n\sum_\phi L(p^m,p^n,C^\phi)$$
4.4 Semantic
Semantic 是站在规则的角度来操作的。对于每一种关系限制,都要让全部的预测尽可能符合。
这里与 Coherent 不同,Semantic 的种类限制和数量限制的表达式一样(谢天谢地,累死我了)。
$$L(p^m,p^n,C^\phi) = -I_\phi^{mn}log\sum_{c\in C^\phi} f(p^m,p^n,c)$$
这里 $I_\phi^{mn}$ 和上文一样。$c\in C^\phi$ 表示关系限制的集合,$c$ 就是其中的一条规则。那这个式子的意思就是,对于这一条规则,计算 local loss。
那这里的 $f(p^m,p^n,c)$ 是怎么定义的呢?这里又分种类限制和数量限制了:
对于种类限制:
$$ \begin{aligned} f(p^m,p^n,c) &= \prod_{u_i = 1}q_i\prod_{u_i=0}(1-q_i)\\ q_i &= p_i^m + p_i^n – p_i^m p_i^n \end{aligned} $$
$q_i$ 是 $m,n$ 两个样本里,至少有一个预测的关系是 $r_i$ 的概率。
对于数量限制:
$$f(p^m,p^n,c) = \prod_{u_i = 1}p_i^m p_i^n\prod_{u_i=0}(1-p_i^m p_i^n)$$
因为这里的一个关系可能有多个主语或者宾语,所以相当于 $q_i$ $m,n$ 两个样本里预测的关系都是 $r_i$ 的概率。
4.5 小结
整个 CLC 的结构图大约如下:

这张图的局部 loss 是以 $C^{cs}$ 和 $C^{ts}$ 为例的。我们可以发现,由于 coherent 是将一对样本的所有“可能违背限制”的关系对相加,因此在向量的表示上,是一对样本对应一个向量;而 semantic 是一对样本对应一组向量,其中每个向量都是一个关系限制。
5 实验结果
5.1 数据集
这里要提一句数据集,因为这个数据集是作者自建的。分英文中文,分别建立了 541 和 110 条约束。
5.2 结果分析
- + CLC 之后,性能提升很大,PR 曲线几乎完全包围基础算法。CLC 很有用。
- + CLC 之后,中文数据集上提升的比英文大。中文的关系约束的定义更精准。
- ACNN + CLC 提升的要比 APCNN + CLC 提升的多。因为本来 APCNN 就有句子结构的学习,可能学到一些限制?(这里没看懂,【#TODO4】)
- Semantic 比 Coherent 效果好,因为 Semantic 是一组向量,更精细一些
- CLC 比 ILP 效果好,同时用 CLC 和 ILP 效果最好,说明 CLC 还有发掘关系限制的空间。CLC 只是在 batch 的维度“全局”优化,ILP 是真正的全局优化
- CLC 和 ILP 不是完全互补,使用 CLC 之后再用 ILP,提升就不是很大了
- 把相关的样本放在同一个 batch 里,对 CLC 计算有很大好处——作者只是拍拍脑袋想出来的,还没搞
6 总结
我觉得这是一篇非常有意思的,自己定义问题,自己解决问题的文章。
7 引用与拓展阅读
[1] Chen, Liwei, et al. “Encoding implicit relation requirements for relation extraction: A joint inference approach.” Artificial Intelligence (2018): 45-66.
[2] Hoffmann, R.; Zhang, C.; Ling, X.; Zettlemoyer, L.; and Weld, D. S. 2011. Knowledge-based weak supervision for information extraction of overlapping relations. In Proceedings of ACL, 541–550.
[3] Surdeanu, M.; Tibshirani, J.; Nallap- ati, R.; and Manning, C. D. 2012. Multi-instance multi-label learning for relation extraction. In Proceedings of the 2012 joint conference on empirical methods in natural language processing and computational natural language learning, 455–465. Association for Computational Linguistics.
[4] Suchanek, F.; Fan, J.; Hoffmann, R.; Riedel, S.; and Talukdar, P. P. 2013. Advances in automated knowledge base construction. SIGMOD Records journal, March.
[5] Lin,Y.;Shen,S.;Liu,Z.;Luan,H.;andSun, M. 2016. Neural relation extraction with selective attention over instances. In Proceedings of the 54th Annual Meeting of the Association for Computational Linguistics (Volume 1: Long Papers), volume 1, 2124–2133.
8 TODO
- 冯老师在这个方向之前的文章 [1]
- multi-instance learning (MIL) framework [2,3,4]
- ACNN + APCNN
- APCNN 学啥了?(其实和 TODO3 是一个事儿)
[mathjax]