论文解读(PGNN)《Rumor detection based on propagation graph neural network with attention mechanism》

论文信息

论文标题:Rumor detection based on propagation graph neural network with attention mechanism
论文作者:Yunrui Zhao, Qianqian Xu, Yangbangyan Jiang, Peisong Wen, Qingming Huang
论文来源:aRxiv 2020
论文地址:download 
论文代码:download

1 Introduction

  四种 "谣言":

    1. non rumors, namely verified information
    2. true rumors, namely the unverified information that turns out to be true
    3. false rumors, namely the unverified information that turns out to be false
    4. unconfirmed rumors, namely the unverified information that remains unresolved

  贡献:

    • 提出了一种显式构造谣言传播图的新方法
    • 提出了一种基于门控图神经网络的表示学习算法
    • 提出了两种不同分类策略的谣言检测模型
    • 为了提高检测性能,引入了注意机制

2 Method

2.1 Text embedding

  使用 word2vec 获得文本向量的方法:通常先讲每个单词表示为一个词向量,然后用词向量的平均作为整个句子的表示。社交媒体通常对于最大字数有限制,如微博最多允许发布 5000 字(2022年),但是通常我们的数据集帖子一般都很短,甚至就几个词,word2vec 算法通常不工作在这样的应用程序场景。本文使用 word2vec 算法的扩展方法—— Doc2vec 来生成推文内容的表示。Doc2vec 也被称为 paragraph2vec 或 sentence embedding ,它可以为一个短的文本甚至一个句子生成强大的表示。 

