Snapshot

  • 论文来源:arXiv-2020.08 #JD AI Research#

  • 面向任务:DocRE

  • 方法分类:BERT-based

  • 论文动机:

    众所周知,文档内实体对关系的判断主要是依据与当前实体最相关的support/evidence sentence。根据这一动机设计一种可以引导预训练模型集中focus文档中最相关的位置,而往常PLMs在处理文档时需要同时encode关于所有实体对相关的信息。因此,attention values over all token are more uniform。同时suporting/evidence sentences can be used as an auxiliary task for explainable RE.

  • 指标分数:Ign F1:60.3 ; F1:62.5(RoBERTa-large)

    并未提及BERT-based的test结果 。

  • 快看速评:论文动机很简单,方法也比较优雅。但是对方法的合理性(比如在头部拼接实体是否真正可以起到引导预训练模型的fine-tuning有待考究),另外整个模型的计算复杂度肯定不低吧,自称SOTA,其实效果也勉勉强强,实验的分析比较单薄,这就是工业界论文的风格?

  • 代码复现:待公开

Method

实体引导下的关系抽取

  1. 要引导,怎么引导PLM关注当前实体呢?

    A:生成Entity-guided Input Sequences,以此引导PLM towards the entities.(合理性存疑)

    具体做法是在document前concatenate the first mention of a single entity.

    表示为“[CLS]”+H+”[SEP]”+D+”[SEP]”, 当模型存在有$N_e$个实体,那么就会有$N_e$个新的输入。

  2. 文档首部合并实体之后经BERT得到Output后,下一步关系抽取怎么做?

    head entity, tail entity与关系权重 $W_{i}$(learnable)相乘做线性变换:

    此时的Loss定义为:

    到这一步,只能算是无脑BERT;

支撑句引导下的关系抽取

支撑句预测:

预测一给定句子是否为一给定关系的支撑句。即sentence $j$ 是否为关系$r_i$的支撑句的分数:

$k$ 表示尾实体的序号吗?如果不是,那尾部实体的信息从何体现呢??如果是,哪里有尾实体的信息呢?奇奇怪怪的$k$

此时的Loss定义为:($N_t$表示了什么?)

支撑句下的BERT微调:

依据BERT内部的 attention probabilities 来给予支撑句更高的attention value.

针对每一实体对($head$, $tail$),取BERT最后输出的$l$层中,由此计算出文档中的sentence们在当前实体对下的“所需要关注度” —$a_{sk}$(一顿操作并没有看懂,特别是维度那块看起来很奇怪…)

下面的公式可以看作是对公式(3)的“微操”,为预测的支撑句加上权重。

此时Loss如下:

关系抽取与支撑句预测联合训练

以上全部为自己的个人理解,文章出发点不错,但是很多地方都描述不清楚…!!

Experiment

用了体量更大的模型RoBERTa-large在线test中取得不错的效果,换作BERT之后只在validation set上比较,这不是耍流氓吗?

  • 直到看到消融那里发现作者说联合训练效果是最差的?所以这篇文章到底说明了什么?还是我理解错了?

  • 使用BERT最后三层效果最好,见TODO第二条;

  • attention可视化比较有意思,看了TODO第二条再反过来看吧。

    结论:除了关注头尾实体之外,也开始关注于前后实体相关的短语,支撑句等区域。另外,attention value的scale也比baseline更大,更宽泛。。。

TODO

  • 新思路:先验(BERT)+推理(Graph)

    相比较于精心构图,设计节点连接方式,BERT-based的方法确实稍微优雅些,应该在可解释性方面多投入一些精力,发挥出bert的全部潜力

    • BERT内部attention :What Does BERT Look At? An Analysis of BERT’s Attention