笔记:Packed Levitated Marker for Entity and Relation Extraction


Packed Levitated Marker for Entity and Relation Extraction

作者:Ye et al.,ACL 2022.

目录

  • 简介
  • 方法
  • 实验

1 简介

本文采用pipeline方法做实体关系联合抽取任务,主要是在PURE(Zhong and Chen.2021\(^{[2]}\))的基础之上,针对span表示以及span pair表示做的改进。

2 方法

首先文中提到的Levitated marker就是PURE中batch加速的markers插入方法,不再赘述感兴趣可以直接看原paper。

对于PURE中的span以及span pair表示来说作者认为其忽略了span之间以及span pair之间的关联性,这么一想好像确实如此有道理,PURE中span的表示只是使用span的start和end token的embedding拼接作为span表示,独立于比如(嵌套排列获取span嘛)都是同一个token开头的span其实必然有一定的相关性或者相邻的span也有一定的相关性这就没考虑到他们之间的相关性,另一方面,对于span pair的表示,原始关系模型直接插入markers独立于实体对的,之后改进的batch处理首先要明白其目的是为了效率能依次处理一句话中所有的span pair,但其本质是没变的只是为了能够batch处理改动了两处:位置共享以及antteion_mask,其仍然是独立于实体对的即是没有考虑他们之间的相关性的,比如都是实体对都是同一个sub大概率是有关联的嘛。

所以针对以上问题--span之间以及span pair之间的关联性问题,提出两种新的表示方案即neighborhood-oriented packing strategy、subject-oriented packing strategy,这两种packing策略大致如Figure 2所示。

2.1 Neighborhood-oriented Packing for Span

PURE对于span表示只是使用span的start和end的token拼接,span pair才使用Levitated Marker,本文不仅span pair使用Levitated Marker,为了能够达到上述目的span表示也使用Levitated Marker同时为了能够(因为Levitated Marker方法嘛最后还是用每个span markers的start_end token拼接作为span表示)使span markers的start和end token能够有相关联的信息作者做了两步处理,1) 首先常规操作嵌套排列拿到当前sequence的所有最大长度为L的spans,之后先把span的markers排好序,规则为从小到大,先按markers的start token位置再按end token的位置即图2中的(1,1)(1,2)...; 2) 因为限于计算力,我们能处理的序列长度是有限的,所以不能全都插到text后面,只能插一部分,因此这一部分即为一组,我们将所有的markers分成大小为K的若干组假设N组,所以有点像PURE 原始关系模型了,其实我们需要运行实体模型\((N \times num\_seq)\)次即N组每组的text都是同一个seq。此时,因为已经排好序了一组其实大部分都是相同的start token的span markers在一组若K大一些还会把相邻的span markers也包括进来,那么再将此new_text喂给编码器如BERT得到每个tonken的表示,后面就和Levitated Marker一样了,就取span markers的start token 和end token拼接作为span 表示。最后又把对应的span token的start和end token也拼到一起作为最终的span表示。

2.2 Subject-oriented Packing for Span Pair

同理为了能够实现前面说的编码实体对之间的关联性信息,其实采用类似section 2.1的方法是可行的只不过是将2.1中span markers(一对两个marker, (token1,token1)、(token1,token2),...)变为span pair的markers(一对四个marker: ,(sub1,obj1)、(sub1,obj2),...)而已,但理论可以但计算不允许,因为相比span markers这span pair要插入的markers太多了如果采用完全的Levitated Marker即便pack处理可能也吃力耗时,所以作者想了个办法,折中一下呗,sub采用solid markers即PURE原始关系模型直接插入markers再entity span前后,而obj span采用Levitated Marker方法(当然text不断地从后面插入markers到一定长度也得存一下再重新text后插markers即这就是所谓的pack一个意思吧?其实PURE实现的时候代码也是这么写的)即Subject-oriented Packing for Span Pair,采用这种span pair表示效率自然在PURE和PURE batch之间但性能最好,实验证明。

3 实验

暂时没细看,上两个子任务的对比实验结果把,详细看看这篇也可\(^{[3]}\)

想法&疑问

  • 好文,Introduction和related work也是值得一看的,之前就想到过联合抽取在span表示这里能不能瓦一下,因为看的几篇sota的span表示确实如本文中提到的那几种,虽然没有明确的如本文指明忽略了相关性这类的想法,但就是感觉有点emm还是可以看看能不能有更好的表示,因为确实两个子任务中span或span pair表示感觉像是呈上启下的作用很重要啊,结果就找到这篇paper了。。。,后续确实可以在这方面继续看看能不能再挖一挖。所以啊现在看paper还是要杂一点,当然肯定要与大方向相关了。
  • 实体模型中也用Levitated Marker方法,它的markers包含的是什么信息呢好像没明确说明就只是单纯的markers(只是通过pos和attention编码对应位置的span相关信息?),因为关系模型的话Levitated Marker其markers包含了实体类型信息即

参考

[1] Deming Ye1,2, Yankai Lin6, Peng Li6,7, Maosong Sun1,2,3,4,5?.Packed Levitated Marker for Entity and Relation Extraction.ACL 2022.

[2] Zexuan Zhong and Danqi Chen.A Frustratingly Easy Approach for Entity and Relation Extraction.NAACL 2021.

[3] <关系抽取>ACL2022关系抽取SOTA之PL-Marker - 知乎 (zhihu.com).