目录
前言
题目: FANG: Leveraging Social Context for Fake News Detection Using Graph Representation
会议: CIKM 2020
论文地址:FANG: Leveraging Social Context for Fake News Detection Using Graph Representation
这篇论文是发布在CIKM 2020上的一篇长文,最终该篇论文拿到了Best Paper。这篇文章提出了一个新颖的inductive
图表示框架FANG用于假新闻检测。FANG通过捕捉用户、新闻和媒体之间丰富的社交互动来提高节点表示学习的质量,从而提高假新闻检测的精度。
具体来讲,模型构建了一个用户、新闻和媒体三类节点和四类边的异质图,对于用户和媒体节点,采用传统的inductive
框架GraphSage进行节点表示的聚合更新,而对于需要进行分类的新闻节点,引入了带有时间戳的stance edge,然后利用一个带注意力机制的Bi-LSTM对时序性进行建模并对新闻节点的状态进行更新。最后,引入无监督的Proximity Loss
、自监督的Stance Loss
以及有监督的Fake News Loss
三种损失函数来对模型进行联合优化。
1. 问题定义
本文构建的社交网络如下图所示:
网络中一共三类节点:用户节点、新闻节点和新闻来源(媒体)节点。
四类边:用户对新闻的立场、新闻来源(媒体)出版新闻、用户之间的友谊、媒体之间相互引用(如在某篇文章中引用了另一个媒体发布的新闻)。
节点及边介绍如下:
新闻文章节点的特征向量用
x
a
x_a
xa表示,媒体节点的特征向量用
x
s
x_s
xs表示,用户节点的特征向量用
x
u
x_u
xu表示,边上的标签为
x
e
x_e
xe。值得注意的是,某些边带有时间属性,例如用户对于某一新闻的立场会随着时间变化而变化。
在本文中,用户对新闻的立场被分为四类:中立支持、消极支持、反对、报道(只传播不发表意见)。其中,中立支持和消极支持是基于报道的新闻真实性和引发的情绪之间的相关性来确定。
下表总结了不同类型边的信息:
基于上面这些信息,本文的问题被定义为一个基于上下文的假新闻检测问题:给定一个由新闻文章
A
A
A、媒体
S
S
S、社交用户
U
U
U以及它们间的社交联系
E
E
E构建的social context
G
=
(
A
,
S
,
U
,
E
)
G=(A,S,U,E)
G=(A,S,U,E),基于上下文的假新闻检测被定义为一个预测新闻类别的二分类任务,即对于
a
∈
A
a\in A
a∈A,得出
F
C
:
a
→
(
0
,
1
)
FC:a \rightarrow (0, 1)
FC:a→(0,1),其中0表示假新闻。
2. 从social context中构建图
有了新闻文章 A A A、媒体 S S S、社交用户 U U U以及它们间的社交联系 E E E后,我们需要利用这些信息来构建一个 G G G。
具体来讲:
- 新闻文章:使用无监督文本表示来构建特征向量。对
∀
a
∈
A
\forall a \in A
∀a∈A,根据
a
a
a的内容使用TF-IDF方法构造文本的向量。具体来讲,通过对
glove
中每个单词的TF-IDF值进行加权,形成一个语义向量来丰富新闻的表示。最后,将TF-IDF和语义向量连接起来,形成新闻文章特征向量 x a x_a xa。 - 媒体。和新闻文章类似,只不过文本内容换成了媒体网站主页和
about us
中的部分单词。之所以这样做,是因为一些假新闻网站公开在其主页宣称其内容是讽刺或挖苦人的。 - 用户:对于社交用户,与前面类似,只是文本内容换成了用户个人的
profile
。 - 社交联系:对于图中的边,定义为
e
=
{
v
i
,
v
j
,
t
,
x
e
}
e=\left \{ v_i, v_j, t, x_e\right \}
e={vi,vj,t,xe}。其中,
x
e
x_e
xe表示的边的
label
,也就是类型。具体来讲,对于following
,需要判断用户 u i u_i ui是否关注了 u j u_j uj;对于publication
,则需要检查出版社 s j s_j sj是否出版了新闻文章 a i a_i ai;对于citation
,则需要检查媒体 s i s_i si的homepage中是否包含新闻 s j s_j sj的链接。这里需要注意的是,关系publication
和stance
都和时间有关,因为随着时间变化,某个用户对新闻的立场可能会改变,某个媒体的主页可能也会撤下之前发布的新闻。 - 获取一段文本相对于另一段文本的观点的任务称为立场检测。在假新闻检测的背景下,本文研究了用户对可疑新闻文章标题的回复帖子。具体来讲,考虑四种立场:中性情绪支持或中性支持、负面情绪支持或负面支持、否认和报告。 如果在清除表情符号、标点符号、停用词和帖子中的url后,帖子与文章标题匹配,则将该归类为新闻文章的逐字报道。
本文训练了一个立场分类器将帖子分类为支持或拒绝
。本文构建了自己的数据集,用于社交媒体帖子和新闻文章之间的立场检测,其中包含来自31个新闻事件的2527对带标签的源-目标句子。对于每个带有参考标题的事件,会得到一个相关标题和帖子的列表,然后标记每个相关的标题或帖子是否支持或否认引用标题的说法。除了参考与标题相关的标题和与标题相关的帖子句子外,本文还进一步对标题相关的帖子句子对进行了二阶推论,即如果表达了与参考标题相似的立场,我们就推断出对相关标题相关的帖子的支持立场,否则否认。
将用户对文中的态度分类为支持和否定后,为了进一步将支持分类为中性和负面情绪,在Yelp Review极性数据集上微调了一个类似的架构,以获得情感分类器。
3. 事实新闻图框架 (FANG)
这一节主要介绍本文提出的Factual News Graph (FANG) ,即事实新闻图框架FANG。
FANG的总体框架如下所示:
3.1 表示学习
根据第二节的方法,可以构建出一个图,图中共三类节点和四类边,并且节点的特征向量也都已确定。
为了对新闻进行最终分类,我们需要更新所有节点的表示,即根据FANG来获取每一个社会实体的表示向量。
令 G r a p h S a g e ( ⋅ ) GraphSage(\cdot) GraphSage(⋅)表示GraphSage编码函数,则媒体节点和用户节点的表示向量都通过GraphSage来进行更新。而对于新闻节点,需要进行时序建模。
3.2 时序建模
新闻节点:定义一个聚合模型 F ( a , U ) F(a,U) F(a,U),其中 a a a表示新闻节点, U U U表示与该新闻节点有关联的用户节点,利用该聚合模型,可以将新闻节点映射为一个时域表示 v a t e m p v_a^{temp} vatemp。由于用户对新闻的立场带有时间戳,因此需要采用一个能够对时序数据建模的模型,本文选择了带有注意力机制的双向LSTM模型。
针对新闻节点的时序建模可以总结如下:LSTM模型的输入为一系列的user-article
边,即
{
e
1
,
e
2
,
.
.
.
,
e
∣
U
∣
}
\left \{e_1,e_2,...,e_{|U|}\right \}
{e1,e2,...,e∣U∣}。令:
m
e
t
a
(
e
i
)
∈
R
l
=
(
t
i
m
e
(
e
i
)
,
s
t
a
n
c
e
(
e
i
)
)
meta(e_i)\in R^l=(time(e_i),stance(e_i))
meta(ei)∈Rl=(time(ei),stance(ei))
其中,
m
e
t
a
(
e
i
)
meta(e_i)
meta(ei)表示将新闻节点自发布以来的时间和立场类别的one-hot
向量拼接起来。
然后,每条边
e
i
e_i
ei的编码可以定义为:
x
e
i
=
(
z
U
i
,
m
e
t
a
(
e
i
)
)
x_{e_i}=(z_{U_i},meta(e_i))
xei=(zUi,meta(ei))
其中
z
U
i
=
G
r
a
p
h
S
a
g
e
(
U
i
)
z_{U_i}=GraphSage(U_i)
zUi=GraphSage(Ui)。即为了得到每条user-article
边的编码,首先将时间戳和立场的one-hot
向量拼接起来,再将该拼接向量与新闻节点的用户邻居节点的特征向量的聚合拼接起来。
得到边的编码后,将其输入到Bi-LSTM模型中,得到前后两个方向上每个时间步的编码表示 H f H^f Hf和 H b H^b Hb。其中 H f = h 1 f , h 2 f , . . . , h n f H^f=h_1^f,h_2^f,...,h_n^f Hf=h1f,h2f,...,hnf, H b = h 1 b , h 2 b , . . . , h n b H^b=h_1^b,h_2^b,...,h_n^b Hb=h1b,h2b,...,hnb。得到了 n n n个状态向量后,需要对其进行加权以得到最终的前向和后向状态向量,因此这里需要计算一个注意力权重系数。
令
w
i
w_i
wi为
h
i
f
h_i^f
hif和
h
i
b
h_i^b
hib的注意力权重系数,其定义如下:
具体来讲,注意力来源于隐状态和新闻特征的相似性。其中,
M
e
M_e
Me和
M
m
M_m
Mm为两个可优化的映射矩阵。
得到了
n
n
n个权重系数后,利用下面公式对前向隐状态和后向隐状态进行加权组合:
h
f
=
∑
w
i
h
i
f
a
n
d
h
b
=
∑
w
i
h
i
b
h^f=\sum w_ih_i^f \ \ \ and\ \ \ h^b=\sum w_ih_i^b
hf=∑wihif and hb=∑wihib
然后,将加权后的前向隐状态和后向隐状态拼接起来,得到前面提到的新闻节点的时域表示 v a t e m p v_a^{temp} vatemp。
然后将时域表示和结构表示(空间表示)结合起来,作为最终新闻节点的表示:
3.3 损失函数
按照前面的方法对将网络中所有节点的表示向量更新之后,需要计算相应的损失函数。
损失函数具体来讲分为三个部分:
(1)无监督的Proximity Loss
联系紧密的实体,它们的嵌入表示应该更加相似
。因此,FANG应该在嵌入空间中将这些相邻的实体赋予一组相似的向量。本文还假设,松散联系的社会实体的行为往往不同于我们观察到的高度极化的社会实体,FANG应该强制这些不同实体的表示是不同的。
最能定义上述特征的社交互动是user-user
友谊、source-source
引用和news-source
发表。
为了定义这种相关性,将整个图分为两个子图:news–source
子图和user
子图。对每一个子图,计算如下损失函数:
其中
P
r
P_r
Pr和
N
r
N_r
Nr分别表示正负样本。
(2)自监督的Stance Loss
本文认为,如果用户表达了对一篇新闻文章的立场,那么二者的表示应该是相近的
。
对于每一种立场 c c c,首先学习一个映射函数: α c ( u ) = A c z u \alpha_c(u)=A_cz_u αc(u)=Aczu。同样,对新闻节点的向量也进行映射: β c ( a ) = B c z a \beta_c(a)=B_cz_a βc(a)=Bcza。
将新闻节点和用户的表示映射到同一维度后,就能计算二者的相似度,即向量内积。如果节点
u
u
u对节点
a
a
a表达了立场
c
c
c,就最大化相似度,否则最小化,因此,损失函数可以定义为:
其中
y
u
,
a
,
c
y_{u,a,c}
yu,a,c定义为:
(3)有监督的Fake News Loss
为了预测一个新闻节点的真假性,将其表示向量和其source
的表示向量拼接串联,然后输入到一个全连接层进行二分类任务。因此,损失函数可以定义为一个简单的交叉熵损失:
其中
T
T
T表示batch size
。
最终,将三种损失相加作为最终的损失函数,然后反向传播求导并更新前面提到的所有模型参数。
FANG的伪代码可以概括如下:
4. 实验
4.1 数据集
数据集的配置:
4.2 实验结果
5. 讨论
为了更好地理解FANG,做了一些具体分析。
5.1 数据集大小的限制
FANG在较小的数据集上能否还具有较好的效果?
为此,将训练集大小设置为不同的比例,做了多组实验,实验结果如下所示:
可以发现,在任意比例训练数据上,FANG都保持着不错的性能。
5.2 时序建模的意义
FANG在更新新闻节点的表示向量时,引入了时序信息。为了研究时序建模的作用,将FANG在每个时间窗口内产生的注意力权重进行累积,并跨时间窗口进行比较,结果如下:
可以发现,FANG将68.08%的注意力放在了一篇新闻文章发布后12小时内的用户粘性上,以判断其是否为假新闻。24小时后关注度急剧下降至18.83%,36小时至2周关注度下降至4.14%,第二周以后关注度下降至9.04%左右。
而对于真新闻,FANG仅将48.01%的注意力放在前12小时,在12 - 36小时和36小时-2周的时间窗口中分别下降至17.59%和12.85%。
因此,FANG的特征与一个普遍的观察结果是一致的:假新闻由于其令人震惊的本质在其发布后的短时间内产生了最多的关注
。另一方面,真新闻吸引的注意力较少,但传播的时间较长
,这也解释了为什么FANG在真新闻发表两周后仍能保持关注的原因。总的来说,这里的时间性研究突出了FANG在决策时的透明性,这在很大程度上归功于注意力机制。
5.3 可扩展性
在推断新节点的可信度时,由于FANG模型是inductive
的,因此FANG可以使用其学习到的特征聚合器直接计算出新节点的嵌入表示,这大大减小了时间复杂度。
6. 总结
本文提出了一个新的假新闻检测框架FANG,FANG是一个图学习框架,该框架通过捕捉用户、文章和媒体之间丰富的社交互动来提高节点表示学习的质量,从而提高假新闻检测的精度。本文证明了在有限的训练数据下,FANG仍然具有较高的效率。此外,由于引入了时序建模和独特的注意力机制,FANG拥有捕获真假新闻的独特时间模式的能力。