Detect rumors using time series of social context information on microblogging websites
ABSTRACT
从在线社交网络上,尤其是微博网站上自动检测谣言是一个重要的研究课题。大量已有的关于谣言的检测关注于对微博内容、使用者和传播的特征进行建模,但忽略了在消息传输这一时间过程中,社会环境特征的变化的重要性。在本研究中,我们提出了一个新方法来捕捉这些时间的特征,这些时间特征基于谣言生命周期的时间序列,这个时间序列的建模技术被应用于整合各种社交语境信息。我们的实验使用了两个微博数据集里的事件,来证实这个方法在很大程度上优越于最先进的谣言检测方法。此外,我们的模型展示了对谣言最初传播之后的早期阶段强大的识别能力。
Keywords
谣言检测 时间的 时间序列 社交上下文
1 INTRODUCTION
一个谣言被定义为一个真实性得不到证实或者完全虚假的声明。这些在微博网站上的谣言,携带着非真实的,甚至是恶毒的信息,能够给我们的社区带来大量的恐慌和社会紧张。举个例子,在2013年的4月23号,一个在推特上的关于在白宫里发生的爆炸使巴拉克奥巴马受伤的谣言,造成了美国股市的崩盘。
因此,自动谣言检测技术能够快速的识别谣言信息并自动的监视谣言的传播,将变得非常有用。
现有的谣言检测技术,通常利用基于大量有关使用者、消息内容和它们的传播的特征的监督学习模型。这些模型的一个明显的限制,是它们仅能考虑这些社交语境信息的总体统计数据来作为特征,例如,总的转发次数、传播的时间长度等等,而且忽视了这些特征在时间流逝过程中的变化。
为了推动检测的准确性,我们主张不仅仅观察总体属性和单个消息的属性,而且学习这些特征在有关假设的生命周期中的变化趋势,是十分重要的。举个例子,提供两个推特时间,一个是关于“执行死刑的射击队”(一个谣言),另一个是关于“希尔顿被捕”(一个非谣言),图像1(a)和1(b)展示了在使用问号的推特文传播变化,而且第一人称代词分别使用了时间序列,这是使用以前工作的两个典型特征。图1(a)意味着非谣言比谣言在后面的阶段,倾向于使用更少的问号,但根据图1(b),这也许在谣言的早期阶段有更多的第一人称代词。这样的变化反映了谣言和非谣言在传播过程中的不同特征。
Kwon et al最近介绍了一个时间序列拟合模型,它基于单个特征的时间特征,推文数量,显示出更好的检测结果。然而,他们的时间模型关注于转换这些推文数量的连续时间序列为三个拟合参数来捕捉时间波动的特征,这也许会导致复杂时间序列提供的重要信息的丢失。也许,在未来增加模型中的拟合参数会增加拟合效果,但这是很困难的。
为了战胜这些不足,我们假设了一个称为“动态-时间序列-结构”(Dynamic Series-Time Structure (DSTS))的全新的时间序列模型来捕捉广泛的社交语境随时间的变化,这将远远超过推文数量的特征。我们将会学习这个社交语境特征的时间序列,如何捕捉这些事件消息传播传播过程中的特征变化,这应该有助于区分谣言和非谣言。我们利用从推特和新浪微博上分别爬取的上百个中英文事件的两个数据集。我们建立起了使用基于DSTS特征和带注释数据的分类器。在我们的方法中,我们检查两个基本设置:(1)考虑某个特定主题的时间的完整生命周期,我们决定它是否是谣言;(2)考虑事件数据在传播的早期,我们应用我们的模型进行早期的谣言检测。在这两个设置下的测试结果证实了我们的基于DSTS的模型实现了相对于这两个数据集的最先进数据集的,承诺过的性能改善。
2 TIME SERIES OF MICROBLOG EVENT
一个事件被认为是一个相关与某个特定话题如“希拉里克林顿宣布参选2016年总统”,“MH370航班降落在南宁”等的微博集合。这些话题能够在推特上被手动编辑,或者从新浪社交管理中心处得到,这包含了已被证实的谣言和非谣言事件。
我们将微博数据建模为一个事件集合
E
=
{
E
i
}
E=\{E_i\}
E={Ei},而且每个事件
E
i
E_i
Ei包含了相关的微博
{
m
i
j
}
\{m_{ij}\}
{mij},我们将每个
E
i
E_i
Ei表示为一个D维向量
F
i
D
F^D_i
FiD,这包含了有关微博内容、用户和传播模式的社交语境特征。为了让特征数量易于被处理,我们将与每个事件相关的微博的连续时间流,转换为固定的时间间隔。为了学习我们的模型,我们提取出一个时间敏感的丰富特征集合,它不止包含社交语境信息的总体统计数据,也有基于能被捕捉到的时间间隔的个体特征的变化。
2.1 Time Stamps Generation
对一个事件
E
i
E_i
Ei,假设
t
i
m
e
F
i
r
s
t
i
和
t
i
m
e
L
a
s
t
i
timeFirst_i和timeLast_i
timeFirsti和timeLasti分别为最早的和最晚的微博被推送的时间。我们将每一个微博
m
i
j
m_{ij}
mij的创造时间转换为一个落在0到N的序列的时间间隔。作为
m
i
j
m_{ij}
mij的时间戳,N是时间间隔的可调节变量。我们假设时间间隔为
E
i
E_i
Ei,假设
m
i
j
m_{ij}
mij的时间戳(tinme stamp TS)在
t
m
i
j
t_{m_{ij}}
tmij被创造如下
(1)
I
n
t
e
r
v
a
l
(
E
i
)
=
⌈
t
i
m
e
L
a
s
t
i
−
t
i
m
e
F
i
r
s
t
i
N
⌉
Interval(E_i)=\lceil \frac{timeLast_i-timeFirst_i}{N} \rceil \tag{1}
Interval(Ei)=⌈NtimeLasti−timeFirsti⌉(1)
(2)
T
S
(
m
i
j
)
=
⌊
t
m
i
j
−
t
i
m
e
F
i
r
s
t
i
I
n
t
e
r
v
a
l
(
E
i
)
⌋
TS(m_{ij})=\lfloor \frac{t_{m_{ij}}-timeFirst_i}{Interval(E_i)} \rfloor \tag{2}
TS(mij)=⌊Interval(Ei)tmij−timeFirsti⌋(2)
其中
I
n
t
e
r
v
a
l
(
.
)
Interval(.)
Interval(.)是每个时间间隔的长度,即时间、小时、天数之类的数量,而
T
S
(
.
)
TS(.)
TS(.)是
m
i
j
m_{ij}
mij落入时间戳的索引,取值为
0
,
1
,
.
.
.
,
N
0,1,...,N
0,1,...,N,我们使用小时作为这项工作的时间单位。
2.2 Dynamic Series-Time Structure(DSTS)
对于
E
i
E_i
Ei的所有时间戳,它的社交语境特征向量
V
(
E
i
)
V(E_i)
V(Ei)可以被每个给定的时间戳自然生成。然而,这些信息的时间属性随时间持续变化,这些信息仅通过在单个时间间隔内对特征建模的方式则不能被有效地捕捉到。更好的办法是识别时间序列的形状,这是由连续区间之间的相对变化形成的,作为绝对时间特征的补充。
为此,我们提出了一个动态时间序列结构(DSTS),用于捕捉每个特征的变化。在这个结构里,我们不仅考虑从初始时间到每个时间间隔的绝对特征值,也包含两个连续间隔的特征斜率。因此,基于DSTS的特征向量被表示为:
(3)
V
(
E
i
)
=
(
F
i
,
0
D
,
F
i
,
1
D
,
.
.
.
,
F
i
,
N
D
;
S
i
,
1
D
,
.
.
.
,
S
i
,
N
−
1
D
)
V(E_i)=\left(F_{i,0}^D,F_{i,1}^D,...,F_{i,N}^D; S_{i,1}^D,...,S_{i,N-1}^D \right) \tag{3}
V(Ei)=(Fi,0D,Fi,1D,...,Fi,ND;Si,1D,...,Si,N−1D)(3)
(4)
F
i
,
t
D
=
(
f
~
i
,
t
,
1
,
f
~
i
,
t
,
2
,
.
.
.
,
f
~
i
,
t
,
D
)
F^D_{i,t}=\left(\tilde{f}^{~}_{i,t,1},\tilde{f}^{~}_{i,t,2},...,\tilde{f}^{~}_{i,t,D} \right) \tag{4}
Fi,tD=(f~i,t,1 ,f~i,t,2 ,...,f~i,t,D )(4)
(5)
S
i
,
t
D
=
F
i
,
t
+
1
D
−
F
i
,
t
D
I
n
t
e
r
v
a
l
(
E
i
)
S_{i,t}^D=\frac{F^D_{i,t+1}-F^D_{i,t}}{Interval(E_i)} \tag{5}
Si,tD=Interval(Ei)Fi,t+1D−Fi,tD(5)
其中
F
i
,
t
D
F_{i,t}^D
Fi,tD是
E
i
E_i
Ei在微博中从时间0到
t
−
t
h
i
n
t
e
r
v
a
l
t-th \ interval
t−th interval于社交语境中生成的特征向量,
S
i
,
t
D
S_{i,t}^D
Si,tD是在第
t
−
t
h
t-th
t−th和
(
t
+
1
)
−
t
h
(t+1)-th
(t+1)−th个时间间隔内的特征的斜率。
我们使用
Z
−
s
c
o
r
e
Z-score
Z−score来正则化时间序列里的特征值。对从0到
t
−
t
h
t-th
t−th时间间隔的特征进行
Z
−
s
c
o
r
e
Z-score
Z−score被定义为:
(6)
f
~
t
,
k
=
f
t
,
k
−
f
‾
k
σ
(
f
k
)
\tilde{f}^{~}_{t,k}=\frac{f^{~}_{t,k}-\overline{f}_k}{\sigma(f_k)} \tag{6}
f~t,k =σ(fk)ft,k −fk(6)
其中
f
‾
k
\overline{f}_k
fk是第k个特征的均值,
σ
(
f
k
)
\sigma(f_k)
σ(fk)是第k个特征在整个时间间隔内的标准差,
f
t
,
k
f_{t,k}
ft,k是从时间第0到
t
−
t
h
t-th
t−th个间隔中的第k个特征,这个间隔是通过计算微博上的平均值或其他统计量得到的。
3 FEATURE ENGINEERING
在这一章节中,我们将对式6给出的对应于
f
t
,
k
f_{t,k}
ft,k的每一个社交语境特征进行工程设计。注意到
f
t
,
k
f_{t,k}
ft,k通常是通过对在个体微博上定义的原始的社交语境特征
f
k
f_k
fk进行平均得到的,但很有可能,从时间0到间隔t的所有微博上都直接定义了一些功能。我们提供三类特征:基于内容、基于用户和基于传播的特征,其中一些特征来源于先前的工作而其他的一些事新提出的。表格1描述了这些特征。为了清晰起见,我们提供了下面一些特征的更多的细节。
表格1:对一个微博上的事件在时间0到时间间隔t的特征
f
t
,
k
f_{t,k}
ft,k描述
基于内容的特征 |
---|
基于LDA的微博话题分布,有18个话题 |
微博里的积极(消极)单词数量 |
微博里的平均情绪的分 |
有URL的微博比例 |
使用微笑(皱眉)表情符号的微博比例 |
积极(消极)的微博比例 |
使用第一人称的微博比例 |
带有标签的微博比例 |
有@的微博比例 |
有问号的微博比例 |
有感叹号的微博比例 |
多个问号或感叹号的微博比例 |
基于用户的特征 |
---|
提供个人描述的用户比例 |
提供个人简介照片的用户比例 |
认证用户比例 |
每一种类型的认证用户比例,例如名人 |
男性(女性)用户比例 |
定位在大(小)城市的用户比例 |
用户的平均朋友数 |
用户的平均追随者数 |
用户的平均帖子数 |
自注册以来,用户账户的平均在线天数 |
用户的平均声望值 |
基于传播的特征 |
---|
平均转发次数 |
微博评论的平均数量 |
微博数量 |
基于LDA的话题分布:对于E中的所有微博,我们使用隐狄利克雷分布(Latent Dirichlet Allocation, LDA)模型来获得每个帖子的一个n话题分布。对每个事件
E
i
E_i
Ei的每个帖子
m
i
j
m_{ij}
mij,我们有
T
(
m
i
j
)
=
(
p
i
j
(
1
)
,
p
i
j
(
2
)
,
.
.
.
p
i
j
(
n
)
)
T(m_{ij})=\left( p_{ij}^{(1)}, p_{ij}^{(2)},...p_{ij}^{(n)}\right)
T(mij)=(pij(1),pij(2),...pij(n)),其中
p
i
j
(
Z
)
p_{ij}^{(Z)}
pij(Z)是
m
i
j
m_{ij}
mij属于主题
z
(
z
=
1
,
.
.
.
,
n
)
z(z=1,...,n)
z(z=1,...,n)的概率。然后,对事件所涉及的时间跨度所有微博的话题分布进行平均,得到基于n个
L
D
A
LDA
LDA的话题分布特征。我们在前面的工作之后,设置
n
=
18
n=18
n=18。
平均情感得分:相似但不同的特征被其他文章使用。给定一个情感词汇和一个表情词汇,在一个时间跨度内每个事件
E
i
E_i
Ei的平均情感得分被计算为
1
∣
m
i
∣
Σ
j
=
1
∣
m
i
∣
(
∣
w
p
o
s
∣
i
j
−
∣
w
n
e
g
∣
i
j
+
∣
e
p
o
s
∣
i
j
−
∣
e
n
e
g
∣
i
j
)
\frac{1}{|m_i|}\Sigma^{|m_i|}_{j=1}\left(|w_{pos}|_{ij} - |w_{neg}|_{ij} + |e_{pos}|_{ij} - |e_{neg}|_{ij} \right)
∣mi∣1Σj=1∣mi∣(∣wpos∣ij−∣wneg∣ij+∣epos∣ij−∣eneg∣ij)
其中
∣
w
p
o
s
∣
i
j
|w_{pos}|_{ij}
∣wpos∣ij和
∣
w
n
e
g
∣
i
j
|w_{neg}|_{ij}
∣wneg∣ij分别是是积极词语和消极词语的数量,
∣
e
p
o
s
∣
i
j
|e_{pos}|_{ij}
∣epos∣ij和
∣
e
n
e
g
∣
i
j
|e_{neg}|_{ij}
∣eneg∣ij分别是微笑表情和皱眉表情的数量。在微博
m
i
j
m_{ij}
mij中,
∣
m
i
∣
|m_i|
∣mi∣是事件
E
i
E_i
Ei在有关时间跨度内的微博数量。对推文,我们使用
M
P
Q
A
MPQA
MPQA情感词汇和一套我们自己经常收集的表情符号;对微博,我们使用情感词汇和某文章中提到的表情。
4 EXPERIMENTAL EVALUATION
4.1 Datasets and Setup
对推文,我们使用Castillo等人发布的公共数据集。他们使用推特监视器从2010年4月至9月的推文摘要中提取了288个事件。我们过滤掉低于10条tweet的事件,然后留下了207个流行事件,其中110个被标记为谣言。我们也从新浪微博上搜集了附加的微博数据集,那里有从新浪社区管理中心确认的谣言,该中心接手各种虚假信息的报道。我们保持这些谣言时间至少有100个帖子。这给我们留下了422个谣言事件。我们注入了500个正常的(非谣言)事件,每一个都有超过100个帖子。新浪微博API提供捕捉原始帖子和转发帖子的接口。表格2展示了我们数据集的细节。
Table 2:数据集细节
统计数据 | 推特 | 新浪微博 |
---|---|---|
使用者 | 568261 | 585475 |
推文 | 12707767 | 473698 |
事件 | 216 | 922 |
谣言 | 101 | 500 |
非谣言 | 115 | 422 |
平均时间长度 | 35.8小时 | 2719小时 |
我们的模型采用线性SVM分类器。我们将我们基于DSTS的SVM模型和几种强基线进行了对比:(1)DT:推特可信性模型在不考虑时间序列的情况下,利用表1中的社会背景特征,使用决策树分类器;(2)RF:随机森林分类器使用的特征由拟合推文量曲线的三个参数和表1中所有静态特征组成;(3)RF-ext:我们通过添加表1中所有社交语境特征的时间序列拟合参数,对具有附加特征的RF模型进行扩展;(4)SVM-RBF:基于使用RBF内核的SVM使用表1中的所有特征但没有考虑时间序列;(5)
S
V
M
c
D
S
T
S
,
S
V
M
u
D
S
T
S
,
S
V
M
d
D
S
T
S
SVM_c^{DSTS},SVM_u^{DSTS},SVM_d^{DSTS}
SVMcDSTS,SVMuDSTS,SVMdDSTS:我们的DSTS模型分别使用基于内容、基于用户、基于传播的特征;(6)
S
V
M
a
l
l
D
S
T
S
SVM_{all}^{DSTS}
SVMallDSTS:我们完全配置的DSTS模型。我们不比较在新浪微博平台上使用特殊传播结构,因为我们的方法是更广泛的。
我们使用Weka和线性的SVM模型使用实现了DT、RF和RF-ext。我们进行了10次交叉验证,并使用准确度、召回率和F-measure来进行评估。我们将
N
=
50
N=50
N=50固定在一个开发集合上。
4.2 Experimental Results
表格3(a)和3(b)展示了不同方法的表现。总的来说,我们的
S
V
M
a
l
l
D
S
T
S
SVM_{all}^{DSTS}
SVMallDSTS系统,尽管是一个线性的模型,明显优越于所有基于非线性模型的基线。在准确性方面,它将改进DT、RF、RF-ext和SVM-RBF在推特数据上分别提高9.5%、3.3%、4.4%和9.1%,也在微博数据上分别提高了9.3%、3.8%、5.2%和8.6%。这是因为DSTS模型能够保留大量丰富的社交语境信息的变化。DT值使用了在整个帖子声明周期的静态社交语境特征,而RF使用一个拟合转发数量的时间序列模型的三个参数作为附加特征,这可能会受损与信息丢失。惊喜的是,RF-ext表现得差于RF,这表明用三个参数表示每个特征的变化不能捕获复杂传播模式和拟合更多的特征,否则会积累更多的信息丢失。扩展三个拟合参数被它们原始的模型所限制。SVM-RBF比我们仅适用基于内容和基于用户子集特征的DSTS模型表现得更差,这表明我们的时间序列是非常有效的。
表3 和不同方法的比较结果(R:谣言,N:非谣言)
4.3 Rumor Early Detection
我们在谣言早期的检测任务中测试我们的模型,目的是为了在传播的早期识别出谣言。给定一个检测截止日期,我们假设在测试模型时,截止日期之后的所有测试事件消息都是不可见的。当训练模型的时候,完整的生命周期是被假设为可见的。
图2 早期谣言检测的结果
图2展示了我们的
S
V
M
a
l
l
D
S
T
S
SVM_{all}^{DSTS}
SVMallDSTS模型在不同的截止日期下,和基线DT、RF、RF-ext和SVM-RBF的准确度。在最开始的几个小时里,我们的模型由于缺乏足够的社交语境的变化,没有明显的优势。随着时间的流逝,我们模型的表现在5-10小时之后急剧地爬升而其他模型的情况并没有显著优化,因为DSTS能够从时间序列中捕捉到丰富的特征变化模式。我们的模型在较早的阶段就实现了基线的相似准确度。举个例子,在推特上,我们模型花了15个小时取得了RF,第二好的基线的最高精度,而RF需要25个小时;在微博上,我们的模型画了20个小时而RF花了将近70个小时去实现相似的表现。这说明我们的模型对于早期检测是非常有效的。
5 CONCLUSION AND FUTURE WORK
我们提出了一个全新的方法去自动识别微博网站上的谣言。我们建立了一个动态时间序列模型来利用时间变化下不同社交语境特征的变化。实验结果展示出我们利用了时间序列特征的方法在事件的完整生命周期和传播的早期阶段,对谣言检测有明显的改善。在未来的工作中,我们计划研究使用时间序列来识别网上谣言的无监督模型。