使用框嵌入(box embedding)进行细粒度实体类型识别

1、研究出发点

本次分享一篇有关embedding的文章,来自2021年ACL的paper《Modeling Fine-Grained Entity Types with Box Embeddings》,其核心是提出了一种box embedding的方法来进行实体类型(entity type)识别。研究的动机可以从下面图来说明:

即主流的方法都是采用vector-based的方法,将mention及其所在的文本和所有类别标签表征成向量,然后采用multi-label classification的方法逐个判断是否属于某个实体类型。这类方法会存在一个缺陷就是:表征出来的向量虽然可以用相似性去判断,但区别不了层次性信息,如很难判断"Person","Author","Politican"这三个标签是谁父类,谁是子类,或者二者是否有交叉的关系。基于该问题,论文提出box embedding的表征方法,把任务对象都用超矩形(hyperrectangle)来表征,这样可以用矩形是否包含,是否重叠来识别其归属和层级性关系。

在这里,也许有人会有疑问:在很多该任务场景下,实体类型集合的层级信息(树状结构)都是事先可以知道的,不用去学习。所以,这里要说明下,论文的box embedding是应用在事先不知道label的层级信息的场景,希望用其去学习实体类型集合潜在的层级信息

此外,box embedding还有特性就是:可以用矩形(盒子)的体积来衡量一个mention是否属于某个type的概率

2、Box Embedding 介绍

2.1 关于box embedding定义

一个box 可以用两个点来表示 ,两个点分别为矩形最小角和最大角,即满足 ,其中 ,代表坐标维度。关于一个box 的体积可以这样计算:

文中将盒子空间的体积归一化为1,将每个盒子的体积解释为一个mention在给定实体类型的边际概率。此外,对于两个盒子 ,将其重叠的体积定义为:

若 视为mention的box embedding, 视为type的box embedding,则可以将识别任务转换成条件概率

2.2 基于box embedding的Multi-label Type Classifier

有了box embedding定义,接着介绍基于此如何做mention type classification。首先说下输入和输出形式:
and , 其中 为输入mention, 为mention所在的文本, 为type label, 为所有type label集合。

假设输入的(s,m)元组得到对应box embedding 为 ,所有type label得到对应的box embedding 为
,则 预测 是否属于type label 可表示为条件概率:

这样就把识别任务转化多标签识别任务,当 >0.5 时,就认为属于该类型标签。其思路如下图。

2.3 如何计算条件概率

基于前面的介绍,识别任务变成如何计算公式(3),即定义的条件概率。再考虑该问题时,需要分几步来实现。

首先,如何得到box embedding 。

关于box embedding ,论文采用初始化的方式,先定义一个中心向量 和 ,则box 的最小角和最大角可按下列计算:

激活函数softplus是为max函数的平滑表示,有利于反向传播计算。为何按上述定义来计算两个角的坐标?这里我理解的是:若按二维,c为矩阵的对角线中心点,o可认为是半径,两个角刚好为+-的关系,而softplus保证计算的是最长对角线,还可以保证结果不为0, 让向量都取值范围限定在[0,1]范围,这样保证计算的体积<=1并>0。

关于 box embedding ,论文利用BERT进行编码,输入形式为:x = [CLS] [SEP] [SEP],得到表征向量 ,接着进行一层映射得到向量 ,再将其拆分成中心向量和偏移向量 ,这样 box 的向量就可以按公式(4)来计算出来。

有了对应的box embedding ,现在就剩计算公式(3)中分子与分母项。其实按公式(1)(2)可以计算出分子与分母的结果。但文中作者指出原始的计算方式(按max,min)会导致数据过于稀疏,不利于反向传播学习。为此,论文采用Gumbel distributions来计算box的最小角与最大角坐标,视为一种soft box计算方式,并由此来重新计算box的体积,其定义为:

其中 为学习的变量, 为欧拉常数,取值为0.5772。此外,将两个盒子 ,将其重叠的体积 重新定义为

这样,公式(3)的分母与分子计算方式就可以按公式(5),(6)的方式来计算,整体计算逻辑也就如上。若想搞清公式(5),(6)的计算原理,需要进一步查阅Gumbel distributions,这里我就“囫囵吞枣”了。

2.4 关于损失函数

关于训练的损失函数就是正常的binary cross-entropy,如下所示。

3、实验部分

文中选了4个mention type classification的分类的数据集: UltraFine Entity Typing (UFET), OntoNotes, FIGER, and BBN。

下图是显示在UFET数据集上实验结果:

下图为在其他三个数据上的结果:

下图为展示“person”“actor”在box embedding可视化效果。可以看出在不少维度上,"person"是包含"actor"的,但并不是所有。说明box embedding在学习潜在层级关系信息上是有效的,但还没达到绝对理想的地步。

4、结尾

本次分享box embedding的缘由是觉得该方法在学习潜在的层级信息上有借鉴或启发的意义,尽管实验结果展示其有效,但并不是惊艳,但觉得该框架下仍有继续优化的空间。个人觉得有两点,(1)关于box的定义就用最小角和最大角来表示,感觉过于简化;(2)在体积和重叠体积计算上,也可尝试新的计算方式。此外,在其他任务场景,像multi-label classification也可以尝试下该方法。

更多文章可关注笔者公众号:自然语言处理算法与实践

你可能感兴趣的:(使用框嵌入(box embedding)进行细粒度实体类型识别)