A Graph Convolutional Network with Adaptive Graph Generation and Channel Selection for Event Detection

motivation

图神经网络已经被证明可以很好的解决长距离的语义依赖。但是

  • 之前的方法大多使用固定的图,如依赖于外部解析器生成的图(句法依存图等)
    • 图是固定的
    • 无法使用梯度优化这个图
    • 如果图建错了,误差传播
  • 很多图都只关注了语法信息,而忽略了语义信息

    the information content extracted for aggregation is simply determined by the (syntactic) edge direction or type

因此,本工作提出了以下贡献:

  • adaptive graph generation,采样生成可微可导的图
  • gated-multi-channel
    • multi-channel selection,在两个相邻节点之间选择信息通道
    • information gating,限制通过的信息

Method

输入句子长度为\(n\),表示为\(S = [w_1, w_2, \dots, w_n]\),用\(\mathbf{w}_i, \mathbf{p}_i\)表示词嵌入向量和POS-tagging的嵌入向量。\(\mathbf{x}_i = [\mathbf{w}_i ; \mathbf{p}_i]\)

Adaptive Graph Generation Module

  • 学习 probabilistic head-selection (PHS) \(P\),其中每一行\(p_i\)对应一个单词\(w_i\),表示选择它的头节点的概率分布
  • 使用 STGumbel-Softmax 技巧从 PHS 矩阵中抽样一个图,其中 arg max 用于向前传递,梯度近似于向后传递中的正常Gumbel Softmax。

Deep biaffine attention for PHS matrix

首先讨论如何构造图的表示。

将输入序列\([\mathbf{x}_1, \mathbf{x}_2, \dots, \mathbf{x}_n]\)通过双向LSTM,得到上下文表示\([r_1, r_2,\dots,r_n]\),然后两个多层感知机计算每个节点作为从属节点和支配节点的概率:

\[h_i^{head} = \mathbf{MLP}_{arc}^{head}(r_i)\\ h_i^{dep} = \mathbf{MLP}_{arc}^{dep}(r_i) \]

计算两个节点之间一条边存在的概率

\[s_i = (H^{head})^T U_{arc} h_i^{dep} + (H^{head})^T v_{arc} \]

计算每条边存在的概率,构建PHS。

\[p_{i,j} = \frac{\exp (s_{i,j} ) }{ \sum^n_{k=1} \mathbb{I}_{[k \ne i]} \exp (s_{i,k})} \]

ST-Gumbel-Softmax trick for sparse-graph sampling

目前我们已经得到一张全连接的图,每条边的概率已被计算出来。但是这样作者并不满足,列举以下将全连接图转为稀疏图的原因:

  • 稀疏图的运算速度更快
  • downstream event detection module is usually nonlinear, which makes the two methods have different results.(没看懂)

  • 稀疏图可解释性更好

借助 ST-Gumbel Softmax trick,对于每个节点\(i\),根据\(P_i\)随机选取头部节点,one-hot编码表示如下:

\[a_i = \text{one-hot}(\argmax_{k \ne i} [\log p_{i,k} + g_{i,k}]) \]

其中,\(g_{i,k}\)是从gumbel分布中随机得到的噪音。
另外,用带温度的softmax函数替代不可微的\(\argmax\)操作。

\[\hat{a}_{i,k} = \frac{\exp((\log p_{i,k} + g_{i,k}) / \tau)}{\sum_{k' =1}^n \mathbb{I}_{k' \ne i} \exp ((\log p_{i,k'} + g_{i,k'}) / \tau)} \]

其中\(\tau\)表示温度,测试阶段,直接使用\(\argmax\)采样。

Gated-Multi-Channel GCN

首先说明一些GCN的基础和使用的符号。

之前的事件检测任务中使用的图,涉及到三种边:自环(self-loop),正边(along),反边(rev)。

\[\gamma_{i,j} = \gamma(w_i, w_j) = \left \{ \begin{matrix} 0 & \text{if } i = j \text{ (self-loop)}\\ 1 & \text{if } (w_i, w_j) \text{ in $\varepsilon$ (along)}\\ 2 & \text{if } (w_i, w_j) \text{ in $\varepsilon$ (rev)} \end{matrix}\right . \]

卷积计算:

\[h_i^{conv} = f(\sum_{(w_i, w_j) \in \varepsilon^*} \text{IC}_{\gamma_{i,j}}(h_j))\\ \text{IC}_{c}(h_j ) = W_c h_j + b_c \]

式中\(\text{IC}\)表示信息通道。可以理解为卷积核。

Gated-Multi-Channel GCN (GMC-GCN)

在GMC-GCN中,有\(C+1\)个通道,即涉及到两个点之间的边的\(C\)个通道和自环的通道。
对于自环的通道,GMC-GCN和原始GCN计算方式一样:\(\text{IC}_0 (h_i)\)
对于非自环,计算每个通道的注意力分布\(\alpha_{i,j} \in \mathbb{R}^C\)

\[\alpha_{i,j} = \text{softmax}(h_i^T U_s^{\gamma_{i,j}} h_j + (h_i \oplus h_j)^T M_{s}^{\gamma_{i,j}} + b_s^{\gamma_{i,j}}) \]

另外,通道的选择还应该考虑到相邻节点的语义特征,

\[h_i^{conv} = f(\text{IC}_0(h_i) + \sum_{(w_i, w_j) \in \varepsilon^*, j \ne i} \sum_{c=1}^C \alpha_{i,j,c} \cdot \text{IC}_c (h_j)) \]

最后还使用了一个门控机制来调节要传递和聚合的信息内容的数量,原因有以下两个。

  • 首先,不同的邻居对一个给定的顶点应该有不同的影响,给它们分配相同的权重是不公平的。
  • 其次,这种门控机制也有助于纠正图生成阶段可能出现的错误。

\[g_{i,j} = \sigma ((h_i \oplus h_j)^T v_g + b_g) \]

最后,修改信息聚合方式

\[h_i^{conv} = f(\text{IC}_0(h_i) + \sum_{(w_i, w_j) \in \varepsilon^*, j \ne i} g_{i,j} \sum_{c=1}^C \alpha_{i,j,c} \cdot \text{IC}_c (h_j)) \]

用BIO的方式做事件检测:

\[y_i = \text{softmax} (W_o h_i^{conv} + b_o) \]

posted @ 2022-09-20 11:28  TABball  阅读(99)  评论(0编辑  收藏  举报