SybilWalk:Random Walk based Fake Account Detection in Online Social Networks论文笔记

1. Random Walk based Methods

基于随机游走的方法旨在利用Online Social Networks 的Social Structure,因为我们通常认为,尽管攻击者可以任意控制Sybils之间的连接,但是攻击者很难操作benign node和Sybils之间的连接,因为这种需要benign node的操作。因此,benign node与Sybils之间存在structural gap。基于随机游走的方法就针对这种这种structural gap来检测Malicious Accounts。
SybilWalk:Random Walk based Fake Account Detection in Online Social Networks论文笔记
之前random walk based methods存在的不足:

  1. 它们只能从Online Social Network中标记出良性的用户,或标记出Sybils的用户,但不能同时找出两种用户;
  2. 它们对弱同质性社交网络( weak-homophily social networks)中的Sybils检测精度有限;
  3. 它们对训练数据集中的噪声标记不够健壮;
解释一下什么是weak-homophily social networks:

论文中的weak-homophily social networks意思是,虽然理论上我们认为benign region 和sybil region之间的attack edges是稀疏的,但现实世界里的Online Social Networks情况并没有这么理想,不妨举个例子,微博用户有时也会关注关注了他的Sybil,这就使得benign region 和sybil region之间的attack edges多了起来。

解释一下什么是label noise:

对于我们的Dataset,如果用户的给定标签与用户的真实标签不匹配,则该标签是有噪声的。产生噪声的原因主要有以下两种:

  1. 一个benign user的账户被盗,所以实际上它已经成为了Sybil user
  2. 在人工标记的过程中,出现错误

2. 论文提出了一种新的方法-----SybilWalk

假设有一Online Social Network,用G=(V,E)G=(V,E)表示:

  1. uVu\in V表示一个用户
  2. (u,v)E(u,v)\in E表示用户u和v之间的一条边
training dataset:

一个训练数据集,由一些标记过的benign users和一些标记的Sybil users组成

our goal:

Structure-based Sybil detection is to predict the label of each remaining node by leveraging the structure of the social network

2.1 SybilWalk第一步:构建 label-augmented social network

SybilWalk:Random Walk based Fake Account Detection in Online Social Networks论文笔记

  1. 圆形节点:表示用户,如果两个用户之间有关系,就在两个圆形绿色节点之间构建一条实线边
  2. 方形节点:两种颜色,表示用户的标签,指明用户是benign还是sybil,如果该用户是benign user,那该用户和蓝色方形节点之间构建一条虚线边

2.2 SybilWalk第二步:Define Badness Scores Using Random Walks

一个节点的badness score 意味着该节点是Sybil user的可能性。一个较大的badness score意味着该节点更可能是一个Sybil。

直观地说,如果一个节点在拓扑结构上更接近节点标签lsl_s,则该节点的badness score会更高。

在我们构建的 label-augmented social network中,共有两种类型的节点,那对于这两种不同的节点类型,它们对应的badness score 取值也不同。

标签节点的badness score

标签节点(方形的),只有两种badness score值,标签节点lbl_b取值0,标签节点lsl_s取值1。用户节点与标签节点lbl_b相连,表示该用户是正常用户lsl_s,反之是恶意账户。

用户节点的badness score

我们定义用户节点 u 的badness score为从这个节点经random walk到达 lbl_b 之前到达 lsl_s 的概率。

pu=wuvtΓuwut p_u=\frac{w_{u v}}{\sum_{t \in \Gamma_{u}} w_{u t}}

  1. pup_u 表示一个节点的badness score
  2. Γu\Gamma_{u}是节点 u 的邻居集合
  3. wuvw_{uv}是连接节点 u 和 v 的边上的权重

如果 u 在label-augmented social network的结构上就更接近lsl_s ,那么在随机游走过程中就更有可能首先到达lsl_s

基于随机游走的badness score计算是可行的。例如,计算节点 u 的badness score的一种方法是模拟从该节点开始的随机游走 r 次。在这 r 次中,如果有rsr_s次在到达lbl_b之前到达了lsl_s,那么我们可以将 u 的badness score近似为rsr\frac{r_s}{r},然而,这种方法是低效的,因为:

  1. 我们通常需要为一个用户节点模拟大量的随机游动,以获得一个可靠的badness score近似值
  2. 我们需要为label-augmented social network中的每个节点都模拟大量不同的随机游动

一个用户节点的badness score还可以表示为它的邻居的badness score的线性组合:
pu1=wu1u2wu1u2+wu1u3pu2+wu1u3wu1u2+wu1u3pu3 p_{u_{1}}=\frac{w_{u_{1} u_{2}}}{w_{u_{1} u_{2}+w_{u_{1} u_{3}}}} p_{u_{2}}+\frac{w_{u_{1} u_{3}}}{w_{u_{1} u_{2}+w_{u_{1} u_{3}}}} p_{u_{3}}
总结地说,对于每个节点 u 我们都有以下线性方程:
pu=vΓuwuvdupv p_{u}=\sum_{v \in \Gamma_{u}} \frac{w_{u v}}{d_{u}} p_{v}
根据上面这个线性方程,设计一个计算每个节点badness score的迭代算法:

  1. 设置节点 u 的初始badness score pu(0)=0p_{u}^{(0)}=0
  2. 经过 t 次迭代后,节点 u 的badness score为pu(t)p_{u}^{(t)}
  3. 当两次迭代得到的badness score值小于某个阈值时候,就停止迭代
    pu(t)=vΓuwuvdupv(t1) p_{u}^{(t)}=\sum_{v \in \Gamma_{u}} \frac{w_{u v}}{d_{u}} p_{v}^{(t-1)}
    SybilWalk:Random Walk based Fake Account Detection in Online Social Networks论文笔记