谣言检测——(GCAN)《GCAN: Graph-aware Co-Attention Networks for Explainable Fake News Detection on Social Media》
论文信息
论文标题:GCAN: Graph-aware Co-Attention Networks for Explainable Fake News Detection on Social Media
论文作者:Yi-Ju Lu, Cheng-Te Li
论文来源:2020, ACL
论文地址:download
论文代码:download
1 Abstract
目的:预测源推文是否是假的,并通过突出显示可疑的转发者上的证据和他们所关心的词语来产生解释。
2 Introduction
我们预测一个源推文故事是否是假,根据它的短文内容和用户转发序列,以及用户个人资料。
我们在三种设置下检测假新闻: (a) short-text source tweet (b) no text of user comments (c) no network structures of social network and diffusion network.
本文贡献:
(1) 研究了一种新颖、更现实的社交媒体上的假新闻检测场景;
(2) 为了准确的检测,我们开发了一个新的模型,GCAN,以更好地学习用户交互的表示、转发传播及其与源短文的相关性;
(3) 本文的双重共同注意机制可以产生合理的解释;
(4) 在真实数据集上进行的大量实验证明,与最先进的模型相比,GCAN具有良好的性能前景;
3 Related Work
4 Problem Statement
5 GCAN Model
总体框架如下:
GCAN 包括五个部分:
- user characteristics extraction: creating features to quantify how a user participates in online social networking.
- new story encoding: generating the representation of words in the source tweet.
- user propagation representation : modeling and representing how the source tweet propagates by users using their extracted characteristics.
- dual co-attention mechanisms: capturing the correlation between the source tweet and users’ interactions/propagation.
- making prediction: generating the detection outcome by concatenating all learned representations.
5.1 User Characteristics Extraction
用户 $u_{j}$ 的特征为 $\mathbf{x}_{j} \in \mathbb{R}^{v}$:
(1) number of words in a user's self-description;
(2) number of words in $u_{j} 's$ screen name;
(3) number of users who follows $u_{j}$;
(4) number of users that $u_{j}$ is following;
(5) number of created stories for $u_{j}$ ;
(6) time elapsed after $u_{j} 's$ first story;
(7) whether the $u_{j}$ account is verified or not;
(8) whether $u_{j}$ allows the geo-spatial positioning;
(9) time difference between the source tweet's post time and $u_{j} 's$ retweet time;
(10) the length of retweet path between $u_{j}$ and the source tweet (1 if $u_{j}$ retweets the source tweet);
5.2 Source Tweet Encoding
输入是 story $s_{i}$ 中每个单词的一个热向量。由于每个 source story 的长度都是不同的,所以在这里通过设置最大长度 $m$ 来执行零填充。设 $\mathbf{E}=\left[e_{1}, e_{2}, \ldots, e_{m}\right] \in \mathbb{R}^{m}$ 为 source story 的输入向量,其中 $e_{m}$ 为第 $m$ 个单词的独热编码。我们创建了一个完全连接的层来生成单词嵌入,$\mathbf{V}=\left[\mathbf{v}_{1}, \mathbf{v}_{2}, \ldots, \mathbf{v}_{m}\right] \in \mathbb{R}^{d \times m}$,其中 $d$ 是单词嵌入的维数。$V$ 的推导方法为:
$\mathbf{V}=\tanh \left(\mathbf{W}_{w} \mathbf{E}+\mathbf{b}_{w}\right) \quad\quad\quad(1)$
其中,$\mathbf{W}_{w}$ 为可学习权值的矩阵,$\mathbf{b}_{c}$ 为偏差项。然后,利用门控循环单元(GRU)从 $v$ 学习单词序列表示。源推文表示学习可以用:$\mathbf{s}_{t}=G R U\left(\mathbf{v}_{t}\right), t \in\{1, \ldots, m\} \mid$,其中 $m$ 是 GRU 维数。将源推文表示为 $\mathbf{S}=\left[\mathbf{s}^{1}, \mathbf{s}^{2}, \ldots, \mathbf{s}^{m}\right] \in \mathbb{R}^{d \times m}$。
5.3 User Propagation Representation
随着时间的推移,源推文 $s_i$ 的传播是由一系列的用户触发的。我们的目的是利用提取的用户特征向量 $x_j$,以及用户序列扩展$s_i$,来学习用户传播表示。
本文利用门控递归单元(GRU)和卷积神经网络(CNN)来学习传播表示。
这里输入的是用户转发 $s_{i}$ 的特征向量序列,用 $P F\left(s_{i}\right)= \left\langle\mathbf{x}_{1}, \mathbf{x}_{2}, \ldots, \mathbf{x}_{t}, \ldots, \mathbf{x}_{n}\right\rangle$ 表示,其中 $n$ 是观察到的转发的固定长度。如果共享 $s_{i}$ 的用户数量大于 $n$,我们取前 $n$ 个用户。如果这个数字小于 $n$,我们在 $P F(si)$ 中重新采样用户,直到它的长度等于 $n$。
GRU-based Representation
给定特征向量 $PF(s_{i})=\langle\ldots, \mathbf{x}_{t}, \ldots\rangle$ 的序列,我们利用 GRU 来学习传播表示。每个 GRU 状态都有两个输入,当前的特征向量 $\mathbf{x}_{t}$ 和前一个状态的输出向量 $\mathbf{h}_{t-1}$,和一个输出向量 $\mathbf{h}_{t-1}$。基于GRU的表示学习可以用: $\mathbf{h}_{t}=G R U\left(\mathbf{x}_{t}\right), t \in\{1, \ldots, n\}$ 来表示,其中 $n$ 是GRU的维数。我们通过平均池化生成最终的基于 GRUs 的用户传播嵌入 $\mathbf{h} \in \mathbb{R}^{d}$,由 $\mathbf{h}=\frac{1}{n} \sum_{t=1}^{n} \mathbf{h}_{t}$ 给出。
CNN-based Representation.
本文利用一维卷积神经网络来学习 $PF\left(s_{i}\right)$ 中用户特征的序列相关性。本文一次性考虑 $\lambda$ 个连续用户来建模他们的序列相关性,即 $\left\langle\mathbf{x}_{t}, \ldots, \mathbf{x}_{t+\lambda-1}\right\rangle$。因此,过滤器被设置为Wf∈Rλ×v。然后输出表示向量 $\mathbf{C} \in \mathbb{R}^{d \times(t+\lambda-1)}$ 由
$\mathbf{C}=\operatorname{ReLU}\left(\mathbf{W}_{f} \cdot \mathbf{X}_{t: t+\lambda-1}+b_{f}\right)$
其中 $\mathbf{W}_{f}$ 为可学习参数的矩阵,ReLU 为激活函数,$\mathbf{X}_{t: t+\lambda-1}$ 描述了第一行索引从 $t=1$ 到$t=n-\lambda+1$ 的子矩阵,$b_{f}$ 为偏差项。
5.4 Graph-aware Propagation Representation
我们的目的是创建一个图来建模转发用户之间潜在的交互,想法是拥有特殊特征的用户之间的相关性对揭示源推文是否是假新闻能够起到作用。每个源推文 $s_{i}$ 的转发用户集合 $U_{i}$ 都被用来构建一个图 $\mathcal{G}^{i}=\left(U_{i}, \mathcal{E}_{i}\right)$ 。由于用户间的真实交互是不清楚的,因而这个图是全连接的,也 就是任意节点相连, $\left|\mathcal{E}_{i}\right|=\frac{n \times(n-1)}{2}$ 。结合用户特征,每条边 $e_{\alpha \beta} \in \mathcal{E}_{i}$ 都被关联到 一个权重 $w_{\alpha \beta}$,这个权重也就是节点用户特征向量 $x_{\alpha}$ 和 $x_{\beta}$ 的余弦相似度,即 $w_{\alpha \beta}=\frac{x_{\alpha} \cdot x_{\beta}}{\left\|x_{\alpha}\right\|\left\|x_{\beta}\right\|}$ ,图的邻接矩阵 $A=\left[w_{\alpha \beta}\right] \in \mathbb{R}^{n \times n}$。
然后使用 GCN 来学习用户交互表示。给定邻接矩阵 $A$ 和用户特征矩阵 $X$ ,新的 $g$ 维节 点特征矩阵 $H^{(l-1)} \in \mathbb{R}^{n \times g}$ 计算过程为:
$\mathbf{H}^{(l+1)}=\rho\left(\tilde{\mathbf{A}} \mathbf{H}^{(l)} \mathbf{W}_{l}\right)$
$l$ 是层数,$\tilde{A}=D^{-\frac{1}{2}} A D^{-\frac{1}{2}}$,$D_{i i}=\sum_{j} A_{i j}$ 是度矩阵,$W_{l} \in \mathbb{R}^{d \times g}$ 是第 $l$ 层的学习参数, $\rho$ 是激活函数。这里 $H^{0}=X$ ,实验时选择堆叠两层 $\mathrm{GCN}$ 层,最终学习到的表示为 $G \in \mathbb{R}^{g \times n} $。
5.5 Dual Co-attention Mechanism
我们认为假新闻的证据可以通过调查源推文的哪些部分是由哪些类型的转发用户关注的来揭开,并且线索可以由转发用户之间如何互动来反映。因此,本文提出了 dual co-attention 机制,来建模:
① 源推文 $\left(S=\left[s^{1}, s^{2}, \cdots, s^{m}\right]\right)$ 与用户传播 Embedding $\left(C=\left[c^{1}, c^{2}, \cdots, c^{n-\lambda+1}\right]\right.$ ) 之间
② 源推文 $\left(S=\left[s^{1}, s^{2}, \cdots, s^{m}\right]\right)$ 与 graph-aware 的 Embedding 交互 ($G=[g^{1}, g^{2}, \cdots, g^{n}]$) 之间
通过 dual co-attention 的注意力权重,模型可以具有可解释性。
Source-Interaction Co-attention
首先计算一个相似性矩阵 $F \in \mathbb{R}^{m \times n} :$
$F=\tanh \left(S^{T} W_{s g} G\right)$
这里 $W_{s g}$ 是一个 $d \times g$ 的参数矩阵,接着按照以下方式得到 $H^{s}$ 和 $H^{g}$ 。
$\begin{array}{l}\mathbf{H}^{s}=\tanh \left(\mathbf{W}_{s} \mathbf{S}+\left(\mathbf{W}_{g} \mathbf{G}\right) \mathbf{F}^{\top}\right) \\\mathbf{H}^{g}=\tanh \left(\mathbf{W}_{g} \mathbf{G}+\left(\mathbf{W}_{s} \mathbf{S}\right) \mathbf{F}\right)\end{array} \quad\quad\quad(4)$
这里 $W_{s} \in \mathbb{R}^{k \times d}$, $W_{g} \in \mathbb{R}^{k \times g}$ ,这里的 $F$ 和 $F^{T}$ 可以看做在做 user-interaction attention 空间和 source story word attention 空间的转换。接下来得到 attention 的权重:
$\begin{array}{l}\mathbf{a}^{s}=\operatorname{softmax}\left(\mathbf{w}_{h s}^{\top} \mathbf{H}^{s}\right) \\\mathbf{a}^{g}=\operatorname{softmax}\left(\mathbf{w}_{h g}^{\top} \mathbf{H}^{g}\right)\end{array} \quad\quad\quad(5)$
这里 $a^{s} \in \mathbb{R}^{1 \times m}$,$a^{g} \in \mathbb{R}^{1 \times n}$ , $w_{h s}, w_{h g} \in \mathbb{R}^{1 \times k} $ 是学习的参数。最后可以得到源倠文 和用户交互的 attention 向量:
$\hat{\mathbf{s}}_{1}=\sum\limits_{i=1}^{m} \mathbf{a}_{i}^{s} \mathbf{s}^{i}, \quad \hat{\mathbf{g}}=\sum\limits_{j=1}^{n} \mathbf{a}_{j}^{g} \mathbf{g}^{j} \quad\quad\quad(6)$
$\hat{s}_{1}$ 和 $\hat{g}$ 描述源推文中的单词是如何被用户参与互动的。
Source-Propagation Co-attention.
按照上述类似过程生成 $S$ 和 $C$ 的 attention 向量 $\hat{s}_{2}$ 和 $\hat{c}$。
注意基于 GRU 的传播表示没有用来学习与 $S$ 的交互。这是因为对于假新闻的预测来说,转发序列的用户特征能够起到重要的作用。因此本文采用基于 GRU 和 CNN 的两种方式来学习传播表 示,其中基于 CNN 的传播表示被用来学习与 S 的交互,基于 GRU的传播表示在进行最终预测时 用作最终分类器的直接输入。
5.6 Make Prediction
最终使用 $f=\left[\hat{s}_{1}, \hat{g}, \hat{s}_{2}, \hat{c}, h\right]$ 来进行假新闻检测:
$\hat{y}=\operatorname{softmax}\left(\operatorname{Re} L U\left(f W_{f}+b_{f}\right)\right)$
损失函数采用交叉熵损失:
$\mathcal{L}(\Theta)=-y \log \left(\hat{y}_{1}\right)-(1-y) \log \left(1-\hat{y}_{0}\right)$
6 Experiments
Baseline:
假新闻早期检测
GCAN也可以用于假新闻早期的检测,也就是在转发用户不多的时候进行检测,实验改动了使用的转发用户数量来进行验证:
消融实验
另外移除了一部分组件进行了消融实验,图中 -A,-R,-G,-C 分别代表 移除dual co-attention,基于GRU的表示,graph-aware的表示和基于CNN的表示:
-S-A 代表既没有源推文 Embedding 也没有 dual co-attention,由于源推文提供了基本线索,因此 -S-A 有一个明显的性能下降。
可解释性
source-propagation co-attention 学习到的 attention 权重可以用来为预测假新闻提供证据,采用的方式就是标识出源推文中的重要的词和可疑的用户。注意,我们不考虑 source-interaction Co-attention 的可解释性,因为从构造的图中学到的用户交互特征不能直观地解释。
下图是根据对源推文中的 attention 权重绘制的两个例子的词云(权重越大,词云中的词就越大):
图中结果满足常识,也就是假新闻倾向于使用戏剧性和模糊的词汇,而真实新闻则是被证实和核实事实的相关词汇。
另外我们希望利用传播中的转发顺序来揭示假新闻与真新闻的行为差异。下图采集并展示了三个假新闻和三个真新闻的传播序列 attention 的权重:
结果表明,要确定一个新闻是否虚假,首先应该检查早期转发源推文的用户的特征。假新闻的用户 attention 权重可能在传播过程中均匀分布。
source-propagation co-attention可以进一步解释可疑用户的特征及其关注的词语,举例如下图:
可以发现,可疑用户在转发传播中的特征有:
①账号未被验证;
②账号创建时间较短;
③用户描述长度较短;
④距发布源推文用户的图路径长度较短。
他们高度关注的词是“breaking”和“pipeline”这样的词。我们认为这样的解释有助于解读假新闻的检测,从而了解他们潜在的立场。
谣言检测——(GCAN)《GCAN: Graph-aware Co-Attention Networks for Explainable Fake News Detection on Social Media》的更多相关文章
- 谣言检测(PSIN)——《Divide-and-Conquer: Post-User Interaction Network for Fake News Detection on Social Media》
论文信息 论文标题:Divide-and-Conquer: Post-User Interaction Network for Fake News Detection on Social Media论 ...
- 谣言检测(GACL)《Rumor Detection on Social Media with Graph Adversarial Contrastive Learning》
论文信息 论文标题:Rumor Detection on Social Media with Graph AdversarialContrastive Learning论文作者:Tiening Sun ...
- 谣言检测(RDEA)《Rumor Detection on Social Media with Event Augmentations》
论文信息 论文标题:Rumor Detection on Social Media with Event Augmentations论文作者:Zhenyu He, Ce Li, Fan Zhou, Y ...
- 谣言检测(DUCK)《DUCK: Rumour Detection on Social Media by Modelling User and Comment Propagation Networks》
论文信息 论文标题:DUCK: Rumour Detection on Social Media by Modelling User and Comment Propagation Networks论 ...
- 谣言检测——(PSA)《Probing Spurious Correlations in Popular Event-Based Rumor Detection Benchmarks》
论文信息 论文标题:Probing Spurious Correlations in Popular Event-Based Rumor Detection Benchmarks论文作者:Jiayin ...
- 谣言检测(ClaHi-GAT)《Rumor Detection on Twitter with Claim-Guided Hierarchical Graph Attention Networks》
论文信息 论文标题:Rumor Detection on Twitter with Claim-Guided Hierarchical Graph Attention Networks论文作者:Erx ...
- 谣言检测——《MFAN: Multi-modal Feature-enhanced Attention Networks for Rumor Detection》
论文信息 论文标题:MFAN: Multi-modal Feature-enhanced Attention Networks for Rumor Detection论文作者:Jiaqi Zheng, ...
- 谣言检测()《Data Fusion Oriented Graph Convolution Network Model for Rumor Detection》
论文信息 论文标题:Data Fusion Oriented Graph Convolution Network Model for Rumor Detection论文作者:Erxue Min, Yu ...
- 谣言检测(PLAN)——《Interpretable Rumor Detection in Microblogs by Attending to User Interactions》
论文信息 论文标题:Interpretable Rumor Detection in Microblogs by Attending to User Interactions论文作者:Ling Min ...
随机推荐
- NC207040 丢手绢
NC207040 丢手绢 题目 题目描述 "丢丢丢手绢,轻轻地放在小朋友的后面,大家不要告诉她,快点快点抓住她,快点快点抓住她." 牛客幼儿园的小朋友们围成了一个圆圈准备玩丢手绢的 ...
- springboot中的任务处理
springboot中的任务处理 一.异步任务 在开发中有时用户提交的数据,后台需要一定时间才能做出响应,此时用户在前台也不能在等待中,此时就应该先开启异步请求处理,利用多线程,先给前台反馈,后台另一 ...
- java的方法(类似与C语言函数)
package www.nihao; import java.util.Scanner; public class demo02 { public static void main(String[] ...
- 安卓fastboot刷机、刷magisk、aidlux备忘
环境就不多说了,网上一堆教程,我只在这边简单记录一下,以小米手机为例 刷机 解锁bootloader PC上配置好adb.fastboot,也就是platform-tools工具包加入系统变量,在命令 ...
- kubernetes下kubelet无法启动
错误如下: 09:58:45 kubernetes-node01 kubelet[6248]: F0124 09:58:45.902571 6248 server.go:265] failed to ...
- 关于分组查询的一道sql题
背景:想做一道sql的测试题,题目为: 按照角色分组算出每个角色按有办公室和没办公室的统计人数(列出角色,数量,有无办公室,注意一个角色如果部分有办公室,部分没有需分开统计) 如下,构造测试环境与对应 ...
- CF1702A Round Down the Price 题解
题意:给定一个数 \(n\),找出一个数为 \(10^k \leq n\),求二者的差. 建立一个数组,储存 \(10^k\),每次直接查询求差输出. 注意数据范围. #include<cstd ...
- CF1703A YES or YES? 题解
题意:输入一个长度为 \(3\) 的字符串,判断其是否为 \(YES\),忽略大小写. 做法:输入字符串,直接判断. #include<cstdio> #include<iostre ...
- 第三天python3 字典
字典 dict 特点:key-value键值对的数据的集合 可变的.无序的.key不重复:非线性结构: 字典的初始化 d=dict() 或者 d = { } dict(**kwargs) 使用n ...
- ExpressionChangedAfterItHasBeenCheckedError详细解释
一个angular组件,他的生命周期是这样的 update bound properties for all child components/directives call ngOnInit, On ...