论文笔记 – Dialogue Relation Extraction with Document-level Heterogeneous Graph Attention Networks

Hui Chen, et al., “Dialogue Relation Extraction with Document-level Heterogeneous Graph Attention Networks”, arXiv 2020

1 简介

  • 姓名:DHGAT
  • 机构:新加坡科技设计大学
  • 任务:DialogRE
  • 动机:引入 speaker 之间的关系信息
  • 方法:hierarchical LSTM 得到 token 表示,建图,指定 meta path 的 res-GAT,最后分类。
    • LSTM:
      • utterence-level / local:每个 utterence 用 LSTM 编码,(拼接 POS 和 entity type),得到 token 的 embedding;
      • doc-level / global:max pooling 得到一个 utterence 的 embedding,再输入 LSTM,更新 utterence 的 embedding
    • 建图:
      • 点:speaker, word, utterence, entity type, argument
      • 边:word -> utterence(这里使用 POS 作为边的 embedding), word -> entity type, speaker -> utterence, argument -> utterence, argument -> entity type。其它边的 embedding 都是用随机初始化。
    • meta path 推断:
      • 是一种特别的 rGAT,每次指明要更新的点的类型,impressive
      • Vu -> Vb -> Vt -> Vb -> Vu -> Vb,每个 -> 代表 res-GAT + linear
  • 性能:不用 BERT 的 SOTA
  • 缺点:引入了 argument node,一张图只能学一个 pair,太慢啦
  • 短评:meta path 推断和 hierarchical LSTM 真是很有意思,不知道是不是作者原创的

2 方法

整体流程如上图所示。encoder 和建图在 intro 已经说的比较详细了,下面只详细说一下魔改 GAT 和 meta path 的推断。

2.1 魔改 GAT

原先 GAT 在计算 logit 时,就是两个点拼一起,linear + relu;作者引入了边的 embedding:$$\mathcal{F}(h_i,h_j) = \text{LeakyReLU}(a^T(W_ih_i;w_jh_j;E_{ij}))$$ $$\alpha_{ij} = \frac{\exp(\mathcal{F}(h_i,h_j))}{\sum_k\exp(\mathcal{F}(h_i,h_k))}$$

2.2 meta path inference

作者把点归了三类:$V_u$ 表示 utterence nodes,$V_b$ 表示 word nodes, speaker nodes and argument nodes,$V_t$ 表示 entity type nodes。推断的时候采用 Vu -> Vb -> Vt -> Vb -> Vu -> Vb 的顺序,即

每次 GAT 都只采取特定的节点,而且这次 GAT 之后,只有特定节点中的特定节点更新。(我是这么理解的)这样其实就相当于规定了顺序的 RGCN(前面计算 attn score 就相当于对不同边的类型有了不同的权重,这里又指明了更新的顺序)。感觉方法很有意思,一定要看一下它的实现方式。

3 实验

  1. 不用 BERT 的 sota,
  2. POS embedding, NER embedding, and POS edge feature 都有用,POS embedding 有 2% 的 drop
  3. 推断,现在的三次最好
  4. 显显式拼接 entity type,让关系分类过于依赖 type,在小众 rel 时容易混淆

4 思考

  1. dialogRE 可不可以用 temporal GCN 来做?每个 utterence 是一个 timestep,每次都扩充这张图这样?loss 的时候也对时间做一个惩罚,这样 f1c 说不定会表现的好一些?
  2. 在建图的时候,作者对 word node 使用 Glove,感觉有点奇怪,前面 LSTM 不是已经得到了带 context 信息、带 entity type、带 POS 信息的 embedding 了嘛?为啥不用这个更好的呢?
  3. 在词的后面拼接 POS 信息,这个我是第一次见,这有什么道理吗?不太能明白。
  4. 建图的时候加入的 argument node,也可以理解成是 anchor 的使用,感觉可以和 这篇文章 的 4.3 一起总结一下。而且这个 argument node 在 DocRED 上也是能借鉴的。

5 TODO

  1. meta path inference 的实现
  2. DialogRE 里面 95% 的 entity pair 都是跨句子的?!

发表评论