2.2. Node update

  使用 Doc2vec 算法得到传播图中每个节点的原始表示 $h_{v}^{(0)}$。然而,这种节点表示 $h_{v}^{(0)}$ 只考虑了文本内容,而忽略了邻域节点的信息和传播图中的拓扑结构。

  在单个迭代步骤中,邻居节点首先通过不同类型的关系路径交换信息,然后通过聚合邻域信息和它们自己的信息来更新它们的表示。因此,新获得的节点表示法同时包含了文本信息和上下文信息。

  节点 $v$ 的消息聚合函数:

    $h_{v}^{(t)}=\sum\limits _{u \in \mathbb{I N}(v)} \sum\limits_{i=1}^{|R|} I\left(\Psi\left(e_{u, v}\right)==r_{i}\right) \alpha_{i} W_{i} h_{u}^{(t-1)}+b_{i}, \quad \sum\limits_{i=1}^{|R|} \alpha_{i}=1  \quad\quad\quad(1)$

  其中,$R$ 是关系路径的集合,$|R|$ 表示关系路径类型的总数。【两种关系路径:如下的实线和虚线】

  

  根据 $\text{Eq.1}$ 这种方式能很快收敛到最终的表示(过平滑)。本文将门控机制纳入 $\text{Eq.1}$ 的更新过程中,优点是消除过平滑。

  门控循环神经网络有两种常见的变体:1)long short-term memory(LSTM)、gated recurrent units(GRU)。在这项工作中,本文使用 GRU 作为隐藏单元,而不是 LSTM 来提高效率,因为 GRU 使用了一个更简单的架构,并且可以以更少的参数实现几乎相同的性能

  从步骤 $t-1$ 到步骤 $t$ 的更新过程如下所示:
   $\begin{array}{l}\delta_{v}^{(t)}=\sum\limits_{u \in \mathbb{N}(v)} \sum\limits_{i=1}^{|R|} I\left(\Psi\left(e_{u, v}\right)==r_{i}\right) \alpha_{i} W_{i} h_{u}^{(t-1)}+b_{i}  \quad (2)\\z_{v}^{(t)}=\sigma\left(W_{z} \delta_{v}^{(t)}+U_{z} h_{v}^{(t-1)}\right) \quad (3)\\r_{v}^{(t)}=\sigma\left(W_{r} \delta_{v}^{(t)}+U_{r} h_{v}^{(t-1)}\right) \quad (4)\\\tilde{h}_{v}^{(t)}=\tanh \left(\tilde{W} \delta_{v}^{(t)}+\tilde{U}\left(r_{v}^{(t)} \odot h_{v}^{(t-1)}\right)\right) \quad (5)\\h_{v}^{(t)}=\left(1-z_{v}^{(t)}\right) \odot h_{v}^{(t-1)}+z_{v}^{(t)} \odot \tilde{h}_{v}^{(t)} \quad (6)\end{array}  $

  其中:

    • $\odot$  是元素乘;
    • 重置门 $r_{v}^{(t)}$  决定着有多少之前的隐藏状态 $h_{v}^{(t-1)}$ 被保存到当前的隐藏状态 $\tilde{h}_{v}^{(t)}$;
    • 更新门 $z_{v}^{(t)}$ 根据候选状态 $\tilde{h}_{v}^{(t)}$  和之前的状态 $h_{v}^{(t-1)}$  确定如何获取当前隐藏状态 $h_{v}^{(t)}$;
    • $\sigma(x)$ 和 $\tanh (x)$ 是激活函数;
  Note:上述公式可以理解为 GNN 消息聚合 + GRU (不带偏置项)【直接将 GNN 的输出作为 GRU 的输入】

  门控机制的好处:1) 可以控制信息的累积速度;2) 可以减少过度迭代引起的噪声;

  GRU 的回顾:

    $\begin{array}{l}r_{t}=\sigma\left(W_{i r} x_{t}+b_{i r}+W_{h r} h_{(t-1)}+b_{h r}\right) \\z_{t}=\sigma\left(W_{i z} x_{t}+b_{i z}+W_{h z} h_{(t-1)}+b_{h z}\right) \\n_{t}=\tanh \left(W_{i n} x_{t}+b_{i n}+r_{t} *\left(W_{h n} h_{(t-1)}+b_{h n}\right)\right) \\h_{t}=\left(1-z_{t}\right) * n_{t}+z_{t} * h_{(t-1)}\end{array}$

  Fig.2 展示了节点 $v$ 根据 Eq.2---Eq.6 的更新过程:【黑色的 dash line 代表感受野】

  

  当在等式之后聚合来自邻居的信息时,我们加入了注意机制来调整权重,修正后的方程式显示为 Eq.7:

    $\delta_{v}^{(t)}=\sum\limits _{u \in \mathbb{I}(v)} \sum\limits_{i=1}^{|R|} I\left(\Psi\left(e_{u, v}\right)==r_{i}\right) \alpha_{i} a t t_{u}^{(t-1)} W_{i} h_{u}^{(t-1)}+b_{i} \quad (7)$

  注意力得分 $a t t_{u}^{(t-1)}$ 如下:

    $\operatorname{att}_{u}^{(t)}=\frac{\exp \left(h_{u}^{(t)} \cdot h_{v}^{(t)}\right)}{\sum\limits _{u^{\prime} \in \mathbb{N}(v)} \exp \left(h_{u^{\prime}}^{(t)} \cdot h_{v}^{(t)}\right)}, u \in \operatorname{IN}(v)\quad (9)$

  根据上述过程更新 $T$ 次后,可以得到传播图中每个节点的最终表示。但由于表示的表达能力是通过单层的图神经网络学习的。我们提出的算法也使用了多层架构,更新过程如 Eq.2 到 Eq.6 所示,但是不同层的参数可能完全不同,这使得每一层在更新节点表示时都要关注不同的信息。相邻层中节点表示的关系如下:

    $\forall v \in V,\quad  h_{v}^{(0)}(m+1)=h_{v}^{\left(T_{m}\right)}(m)\quad (10)$

  其中 $T_m$ 为在第 $m$ 层的总更新时间,$h_{v}^{(t)}(m)$ 为节点 $v$ 在第 $m$ 层更新 $t$ 次后的隐藏状态。

完整算法如下:
  

2.3 Classifification

  Idea1:谣言检测可以看成一个图分类问题:

  将所有节点的表示平均池化,并放入 FC 中进行分类:

    $g=\tanh \left(\left(\frac{1}{N} \sum_{v \in V} H_{v}\right)^{T} W_{g}+b_{g}\right)\quad (10)$

    $\hat{y}=\operatorname{softmax}(F(g))\quad (11)$

  Idea2:首先根据每个节点的表示来计算单个的预测概率,然后使用线性求和得到最终的结果:

    $\hat{y}=\operatorname{softmax}\left(\sum_{v \in V} \sigma\left(H_{\nu}^{T} W_{e}+b_{e}\right)\right)\quad (13)$

3 Experiment

Datasets 

  

Evaluation metrics

    $\begin{array}{l}\text { Precision }=\frac{T P}{T P+F P} \\\text { Recall }=\frac{T P}{T P+F N} \\F_{1}=2 \frac{\text { Precision } \cdot \text { Recall }}{\text { Precision }+\text { Recall }}\end{array}$

Result

  

 

 

posted @ 2022-12-11 17:18  图神经网络  阅读(280)  评论(0编辑  收藏  举报
Live2D