读书人工智能

Bi-GCN:基于双向图卷积网络的社交媒体谣言检测

2021-10-27  本文已影响0人  酷酷的群

论文标题:Rumor Detection on Social Media with Bi-Directional Graph Convolutional Networks
论文链接:https://arxiv.org/abs/2001.06362
论文来源:AAAI 2020

一、概述

传统的谣言检测方法缺乏从谣言的传播(propagation)扩散(propagation)结构中学习的高层表示。最近的研究已经开始从谣言的传播结构中学习高层表示,比如RvNN等方法。然而这些方法只关注谣言的传播却忽略了谣言扩散的影响。虽然一些方法已经开始尝试使用CNN来引入谣言扩散信息,但是基于CNN的方法只能捕获局部邻域的相关特征,却不能处理图或树结构中的全局结构关系,因此谣言扩散的全局结构特征在这些方法中被忽略了。事实上CNN也并非被设计用来从结构化的数据中学习高层特征,不过图卷积网络(Graph Convolutional Network,GCN)可以做到。

GCN已经在很多领域取得了成功,不过我们不能简单地将GCN应用到谣言检测任务上。如下图(a)所示,GCN,或者称为无向GCN(UD-GCN)聚合信息只依赖相关帖子的关系却丢失了贴子之间的顺序关系:

GCN

UD-GCN虽然可以处理谣言扩散的全局结构特征,但是忽略了谣言传播的方向。沿着关系链的深度传播与社区群体内部的广度扩散是谣言的连个主要特点,因此需要一个方法来同时处理这两种传播方式。

本文提出了Bi-GCN方法来同时处理谣言的传播与扩散。Bi-GCN同时在top-down和bottom-up的图结构上进行操作,具体的通过top-down GCN(TD-GCN)来处理谣言的传播,以及通过bottom-up GCN(BU-GCN)来处理谣言的扩散。如上图(b)(c)所示,TD-GCN从父亲节点到子节点前向传播信息来模拟谣言的传播,BU-GCN从节点的子节点聚合信息来表示谣言的扩散过程。

二、方法

  1. 问题陈述

使用C=\left \{c_{1},c_{2},\cdots ,c_{m}\right \}代表谣言检测数据集,c_{i}代表第i个事件,m是事件的数量,c_{i}=\left \{r_{i},w_{1}^{i},w_{2}^{i},\cdots ,w_{n_{i}-1}^{i},G_{i}\right \}n_i代表帖子的数量,r_i是原帖子,w_{j}^{i}是第j个相关回复的帖子,G_{i}代表传播结构。具体的,G_{i}被定义为一个图\left \langle V_{i},E_{i}\right \rangler_i是根节点,E_{i}=\left \{e_{st}^{i}|s,t=0,\cdots n_{i}-1\right \}代表从被回复的帖子到转发帖子或回复帖子的边的集合(如上图(b))。举例来说,如果w_{2}^{i}回复了w_{1}^{i},那么将有一条有向边w_{1}^{i}\rightarrow w_{2}^{i},也就是e_{12}^{i};如果w_{1}^{i}回复了r_{i},那么将有一条有向边r_{i}\rightarrow w_{1}^{i},也就是e_{01}^{i}。定义A_{i}\in \left \{0,1\right \}^{n_{i}\times n_{i}}为邻接矩阵:

a_{ts}^{i}=\left\{\begin{matrix} 1,\; if\; e_{st}^{i}\in E_{i}\\ 0,\; otherwise \end{matrix}\right.

X_{i}=\left [x_{0}^{iT},x_{1}^{iT},\cdots ,x_{n_{i}-1}^{iT}\right ]是帖子的特征矩阵,采用top-5000词的TF-IDF值作为帖子的特征向量。对于每个c_i,都被关联的其真实性标签y_{i}\in \left \{F,T\right \}(False Rumor和True Rumor)),有时也有更细粒度的分类y_{i}\in \left \{N,F,T,U\right \}(Non-rumor, False Rumor, True Rumor, Unverified Rumor)。给定数据集,目的是学习分类器f:C\rightarrow Y来进行谣言检测。

  1. 图卷积网络

GCN的卷积操作被看做是一个消息传递(message-passing)的结构:

H_{k}=M(A,H_{k-1};W_{k-1})

H_{k}\in \mathbb{R}^{n\times v_{k}}是第k层的图卷积层(Graph Conventional Layer,GCL)计算得到的隐层特征矩阵,M是信息传递函数,W_{k-1}是训练参数矩阵。

本文采用的GCN采用第三代GCN,也就是Semi-Supervised Classification with Graph Convolutional Networks中提出的GCN架构,参考链接:第三代图卷积网络:使用图卷积网络进行半监督分类

按照上面的GCN结构,图卷积层定义为:

H_{k}=M(A,H_{k-1};W_{k-1})=\sigma (\hat{A}H_{k-1}W_{k-1})

