Wang Xu, et al., “Document-Level Relation Extraction with Reconstruction”, AAAI 2021
1 简介
- 姓名:DocRE-Rec
- 机构:哈工大 赵铁军
- 任务:DocRE
- 流派:基于图
- 动机:原来建图都是用简单规则连接,在这个图上信息传递,作者觉得,建的图也是可以通过关系的监督,来调整结构,从而让有关系的 entity pair 连接更强,没关系的更弱
- 方法:用 dense GAT 作为 baseline,然后加个 reconstruction loss
- dense GAT:用 EoG 的方式建图,GAT dense 连接,得到 node embedding;entity pair 的拼一起,BCE 分类
- 边的重建:把一条边当做序列,用 LSTM embedding,连乘得到一条边的分数。作者定义了三种表示 entity pair 关系的 meta path,用交叉熵让这些带关系的路径分数最高。(所以其实不能算是“重建边”,准确的说还是关注 inference path 的信息,来优化节点表示)
- 性能:挺不错,dense GAT 就已经和 LSR 差不多了,+ reconstruction 更高了一个多点
- 短评:又是一种新的“优化节点表示”的方法,原先只是引入 context,做 attn 等等,这一片相当于用显式的 inference 来优化节点表示,可不可以认为这是一个更 joint 的方法呢?
2 方法
本文的 base model,即 dense 连接的 GAT,我就不再赘述了,建图方式也和 EoG 完全一样。下面只详细说一下 reconstruction loss。
作者首先定义三种 meta path:
- 模式识别边:EM -> MM -> EM 有这个 pattern 就是有关系
- resoning 边:EM -> MM -> CO -> MM -> EM 中间多一步 coreference
- coreference 边:ES -> SS -> ES 就是相邻句子的 entity 的 coreference,也算有关系
然后就对于每个 entity pair 之间的路径,挨个匹配,如果能匹配到上述三者之一,这条路径在后面的 reconstruction loss 中就会被用到(正例);如果一个 entity pair 里面有多条符合的路径,就只保留一条,优先顺序是 1>2>3。最终,每对 entity pair 都会匹配到一个路径(我猜的)。
对于一条路径,把它看做节点的序列,用 LSTM 建模,输入每个节点 GAT 得到的表示 $q$ 输出 LSTM 隐表示 $p$,softmax 计算每个词的分数,连乘得到这句话的分数。这里我其实没有特别明白,只是说一下我自己的理解:
LSTM 的表达式:
$$p_{k} = \text{LSTM}(p_{k-1}, q_{k-1})$$
这里还蛮容易理解,就是普普通通一层 LSTM
$$P(v_k|v_{<k}) = \frac{\exp(p_kW_rq_k)}{\sum_n\exp(p_kW_rq_n)}$$
这里用 softmax 算分数,我就不太理解了。首先,我不清楚 $W_r$ 这里的角标是什么意思,是每个 relation 一个 weight 吗?另外,我也不太确定分母的 $\sum_n$ 是对谁求和,是这个推断路径中的所有词吗?他的代码我看不懂,这个式子的含义我也看不懂。(文章中这个式子还多了一个 ]。。。)
$$\mathcal{N}(\phi_n) = \prod_{k=1}^C(P(v_k|v_{<k}))$$
这里就是连乘计算联合概率,也还好理解。不过,在计算 loss 的时候,交叉熵,负的那半部分本来应该是 $1-\mathcal{N}(\phi_n)$,作者把这部分替换成了 $\prod(1-P(v_k|…))$,这真的合理吗?这样交叉熵的目的就不是让一条序列的分数最大了,而是让每一个点的分数最大。但是这每一个点的分数代表什么,我又不能理解。。
训练的时候,loss 就是分类的 loss + 上面讲的 reconstruction loss。
推断的时候,计算分数除了拼接 entity pair 表示再 linear 以外,也加入了 $\sum\log(P_c)$ 来计算序列的分数(?)
3 实验
- sota @ DocRED
- dense GAT 就已经和 LSR 差不多了,+ reconstruction 更高了一个多点
- reconstruction 有用:模型随着训练,reconstruction 的性能与分类性能的增长有相同的趋势
- reconstruction 在训练和推断时都有用
- 加 reconstruction 之后,GAT 里面的 attn score 更不平均了,说明能更有针对的 attn 到某些词了
- 三种 meta path 都有用
4 思考
- 重建边的时候,并没有考虑这个边对应的关系,如果能再用具体关系作为边的监督信息,是不是会好一点?不过这里就会出现一个问题:比如多跳的时候,中间的每一段如果都赋予成头尾 entity 的关系,那一定是不合理的,只有 MM EM EE 边是可以有 relation type 的,这里可能就能用上 abductive inferece;其它类型的边,可以新建类似“coref”这种 relation type?然后用 RGCN?不过预测的时候,还是只能像本文一样,用那个 LSTM 打分作为辅助
- 我一直不明白,本文的 GAT 只有两层,还加 dense 连接,这难道是说明,即使加了 dense 链接,也是两层最好?加了 dense 链接,也还是过平滑?
- 确实呀!以前的基于图的方法,四部曲中间两步,先构造节点表示,再推理。节点表示这里,就用 herustic 的方法搞一下,平均一下得了;这篇文章感觉可以理解成,后面的 inference 我不要了,就拼接分类好了,我把 inference 的信息用三种简单的 meta path 定死,在前面节点表示中给他用上。直觉上,肯定是前面的步骤更重要,而且 GCN “reasoning” 的能力也有待商榷。
- 它的 reconstruction 我就没看懂,那里双线性是要做什么?要让 $p$ 变成啥样?和 $q$ 一样吗?这是文章最关键的一点(其实也是仅有的关键的一点),我却看不懂,搞的我整篇文章都很迷惑。。
5 TODO
- related 里面有几篇 reconstruction 做 NMT 的
great!