笔记:Matching the Blanks: Distributional Similarity for Relation Learning


Matching the Blanks: Distributional Similarity for Relation Learning

作者:Livio Baldini Soares et al.ACL 2019.

目录

  • Introduction
  • Overview
  • Architectures for Relation Learning
  • Learning by Matching the Blanks
  • Experiments
  • Conclusion

1 Introduction

发现问题:对于信息抽取/关系抽取,我们所追求的目标就是希望能够获得一个泛化能力很强的关系抽取器,无论什么句子以及其中的实体对,没有太多的限制,之前虽然在这方面有了很多工作,但泛化能力有限,因此本文作者针对这一问题提出了一个Matching the Blanks的关系抽取预训练模型。

目前再关系抽取方面比较有代表性的主要有几个方面:supervised/distant supervised关系抽取、open information关系抽取、universal schema关系抽取。本文作者主要基于distributional hypothesis(Harris, 1954)(不懂)、以及BERT进行关系抽取。

2 Overview

Task definition
首先我们要明确这篇paper的主要任务--使用一个模型将输入数据即relation statements映射为relation representation。其中relation statements为一个三元组\(r = (\mathbf{x,s_1,s_2})\), \(\mathbf{x}\)为句子/tokens的序列,\(s_1 = (i,j)\)代表\(e_1\)的范围,i、j代表实体在句子中的位置,\(s_2 = (k,l)\)同理,relation representation为一个定长vector为对应的关系的分布式表示。
那么如何映射?通过一个函数\(h_r = f_{\theta}(\mathbf{r})\),所以其实我们的目标就是让这个网络模型学会这个函数,将输入的关系陈述映射为句子中所包含的实体对所对应的关系表示--定长向量,之后我们称这个函数\(f_\theta\)为relation encoder关系编码器。

3 Architectures for Relation Learning

本文主要探讨了两种关系抽取任务,完全监督的关系抽取(SemEval 2010 Task 8 (Hendrickx et al., 2009))、few-shot关系匹配(FewRel (Han et al., 2018)),此节讨论监督关系抽取。

之前提到本文主要就是基于BERT做关系表示映射,那么问题来了,BERT之前从未应用在关系抽取上,虽然BERT在如分类或序列任务中很成功,但关系分类(监督的关系抽取也可看作关系分类)不同于普通的分类,它需要考虑到目标实体及其局部信息。因此,我们需要考虑两个问题:(1) 输入:我们如何让BERT知道我们主要关注的实体即target entities。(2) 输出:我们如何从BERT的输出中提取出我们需要的定长关系表示向量。

本文作者针对这两个问题分别提出了三种方案,接下来简单说明这几种方案的组合,如下图Figure 3所示。

3.1 Entity span identification

Standard input Figure 3 (a) (b) 不做任何标识处理,作为参考点,因为作者认为虽然认为BERT有能力识别实体,但当句子中有多个实体时,作者判断BERT应该无法确认我们所关注的实体是哪两个。

Positional embeddings Figure 3 (c) “bert中对于每个输入的词语都会添加一个segment embedding的分段标记,为了对实体进行显示标记,在segment embedding添加两种标记来分别标记第一个实体和第二个实体\(^{[2]}\)。”,如图中的1和2,其他都为0。

Entity marker tokens Figure 3 (d) (e) (f)在两个target entity前后分别加标识符,如\([E1_{start}],[E1_{end}],[E2_{start}],[E2_{end}]\),因此,\(\mathbf{x} \rightarrow {\tilde{\mathbf x} = [x_0,...,[E1_{start}],x_i,...,x_{j-1},[E1_{end}],...,[E2_{start}],x_k,...,x_{l-1},[E2_{end}],...x_n]}\),然后将\(\tilde{x}\)喂给BERT,其中由于标识符的插入我们的s的位置也更新了,\(\tilde{s_1} = (i+1,j+1), \tilde{s_2} = (k+3,l+3)\)

3.2 Fixed length relation representation

本小节简要介绍三种根据BERT的输出,抽取定长关系表示\(h_r\)的方法。这三种变体都主要依赖transformer网络的最后一层hidden layer的输出即\(H = [h_0,...,h_n], H = (n\times d)\;d为h的维度, n = |\mathbf x|或|\tilde{\mathbf x}|\)

[CLS] token Figure 3 (a) (d)直接用[CLS]的输出\(h_0\)作为关系表示。

Entity mention pooling Figure 3 (b) (c) (e)分别对两个实体的输出做maxpool操作后拼接得到\(h_r\)。即\(h_{e1} = \mathsf{MAXPOOL}([h_i...h_{j-1]}])\)\(h_{e2} = \mathsf{MAXPOOL}([h_k...h_{l-1}]), h_r = \langle{h_{e1}\rangle}\;|\;\langle{h_{e2}\rangle})\)