其中\hat{A}=\tilde{D}^{-\frac{1}{2}}\tilde{A}\tilde{D}^{-\frac{1}{2}}\tilde{A}=A+I_{N}\tilde{D}_{ii}=\sum _{j}\tilde{A}_{ij}代表第i个节点的度,W_{k-1}\in \mathbb{R}^{v_{k-1}\times v_{k}}\sigma (\cdot )代表激活函数,比如ReLU。

  1. DropEdge

DropEdge是用来减少基于GCN的模型过拟合的方法。在每个训练epoch中,按照一定概率随机丢掉一些边来为输入数据引入一些随机性和多样性。假设图A边的总数为N_e,丢弃率为p,DropEdge以后的邻接矩阵就变为A^{'}

A^{'}=A-A_{drop}

A_{drop}是使用N_e\times p随机采样的边构成的矩阵。

  1. Bi-GCN谣言检测模型

Bi-GCN的核心思想是学习谣言传播和扩散的高层表示,在本文中采用的GCN都是用两层上述图卷积层。下图展示了模型的整个流程,主要分为4步:

Bi-GCN

对于一个事件c_i,构建它的传播图结构\left \langle V_{i},E_{i}\right \rangleA\in \mathbb{R}^{n_{i}\times n_{i}}X分别是邻接矩阵和特征矩阵,A只包括前面图(b)中从上到下的边。每个训练epoch中都会按照几率p来获得A^{'}。以A^{'}X为基础,构建Bi-GCN模型,Bi-GCN包括两种,top-down GCN(TD-GCN)和bottom-up GCN(BU-GCN),两种GCN的邻接矩阵是不同的,采用的特征矩阵X是相同的。对于TD-GCN,A^{TD}=A^{'},而对于BU-GCN,A^{BU}=A^{'T}

A^{TD}X应用到前面的图卷积过程,一共有两个图卷积层:

H_{1}^{TD}=\sigma (\hat{A}^{TD}XW_{0}^{TD})\\ H_{2}^{TD}=\sigma (\hat{A}^{TD}H_{1}^{TD}W_{1}^{TD})

这里H_{1}^{TD}\in \mathbb{R}^{n\times v_{1}},H_{2}^{TD}\in \mathbb{R}^{n\times v_{2}}代表TD-GCN两个图卷积层的隐层特征。W_{0}^{TD}\in \mathbb{R}^{d\times v_{1}},W_{1}^{TD}\in \mathbb{R}^{v_{1}\times v_{2}}是TD-GCN的卷积核参数矩阵。采用ReLU作为激活函数\sigma (\cdot ),同时在图卷积层上应用Dropout。

与TD-GCN采用类似的过程得到H_{1}^{BU}H_{2}^{BU}

事件的源帖子通常包含丰富的信息,能够产生广泛的影响,因此有必要更好地利用源帖子的信息来学习节点和源帖子之间更精确的节点表示。本文提出了一种根节点特征增强的策略来更好地利用源帖子信息。具体的,对于TD-GCN的第k层,我们拼接第k层每个节点的隐层特征向量和第k-1层的根节点特征向量来构建一个新的特征矩阵:

\tilde{H}_{k}^{TD}=concat(H_{k}^{TD},(H_{k-1}^{TD})^{root})

H_{0}^{TD}=X。按照上述规则,再计算H_{2}^{TD}时用\tilde{H}_{1}^{TD}=concat(H_{1}^{TD},X^{root})代替H_{1}^{TD},然后得到\tilde{H}_{2}^{TD}

H_{2}^{TD}=\sigma (\hat{A}^{TD}\tilde{H}_{1}^{TD}W_{1}^{TD})\\ \tilde{H}_{2}^{TD}=concat(H_{2}^{TD},(H_{1}^{TD})^{root})

类似地,以同样的方式获得\tilde{H}_{1}^{BU}\tilde{H}_{2}^{BU}

谣言的传播和扩散表示通过聚合TD-GCN和BU-GCN的节点表示来获得,采用mean-pooling的方式:

S^{TD}=MEAN(\tilde{H}_{2}^{TD})\\ S^{BU}=MEAN(\tilde{H}_{2}^{BU})

然后拼接这两个表示:

S=concat(S^{TD},S^{BU})

接着通过多个全连接层和softmax层进行预测:

\hat{y}=Softmax(FC(S))

这里\hat{y}\in \mathbb{R}^{1\times C}是所有类的概率。训练时使用交叉熵损失并且应用L2正则化,使用随机梯度下降SGD和Adam优化器进行训练。

三、实验

  1. 数据集

在Weibo,Twitter15,Twitter16三个数据集上进行实验,数据集统计如下:

数据集
  1. 性能对比

以下是在三个数据集上的结果:

Weibo Twitter15和Twitter16
  1. 消融实验

对比不同架构和有无根节点特征增强对模型性能的影响:

消融实验
  1. 谣言早期检测

谣言传播的不同时期所达到的模型性能:

谣言早期检测
上一篇 下一篇

猜你喜欢

热点阅读