论文:Inferring lockstep behavior from connectivity pattern in large graphs
作者:Meng Jiang,Peng Cui
来源:PAKDD 2014

1.概括

黑产会拥有一组账户,批量为一组页面点赞增加曝光,或者为一组商品刷量作弊。这样的行为被被称为lockstep行为。相比上文的孤立点检测(OddBall),针对这一类异常群簇检测可能在实际应用中更有参考价值。

本文使用实际微博数据,在图的邻接矩阵谱子空间视角下分析其三种模式及量化,并提出线性复杂度的自动检测算法LOCKINFER。

2. 相关概念

2.1 Lockstep行为

如在Twitter、微博社交网站上,会存在刷关注这一类lockstep行为:

在数据上表现为邻接矩阵中出现密集的区域,称为dense block:

蓝色区域

在实际场景中,lockstep行为可以分成以下两类:

不重叠lockstep行为:实际中,风控是攻防对抗的过程,为了逃避检测,所有僵尸粉不会完全关注所有目标用户,以减少block的密度,这一类lockstep行为称为Non-overlapping(图a)。

部分重叠lockstep行为:黑产通常会共享客户,如客户会把任务同时分配给多个黑产,这样会出现这样会出现lockstep行为部分重叠的现象(如图b)

2.2 Lockstep block 定义

设MxN的邻接矩阵A,密度为D,若存在一个mxn的block,其密度超过某个阈值的(阴影区域),则称为lockstep block,并给出计算阈值的公式:

  • 上述公式假设为lockstep block 在稀疏矩阵中出现的概率非常小,如平均出现次数小于1。
  • 例如在1M ×1M (3M 边) 的图中. 一个 100 × 100 block若是lockstep block,当且仅当密度超过2%(
    )。
  • 该公式会用在信念传播算法中用户筛选出lockstep的follower/followee。
  • 本文的目标即识别稀疏矩阵中的lockstep block。

2.3 谱子空间

通过谱子空间可以量化lockstep行为,本节介绍谱子空间的定义和绘制。

谱子空间(spectral-subspace):邻接矩阵进行k-SVD分解后得到的左奇异矩阵中任意两列左奇异向量组成的子空间

含义:如NxM的邻接矩阵,可以看作有N个节点,每个节点有M维特征, 而谱子空间是降维到二维空间上节点的表示。 注意若follower-followee网络中,用左奇异向量构建的谱子空间是分析对象是follower节点,而右奇异向量对应followee节点。

绘制:

为两个左奇异向量,有N个元素,换个表述为:

N个节点有两个维度的表示,通过散点图

展示谱子空间

3. 模式分析及量化
3.1 邻接矩阵和谱子空间视角下的lockstep模式

随机图:邻接矩阵上随机散落,而谱子空间上点围绕着原点散开。

右图为邻接矩阵视角,左侧为谱子空间视角,下同

存在不重叠lockstep行为:邻接矩阵左下角出现密集的块,而在谱子空间中呈现与坐标轴对齐的射线,称为“Rays(射线)“

部分重叠lockstep行为:在邻接矩阵上三个连着阶梯状的密集块,称为"Staircase(楼梯)“, 而在谱子空间中会会有三个密集的团,它们与原点距离相近,有点像珍珠项链上的珍珠,故称为"Pearls(珍珠)"

下面表格是对上述三种模式的术语解释

以及对应lockstep类型:

下面两节进一步对三种模式分析:

3.2 “Rays”

定义两个术语:

  • camouflage:僵尸除了关注目标用户外,可能会关注少两正常用户来伪装自己。
  • fame:用户的粉丝中除了僵尸粉外,还存在少量正常用户。

下面分别观察block密度不同、是否存在camouflage和fame的邻接矩阵和谱子空间图,并通过矩阵分解理论证明存在三条规则:

  1. 规则1:图1中,若block密度较高,射线长度越短,称为“short rays“
  2. 规则2: 图2中,若block密度较低,射线长度越长,称为”long rays“
  3. 规则3:图3、4中,若存在camouflage或者fame(0.1%比例),射线会倾斜,称为
    "tilting rays"。

3.3 “Staircase”和“Pearls”

有三个黑产F1、F2、F3 和五组目标用户E1~E5,F1控制僵尸粉同时关注了E1-E3;F2同时关注E2-E4, F3同时关注E3-E5; 故五组目标用户的粉丝会有一部分重叠(图a)。

根据下图a,b 及同样矩阵分解理论证明可以总结出:

  • 规则4:重叠的lockstep行为在邻接矩阵中呈现“Staircase”,而在谱子空间图中成"Pearls",即存在三个密度较大的区域,并与原点的距离非常相近,令人想起项链上的珍珠