Entity start state Figure 3 (f) 直接取两个实体各自的start token的输出,做拼接,即\(r_h = \langle{h_i|h_{k+2}\rangle}\)

除了定义模型输入和输出架构之外,我们还修改了用于训练模型的损失,如下图Figure 2所示。对于监督任务直接softmax(score)后交叉熵损失,对于few shot任务先做点积相似度,再softmax(similarity score)后交叉熵损失。

最后实验结果表明,ENTITY MARKERS输入、ENTITY START输出表示的组合得分最高。

4 Learning by Matching the Blanks

截止至目前为止,我们探讨的都是监督即使用标注训练数据训练relation encoder \(f_ \theta\)函数,接下来我们使用新的方法代替监督方法,不再需要预定义的关系类别和标注数据。

首先我们先声明有一个relation statements的语料库\(\mathcal{D} = [(\mathsf{r^0,e_1^0,e_2^0})...(\mathsf{r^N,e^N_1,e_2^N})]\),其中一对relation statements (\(r,r’\)), 经过关系编码器映射后将两者的关系表示做内积即\(f_{\theta}(\mathsf r)^{\mathsf T}f_{\theta}(r’)\),表示两关系的语义相似度,如相似则内积值应该大,反之小。 进而我们利用这个相似度值定义一个二分类器,如下公式,表示\(r\)\(r'\)是(\(l = 1\))否(\(l = 0\))编码了相同的关系。

因此,就像开篇提到的,我们整个模型的训练本质上就是希望网络模型能够学到这个关系编码器\(f_{\theta}\), 又或者说整个训练过程就是根据损失 (如下Eq (1)) 在使其最小化的过程中,对relation encoder参数化的过程。学到这个映射就会有个映射值输出,我们就用映射值即关系表示做内积,进而算两关系是否相同的概率,进而计算损失进行反向传播更新参数。

同时,作者观察到因为我们是直接从网络上如维基百科获取句子语料,再用现成的实体链接系统基于FreeBase对句子中target实体的span进行标注,但这样会有很多冗余,即每种关系都可能被多个句子提到多次,这样这两个关系更有可能编码同一种关系,因此我们采用两种方法避免这种冗余,一是采样时针对每种关系进行随机sample,二就是引入Blanks。其实由Eq (1)我们很容易就可以根据D最小化Loss,但D是根据链式系统得到的,实体连接系统做entity annotation没有什么所谓的关系的概念,那么我们如果假设\(f_{\theta}\)能够在这样的语料库的基础上根据D很魔幻的自动学到一个很有意义的relation表示或者说映射是没有道理的,因此我们要么重构entity linking重新获取新的与实体关系关联的D,但太麻烦,所以直接引入Blanks思想,修改D语料库为\(\tilde{\mathcal{D}} = [(\mathsf{\tilde{r}^0,e_1^0,e_2^0})...(\mathsf{\tilde{r}^N,e_1^N,e_2^N})]\),其中\(\tilde{\mathsf{r}}^i = (\mathbf{\tilde{x}^i},s_1^i,s_2^i)\)包含一个relation statement,在这个relation statement即x中,\(\alpha\)的概率为s定义的entity span,否则就用[BLANK]符号替换entity span (感觉这有点类似BERT中的mask的思想,BERT学的就是预测输入中被mask的词,通过mask可能让BERT模型学到了语义等信息)。因此新的损失\(\mathcal{L(\tilde{D})}\)需要\(f_{\theta}\)做的就不只是确认 r 中的实体了,我们假设使用\(\mathcal{\tilde{D}}\)进行训练,将会得到一个编码了我们可能忽略的两entity span之间的语义关系的relation encoder \(f_{\theta}\),后续实验也支撑了这个假设。

5 Experiments

详见paper或参考。

6 Conclusion

感觉本文的想法挺好的除了BLANKS的想法,之前的监督方法中对输入encoder和输出的固定长度vector的提取的几种方案的设计都挺值的借鉴的,同时作者再Abstract也提了,详见实验,使用本文提出的模型做初始化,然后再具体的监督关系抽取任务上进行微调再多个监督关系抽取任务上都有很好的表现,也超过了之前方法的表现。

参考

[1] Livio Baldini Soares.Nicholas FitzGerald.Jeffrey Ling?.Tom Kwiatkowski.Matching the Blanks: Distributional Similarity for Relation Learning.ACL 2019.

[2] 墨墨末末.Matching the Blanks: Relation Learning.zhihu 2020.9.https://zhuanlan.zhihu.com/p/110202712.