笔记:A Relation-Specific Attention Network for Joint Entity and Relation Extraction
A Relation-Specific Attention Network for Joint Entity and Relation Extraction
-
来源:Yuan et al., IJCAI 2020.
-
任务:Joint RE
-
动机:许多联合RE如pipeline方法或者即便是联合抽取,许多也都是先做NER找到所有可能的实体,再判断实体对之间的关系类型,只不过联合抽取将两个子任务的目标函数结合在一起训练。那么并不是所有实体对都能构成三元组,依次判断所有实体对类型有些冗余,同时目前许多联合抽取方法也都面临着关系重叠的问题。
-
方法:Tagging Model感觉有点类似CasRel(Wei et al., 2020)\(^{[2]}\),主要两个部分:Relation-Specific Sentence Encoder(特定关系的句子编码器)、Relation-Specific Entity Decoder(特定关系的实体解码器)。
- 首先先要明确Relation-Specific是什么意思,类似CasRel解码器也是根据已经标注的subject针对特定关系标注可能的object。本文特定关系是指给定关系集合以及输入句子,针对每个关系都运行一次encoder-decoder模型抽取当前关系下的三元组。
- Relation-Specific Sentence Encoder. 如图3所示,经过BiLSTM初步编码句子后拿到隐状态序列,为了能够编码关于当前特定关系的信息,本文设计了一个Relation-Based Attention得到句子表示,具体如公式(1)(2)(3)(4),其中,\(s_g\)为句子的全局表示,\(r_k\)为针对第k个关系的训练参数embedding根据训练目标自动学习拟合,\(s_k\)为针对第k个关系加权后的句子表示。
- Relational Gated Mechanism. 为了能够减少不相关的关系所带来的影响以及适应性的控制得到的关系信息,又在encoder中最后加入一个Relational Gated作为与实体解码器之间的桥梁。所谓相关的关系即当前句子中含有包含此关系的实体对,否则即为不相关的关系,这一步也是为了减少冗余操作吧,但没搞懂如何达到上述的目的的,具体如公式(5)(6)得到新的保存了关系信息的句子表示,最后如图3解码器的输入,将\(u_k\)与\(h_i^k\)拼接后,解码此序列。
- Relation-Specific Entity Decoder. 在针对当前关系的前提下,解码其实就不需要再预测关系类型了,我们只需要判断当前关系下是否句子中是否存在与此关系对应的实体对,看作是序列标注任务,采用BIES标注方案,只有头尾实体会被标注出来,其余的token都被标为\(O\),那么如果此关系在当前句子中有多个实体对或有实体重叠,采用最近邻原则选取两个最近的头尾实体作为当前关系在此句子中的实体对。
- 训练:我们有个给定的关系集合,但并不是每个关系都会存在于输入语句中这样就会有很多负样本的关系,那么由于我们是Relation-Specific每个输入语句针对每个关系都要运行依次模型抽取当前关系下的三元组也就会有很多由于负样本所产生的冗余,因此本文采用关系负样本采样策略,随机采样一些负样本关系(negative sample即不相关的关系)加入positive relation set(ground truth关系)训练,\(n_s=n_{sp}+n_{neg}\)。
- 实验:这篇paper应该差不多和CasRel同一批的实验中就没有两者的对比实验,但性能差CasRel挺多的。
- 消融实验:依次去掉Relation-based Attention以及Relational Gate性能都大幅下降,尤其是attention部分去掉后没了针对特定关系的信息。
-
疑问&想法
- 特定关系含有多个实体对或有实体重叠时,采用最近邻方式,那万一当前关系在此句子中就有多个三元组或实体重叠的三元组呢?而且relational gate机制去冗余消融实验证明确实有用,但没懂为什么就可以。
- Relation-Specific的attention机制设计的挺有意思的,感觉针对特定关系的这个思想和CasRel有点相似。