3.4 模式量化

将谱子空间转成极坐标,绘制每个节点关于半径(r)和角度(

) 分布,可以通过

Mean Filter算法识别分布中的尖峰(spike)可以找到具有上述模式的节点(如follower)。

然后作为种子,输入到信念传播算法中,最终识别出lockstep block,具体的在算法那一节介绍。

下面是对比随机图、“Rays”、Tilting "Rays“、”Pearls“模式下半径(r)和角度(

) 分布的可视化例子,红色部分为尖峰:

3.5 “Rays”与“Pearls“关系和区别

“Rays”和“Pearls”都反映了由lockstep行为现象引起的相邻矩阵中的密集块。

但“Pearls”模式是多个lockstep行为部分重叠产生的密集块;从业务理解为"Pearls"是黑产之间存在协同模式,而"Rays"是单独作战。

4. 算法

本文提出LOCKINFER算法,分成两部分:

  1. 种子筛选:按照3.4模式量化选择节点作为具有lockstep行为的种子,如在follower-followee中称为为“lockstep follower“。
  2. “Lockstep”传播:在二分图之间传播“Lockstep”分数,从而捕捉到Lockstep行为。一方面定位具有lockstep行为的followee,另外可以减少种子筛选环节的误差。

4.1 种子筛选

通过3.4的模式量化进行种子筛选,具体步骤如下:

初始化:设定k-SVD中的k、绘制关于r和

分布直方图的bin数量
(算法对这些参数不敏感)

step1:将邻接矩阵通过k-SVD分解得到前k个左奇异向量,两两组合绘制谱子空间。

step2:将谱子空间利用霍夫变换得到极坐标。

step3:绘制节点关于r和

的分布,通过Median Filter检测出尖峰对应的节点集作为种子节点。

此外可以通过业务经验进一步过滤,如属于同一城市的节点、生日相同、均为男性等(可选)。

4.2 Lockstep 传播

基于筛选出的种子,通过信念传播提炼出具有lockstep行为的一组follower和followee。

初始化:定义种子第0轮的lockstep follower、最小的lockstep block 规模

以及相应的密度
(根据2.2的公式),通过算法识别出来的lockstep block都要超过该规模。

迭代进行下面两步,直至满足收敛条件:

  1. follower-to-followee: 统计每个followee被多少个lockstep follower关注了,若比例超过阈值d 且规模大于

    ,标记为lockstep followee(下图a)。
  2. followee-to-follower:统计每个follower被多少个lockstep followee关注了,若比例超过阈值d 且规模大于
    ,标记为lockstep follower(下图b)。

收敛条件:第i轮和第i-1轮迭代得到的lockstep follower集合相同。

算法:

疑问:

  1. 通过最小的

    得到的密度阈值d 为什么可以直接用于筛选lockstep的follower和followee阈值?
  2. 上述算法是找到具有lockstep的follower和followee,如何找到关联性,识别出不同的lockstep block?

4.3 可扩展性

算法分成SVD分解和传播算法两部分:

  1. 种子筛选:SVD可以用HEIGEN(分布式MR,现在用Spark似乎更快)实现k-SVD分解,复杂度为O(k(N+E))
  2. 信念传播:第二部分复杂度是O(k^2N+kN+TE),T为迭代次数

当k和T远小于N,N与E相似,整体算复杂度为O(E)

5. 实验-微博数据

在1亿规模节点的微博社交关系图中实现,找到下面2个lockstep block

邻接矩阵视角如下:

并通过一些呈聚集性/pattern的的特征进一步验证:

登录名、生日日期、出入度 模式很相似

通过度分布发现有两个spikes,是lockstep block造成的异常(图a)。移除lockstep block中的节点后分布正常(图b)

进一步证明算法对参数不敏感,如k-SVD中的k:

以及绘制r和

分布的
:

另外计算复杂度也是线性的(10亿边1个小时,30亿边2个小时):

基于图的异常检测(一):OddBall

基于图的异常检测(二):LOCKINFER

基于图的异常检测(三):GraphRAD

