Press "Enter" to skip to content

【论文阅读笔记】Two are Better than One

论文题目:《Two are Better than One:Joint Entity and Relation Extraction with Table-Sequence Encoders》

 

论文代码: https:// github.com/ LorrinWWW/two-are-better-than-one

 

一、论文针对的问题及提出的解决思路

 

NER和RE两个任务都是从非结构化文本中抽取结构化信息,论文沿用了一种将NER和RE当做table filling的问题,NER可认为是一个序列标注的问题(在表格的对角线上),而RE可以认为在表中的其他位置标注的问题,下图形象的展示了这种想法,这种方法让NER和RE两项任务能够通过一个模型进行相互作用,但是因为仅仅使用一种表示方法,会出现feature confusion的问题,也就是说,第一个任务抽取的特征可能与第二个任务冲突,或者并不利于第二个任务,在后来《A Frustratingly Easy Approach for Entity and Relation Extraction》这篇论文中,这个问题再次被证明,可能存在,而且在一些数据质量比较好的数据集上得到了验证;另一方面,作者认为,既然是一个table filling 任务,就应该充分利用这种表格中的结构信息,但是现在很多模型还是将这个问题转变成序列标注任务,然后再来“填充表”,在这个过程中,可能丢失了这种结构信息。

 

表格的对角线是序列标注任务NER,其他位置是RE的表格填充

这篇论文中,作者提出了使用两种representation的方法来化解这个问题,一个是sequence representation另一个是table representation,分别用来解决NER和RE;另外,设计了一种让两者交互的方法,充分利用两个任务潜在的联系来增强两个任务;并且,在论文提出的模型中,作者还在模型中加入了Bert的attention weight,在每个阶段充分利用句子上下文中蕴含的知识word-word interaction。

 

二、 论文提出的模型

 

模型架构如下:

 

Text embedder部分

 

包括word embedding、character embedding以及BERT生成的contextualized word embedding最左侧虚线是从text embedder中输出的word embedding 也就是从语言上下文中学到的“知识”,作者在这三类embedding的处理采取linear的方式:

 

Table Encoder部分

 

首先构造一个non-contextualized table,这个非上下文的table使用的是上一层的sequence representation。

 

而后,聚和其周边的信息

 

作者使用了(a)(c)两种方式,构建一种在四个方向的RNNs ;MDRNN的4个方向,沿着层、行和列的维度利用上下文。也就是说,它不仅考虑相邻的行和列的单元格,而且还考虑上一层的单元格。对于其中一个方向的计算,我们就需要一个方向的GRU来完成。即下面的公式

 

Table encoder embedding流程

个人观点,这个过程类似于图神经网路中的消息传播机制。Table Encoding 采用MDRNN结构提取输入的特征信息,作者在这选择MDGRU(多维度GRU)。盗图一张便于理解: Two are Better than One

 

Sequence Encoder

 

为table encoder 提供序列信息,作者在这里提出table-guided attention,而没有沿用原来的sequence中常用的scaled dot-product attention(Transformer中使用的就是点乘的attention)。在这里补充一下,attention的计算方式其实有很多中,计算attention的重点在于计算这个attention score,除了点乘,可以使用concat等方式。在这里attention score计算的通用公式如下所示,这个公式是计算Q K的attention score的一个通用的表示形式,其中U是一个可学习的向量,g是所设定的Q和K计算相似度的一个计算方法。

 

类似于transformer中QKV的计算方式,从下面这个图中,在Table-Guided attention的输入有两个部分组成,第一个是从下层输入的S(构成K,Q),另一个是输入的T(作为V),从而在sequence encoder中融入Table encoder所编码的结构信息。

 

那幺既然是计算attention score,也就是计算不同词之间的注意力,那幺就可以表示如下,而 table encoder中的每个单元的 T 值中其实包含了上一次Sequence encoder的编码信息,如上面的(2)式所示,那我们直接用来作为attention score 。

 

当然,这个attention 也可以变为多头的,在最后使用时直接concat就好了。最后,这个网络仿照transformer结构,连接FFNN 和 Add & Norm后,作为下一层的sequence encoder的输入或最终的输出。

 

Exploit Pre-trained Attention Weights

 

充分利用第一层的embedding信息,传递给Table encoder的每一层,这样(2)公式变为:

 

Training and Evaluation

 

预测关系和实体的tags,使用最终输出的S和T,通过线性层和softmax(常用的方法):

 

损失函数使用cross-entropy(常用的方法),优化两者求和至最小值:

 

但是,在训练的过程中,作者使用了一个trick:

 

在用模型进行预测的时候,NER是关系抽取的前提,关系抽取是建立在实体识别之后。首先进行命名实体的识别,选择最高概率所对应的class作为识别结果

 

然后利用这个取得最大值的标注序列确定实体的boundaries 和 types,然后转变为进而来判断关系,实体之间的关系就是,其中的Y就是Table encoder的输出(就是一个矩阵,table):

 

三、论文使用的评价指标

 

NER F1 Score:当前仅当实体的类型和边界都与实际的类型和边界相匹配时候,实体的预测才是正确的。

 

RE F1 Score:如果关系的类型和两个实体的边界与实际中的关系相匹配,则关系预测被认为是正确的。

 

RE+ F1 Score:如果一个关系的类型以及两个实体的边界和类型都与实际数据中的匹配,那幺这个关系预测被认为是正确的

 

四、论文中的其他提到的观点

 

 

    1. 使用相对早期的不带有注意力机制的earlier contextualized embedding,也会对RE和NER任务有很大帮助。

 

    1. 使用一般的BERT所带来的效果提升与RoBERT和ALBERT大差不差,效果也很好。

 

    1. 消融实验中表明:从一个任务中学到比较好的representation不仅对该任务有效,更对其他任务有利。通过切断两者联系(interaction)的消融实验,也表明sequence和table representation相互作用非常重要。

 

    1. table-guided attention相比ALBERT这种纯语义的Bert能够学到更多与RE和NER任务相关的attention。

 

    1. 论文附录中提到,尽管整个表格填充能够使用不带方向的tag,但论文为了保证positive和Negative instance的比例,选择带有方向的tags进行标记。

 

    1. 多个层叠加可能会提升性能,但也可能会导致False Negative error(第二类错误,label是positive,预测是negative),这种错误很少见。

 

 

这里的Gold指标,是使用正确的entities span,然后指定RE任务,用来对比没有预测entity的情况下的指标

五、论文总结及个人感悟

 

1.论文的summary

 

本文介绍了一种新颖的表序列编码器结构,用于实体及其关系的联合提取。它学习两个独立的编码器——一个序列编码器和一个表格编码器,两个编码器之间存在显式交互。引入了一种新的方法来有效地利用由预先训练的语言模型捕获的有用信息,用于这种涉及表格表示的联合学习任务。

 

2.个人感悟

 

table filing从宏观上看还是一种全连接图的形式,但相比图来说构造更加简单,需要的外部知识也比较少,但计算量其实也不小,基于table attention虽然能够比平时attention取得好的效果,但随着句子增长或者是跨句子的问题,好像并不能很好的解决;之前读过一些基于span的方法,虽然一定程度上摆脱了逐个字词标注的方法,但个人也有感觉是通过不断的扩大搜索范围(span长度有很多种)来保证准确度。另外,这种填表的方法能否解决SEO这种overlap问题,是不是有待研究。最后,不得不承认,attention机制和BERT这种预训练模型的编码能力(隐含特征的抽取能力)是值得肯定的。

Be First to Comment

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注