论文笔记 – An End-to-end Model for Entity-level Relation Extraction using Multi-instance Learning

Markus Eberts and Adrian Ulges, “An End-to-end Model for Entity-level Relation Extraction using Multi-instance Learning”, EACL 2021

1 简介

  • 姓名:JEREX
  • 机构:莱茵曼应用技术大学
  • 任务:Joint Doc RE
  • 动机:第一个做 joint 的 docRE
  • 方法:使用 MIL 的方法,finetune BERT,有四个子任务
    • Entity Mention Localization:用 max pooling 表示 span,再拼接 span 长度 embedding,FFNN 对 span 二分类
    • Coreference Resolution:拼接两个 mention embedding(就是上面的 span embedding)和 mention 的编辑距离的 embedding,FFNN 二分类,看这俩是不是属于同一个 entity
    • Entity Classification:从 mention,max pooling 得到 entity 表示,FFNN 分类
    • Relation Classification:作者采用了两种策略,分别实验
      • global:entity 拼接 entity type,pair 再拼起来,分类
      • multi instance:每个 mention pair(+ 中间 context embeddding + 距离的 embedding) 拼成 mention pair embedding,max pooling 后,再拼接 entity type 再分类
  • 实验:
    • global 没有 multi instance 好,因为本身是多样本多标签分类,还是就得用这个领域常用的办法
    • mention -> entity:max pooling 比 mean 好
  • 性能:与 pipeline 方法的 SOTA 差不多,单独 DocRE 任务上,和 SOTA 也差不多
  • 短评:真是个不错的方向呀,dialogRE 也可以考虑搞成这样了哈哈哈哈

2 思考

  1. 大家都知道,entity type 对 RE 很重要。常见的想法是把 entity type embedding 直接拼在后面,这篇文章还把它当做一个 task,说不定这对最后 RE 结果也有影响?但是到底有没有用呢?他也没做实验。
  2. 关于 MIL 的训练,本文就是四个子任务,loss 直接加一起,直接从头就都一起搞。我知道还有一种方式,是先 loss1,差不多收敛之后,再 loss1 + loss2,这样一步一步,最后才四个一起。他们这样做一般都是因为,可能 loss1 是一个自编码器这种,必须得先有个差不多的结果(我猜的)。不知道本文这样做,能不能有提升。
  3. 关于 BCE 负样本的采样:本文的所有用 BCE 的任务,负样本采样都是固定的个数个。不知道其他文章是怎么负采样的,感觉都没有直接说,那就是 $C_n^2$ 全要了?
  4. 关于 mention -> entity 使用 max pooling:
    1. 作者在实验部分,有一个不用 MIL 的,就相当于把姚远的 Baseline 的 mention -> entity 那里改一下 max pooling,结果好了很多。这个是为啥呢?max pooling 的物理意义,我还是搞不明白。
    2. 作者说 the multi-instance selection usually selecting the most relevant instances,没明白,max pooling 怎么选出的例子呢?难道不是每一位选择数值最大的吗?最后出来的不是相当于一个结合的结果嘛?
    3. 这里的 max pooling 得到的 embedding,在 CR 这个子任务上,怎么和数据集提供的 entity 标签对应起来呢?换句话说,怎么用上这个 entity 的监督信息呢?作者绕过了这个问题,采用的是二分类,就看这个 pair 是不是属于同一个 entity。我就在想,max pooling 得到的结果应该可以看做是一个 prototype,可不可以 min 这个 proto 与 gold entity 的距离?(还是要用匈牙利算法)
  5. 关于 relation 的方向性:因为是有方向的,所以本文是一个 pair 搞两次,即 [e1;e2] [e2;e1] 这样两次,分别看有无关系。那其实还有另一种方法,就是原先是 n+1 类,可不可以搞成带方向的 2n+1 类呢?这样感觉上应该是不如现在的,不过也没看到过有人对比这个。
  6. “Note that some documents in DocRED ex- ceed the maximum context size of BERT (512 BPE tokens). In this case we train the remaining position embeddings from scratch.” 没懂
  7. 本文在使用 DocRED 时,把标注有错的剔除了,以后可以考虑用它的数据集

发表评论