节点图一般的比例_基于图的异常检测(二):LOCKINFER相关推荐

  1. 剔除异常值栅格计算器_基于数据流的异常检测: Random Cut Forest

    一.解决的问题 数据是实时产生的,对数据进行批处理所花费的成本太高了,数据产生的价值被低估 在高维数据下,如何能发现异常的维度? If my time-series data with 30 feat ...

  2. 检测噪声大小的c语言程序,单片机课程设计(论文)_基于AT89C51的噪音检测自适应系统设计.doc...

    单片机课程设计(论文)_基于AT89C51的噪音检测自适应系统设计 摘 要 本文以AT89S52 单片机为控制核心,通过播音判断电路寻找广播间歇时段,实时采集噪声环境内的噪音信 号,根据A/ D 转换 ...

  3. 基于时间序列的异常检测算法小结

    简介 搜罗了网上几乎所有的基于时间序列的异常检测方法,没有包括文献,整理记录一下. 综合引用以下文章: 数据挖掘导论 时间序列异常检测机制的研究 KPI异常检测竞赛笔记 异常检测之时间序列的异常检测 ...

  4. 《异常检测——从经典算法到深度学习》7 基于条件VAE异常检测

    <异常检测--从经典算法到深度学习> 0 概论 1 基于隔离森林的异常检测算法 2 基于LOF的异常检测算法 3 基于One-Class SVM的异常检测算法 4 基于高斯概率密度异常检测 ...

  5. 「网络安全专利分析」一种基于多粒度异常检测的网络威胁评估方法

    就像是一场梦,醒来还是很感动,蛋黄的长裙,蓬松的头发,还是很想被你保护,我心里的惨痛.最近又是看论文.又是看专利,还要凑点时间来追剧,难搞哦. 和博士聊了一下得知可以在sci-hub上免费看论文 捣鼓 ...

  6. 基于高斯分布的异常检测算法 项目描述

     异常检测项目整理 基于高斯分布的异常检测算法 收集特征:电机轴1到6,问问剑桥,那份文档每个参数啥意思. 假设机器数据符合高斯分布,如果不符合,就用对数函数转化为高斯分布. 一个机器的1轴和2轴 ...

  7. 【Datawhale第25期组队学习】Task03:基于线性模型的异常检测

    Taks03 基于线性模型的异常检测 文章目录 Taks03 基于线性模型的异常检测 0 写在前面 1 概述 2 线性回归 2.1 基于自变量与因变量的线性回归 2.1.1梯度下降法优化目标函数 2. ...

  8. PyOD是一种基于Python的异常检测工具箱。它提供了一系列流行的异常检测算法,可以用于识别各种异常情况,例如离群值、孤立点和噪声数据。在本文中,将介绍PyO...

    PyOD是一种基于Python的异常检测工具箱.它提供了一系列流行的异常检测算法,可以用于识别各种异常情况,例如离群值.孤立点和噪声数据.在本文中,将介绍PyOD的简介.安装和使用方法. 一.简介 P ...

  9. 水文分析提取河网_基于图的河网段地理信息分析排序算法

    水文分析提取河网 The topic of this article is the application of information technologies in environmental s ...

最新文章

  1. 火狐浏览器pentadatyl插件的基本设置
  2. mysql 创建唯一索引_Mysql普通索引和唯一索引的选择分析
  3. 学习web标准、用户体验改善、Ajaxamp;Asp.Net
  4. 【不体系】布谷鸟过滤器
  5. oracle sql去差集,Oracle 两个逗号分割的字符串,获取交集、差集的sql实现过程解析...
  6. flutter web 微信授权和微信支付
  7. 空调库存创新高,格力计划挖掘三四五线城市
  8. android 换肤 原理,Android动态换肤实现原理解析
  9. 小白易学--ps拼接图片教程之照片拼图
  10. 记一次使用android studio分析app闪退原因的过程
  11. 《动手学深度学习》学习之路01-- Kaggle⽐赛:房价预测
  12. php 网页爬虫 cooking,scrapy爬取dmoz/Home
  13. web前端就业怎么样
  14. Sql中的并(UNION)、交(INTERSECT)、差(minus)、除去(EXCEPT)详解
  15. 52单片机 (十七)AD DA 数模转换
  16. 架构师图谱之微服务消息队列
  17. 楼层钢筋验收会议纪要_项目从立项到竣工验收,需要形成哪些记录和文件?-证在5G...
  18. 计算机英语简写对照,计算机术语简写-全称对照表.pdf
  19. 如何在bios里调节风扇转速 bios设置风扇转速的方法
  20. VMware虚拟机安装Linux系统教程

热门文章

  1. 菜鸟学习笔记2,$(document).ready()使用讨论
  2. 三星 Nexus S刷MIUI ROM最新图文刷机教程
  3. sql2005收集作业相关历史记录
  4. FreeJTS部标视频平台:JT/T808、JT/T809、JT/T796、JT/T794、JT/T1078、苏标ADAS的区别
  5. Linux中zip压缩和unzip解压缩
  6. 深入理解Hadoop集群和网络
  7. Google code 100个开源项目
  8. Flask实战2问答平台-父模板抽离(登录注册界面)
  9. 4kyu Sums of Perfect Squares
  10. go语言有哪些劣势?