实体关系抽取

关系抽取分为pipeline型和联合(Joint)抽取。

pipeline形式:

  • 指把关系抽取,拆分成多个任务,如【先抽Subject,再一起抽Predict和Object】(CasRel)、【先判断Predict,再一起抽Subect和Object】(PRGC)。可见,每一个子任务都依赖前面的任务结果作为输入,存在误差传播的问题

Joint常见两种类型:

  • 不同任务之间共享编码层,通过编码层参数共享,在实体抽取和关系抽取的能进行信息交互。注意的是,解码时还是Pipeline的形式,一样存在误差传播的问题
  • One-Stage的解码形式,如TPLinker、OneRel,不同任务之间没有互相作为输入依赖,避免误差传播的问题

关系抽取还要考虑以下问题:

在这里插入图片描述

  • SEO:SingleEntityOverlap,如上图中的Los Angeles与多个实体有关系
  • EPO:EntityPairOverlap,如上图的China与Beijing有capital city和contains两个关系
  • SOO:Subject Object Overlap,也有称为HOO(HeadTailOverlap)的,Subject和Object有nest嵌套的情况。

前沿的方法基本都能解决Overlap问题。而应用时,要看实际场景会不会遇到这些问题,假如没有的话,其实大部分方法都可以进行简化的。

CasRel(ACL 2020)

CasRel:Cascade Relational Triple Extraction

《A Novel Cascade Binary Tagging Framework for Relational Triple Extraction》

吉林大学、苏神的文章

在这里插入图片描述

CasRel解决EPO方法就是“拆”,同样是先抽Subject,如图中Jackie R.Brown被抽取出来,不同于ETL,用一个序列标注把所有Predict和Object都抽取出来,CasRel对于每个关系类型都要单独做对应的Object抽取,有N个关系,就有2N个序列(一个关系要有一个Start序列和End序列)

此外,CasRel是用 0/1 这种Binary Tagging的方式,Start序列把实体的头token标为1,End序列把实体的尾token标为1,解码时利用nearest的原则

为了把Subject的信息作为先验信息,带入到Predict和Object的抽取中。论文对Subecjt在词上面做mean pooling,然后拼接到指定Predict的Object抽取的token上面,从而完成Subject到Predict和Object的映射。

p i s t a r t _ o = σ ( W s t a r t r ( x i + v s u b k ) + b s t a r t r ) p i e n d _ o = σ ( W e n d r ( x i + v s u b k ) + b e n d r ) p_i^{start\_o}=\sigma(W^r_{start}(x_i+v^k_{sub})+b^r_{start}) \\ p_i^{end\_o}=\sigma(W^r_{end}(x_i+v^k_{sub})+b^r_{end}) pistart_o=σ(Wstartr(xi+vsubk)+bstartr)piend_o=σ(Wendr(xi+vsubk)+bendr)

span-based(2021)

Span-based Joint Entity and Relation Extraction with Transformer Pre-training
在这里插入图片描述

SpERT: 也是采用一个encoder,两个decoder分别解码实体及实体pair间的关系,可以看图最清楚了。

  1. 采用span方式的生成所有潜在的span(例: eat a apple ,生成片段:eat, eat a, eat a apple, a, a apple, apple也就是一句话T个字,会生成T*(T+1)/2个片段),对每个span进行实体的判别.*
  2. 实体分类(span-entity classification):通过concat(maxpool(span_len) || width_embedding || cls), 以此向量代表实体的特征,从而进行分类。
  3. 关系分类(span-classification),若有S个entity,则进行S*(S-1)次实体pair分类。 实体pair特征为concat(e(s1) || maxpooling(local_context) || e(s2))。
    最后两个loss叠加作为总体loss一起进行优化。 Loss = loss(span-entity classification) + loss(span-classification)

SpERT主要适用于嵌套的实体问题,同时也适用于multi-relation问题,但是两个decoder的pipline解码方式也是存在误差累积问题的。

TPLinker(COLING 2020)

TPLinker:Token Pair Linking

《TPLinker: Single-stage Joint Extraction of Entities and Relations Through Token Pair Linking》

中科大的文章

像CasRel这种Pipeline方法缺点在于曝光偏差误差传播

  • 曝光偏差:如CasRel训练时,是拿Gold Subjet作为输入去训练抽取Predict和Object的模块,而在预测时,是拿预测出来的Subject作为输入的,这就造成train和test的bias
  • 误差传播:错误不可逆地传播。如某个Subject漏抽了,那Predict和Ojbect那一步是无法修复的,误差会累积传播,不可逆

方法解读:

  • TPLinker的解决方法在于构造1+2*N的全局信息矩阵(N为关系类别数)。首先,1个矩阵用于抽取所有的Subject和Object。另外对于每个关系,构建两个矩阵,分别为subject head to object head(SH-to-OH)和subject tail to object tail(ST-to-OT)。然后利用handshaking tagging scheme来做一个实体与关系之间的对齐,解码出三元组
  • 因为TPLinker在训练时不同矩阵信息没有互相作为输入依赖(虽然解码时是有互相约束的,但不作为输入即可),从而实现了train和test的一致性

在这里插入图片描述
在这里插入图片描述

优点:

  • 能解决SEO/EPO/SOO重叠问题
  • 能解决Pipeline方法令人诟病的曝光偏差和误差传播

GPLinker(2022)

看参考文献吧

参考

https://zhuanlan.zhihu.com/p/349699217

GPLinker:基于GlobalPointer的实体关系联合抽取

https://spaces.ac.cn/archives/7161
https://zhuanlan.zhihu.com/p/494142704
https://zhuanlan.zhihu.com/p/498089575
https://zhuanlan.zhihu.com/p/480408779

  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值