节点图一般的比例_基于图的异常检测(二):LOCKINFER
论文: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个节点有两个维度的表示,通过散点图
3. 模式分析及量化
3.1 邻接矩阵和谱子空间视角下的lockstep模式
随机图:邻接矩阵上随机散落,而谱子空间上点围绕着原点散开。
存在不重叠lockstep行为:邻接矩阵左下角出现密集的块,而在谱子空间中呈现与坐标轴对齐的射线,称为“Rays(射线)“
部分重叠lockstep行为:在邻接矩阵上三个连着阶梯状的密集块,称为"Staircase(楼梯)“, 而在谱子空间中会会有三个密集的团,它们与原点距离相近,有点像珍珠项链上的珍珠,故称为"Pearls(珍珠)"
下面表格是对上述三种模式的术语解释
以及对应lockstep类型:
下面两节进一步对三种模式分析:
3.2 “Rays”
定义两个术语:
- camouflage:僵尸除了关注目标用户外,可能会关注少两正常用户来伪装自己。
- fame:用户的粉丝中除了僵尸粉外,还存在少量正常用户。
下面分别观察block密度不同、是否存在camouflage和fame的邻接矩阵和谱子空间图,并通过矩阵分解理论证明存在三条规则:
- 规则1:图1中,若block密度较高,射线长度越短,称为“short rays“
- 规则2: 图2中,若block密度较低,射线长度越长,称为”long rays“
- 规则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算法,分成两部分:
- 种子筛选:按照3.4模式量化选择节点作为具有lockstep行为的种子,如在follower-followee中称为为“lockstep follower“。
- “Lockstep”传播:在二分图之间传播“Lockstep”分数,从而捕捉到Lockstep行为。一方面定位具有lockstep行为的followee,另外可以减少种子筛选环节的误差。
4.1 种子筛选
通过3.4的模式量化进行种子筛选,具体步骤如下:
初始化:设定k-SVD中的k、绘制关于r和
step1:将邻接矩阵通过k-SVD分解得到前k个左奇异向量,两两组合绘制谱子空间。
step2:将谱子空间利用霍夫变换得到极坐标。
step3:绘制节点关于r和
此外可以通过业务经验进一步过滤,如属于同一城市的节点、生日相同、均为男性等(可选)。
4.2 Lockstep 传播
基于筛选出的种子,通过信念传播提炼出具有lockstep行为的一组follower和followee。
初始化:定义种子第0轮的lockstep follower、最小的lockstep block 规模
迭代进行下面两步,直至满足收敛条件:
- follower-to-followee: 统计每个followee被多少个lockstep follower关注了,若比例超过阈值d 且规模大于
,标记为lockstep followee(下图a)。
- followee-to-follower:统计每个follower被多少个lockstep followee关注了,若比例超过阈值d 且规模大于
,标记为lockstep follower(下图b)。
收敛条件:第i轮和第i-1轮迭代得到的lockstep follower集合相同。
算法:
疑问:
- 通过最小的
得到的密度阈值d 为什么可以直接用于筛选lockstep的follower和followee阈值?
- 上述算法是找到具有lockstep的follower和followee,如何找到关联性,识别出不同的lockstep block?
4.3 可扩展性
算法分成SVD分解和传播算法两部分:
- 种子筛选:SVD可以用HEIGEN(分布式MR,现在用Spark似乎更快)实现k-SVD分解,复杂度为O(k(N+E))
- 信念传播:第二部分复杂度是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相关推荐
- 剔除异常值栅格计算器_基于数据流的异常检测: Random Cut Forest
一.解决的问题 数据是实时产生的,对数据进行批处理所花费的成本太高了,数据产生的价值被低估 在高维数据下,如何能发现异常的维度? If my time-series data with 30 feat ...
- 检测噪声大小的c语言程序,单片机课程设计(论文)_基于AT89C51的噪音检测自适应系统设计.doc...
单片机课程设计(论文)_基于AT89C51的噪音检测自适应系统设计 摘 要 本文以AT89S52 单片机为控制核心,通过播音判断电路寻找广播间歇时段,实时采集噪声环境内的噪音信 号,根据A/ D 转换 ...
- 基于时间序列的异常检测算法小结
简介 搜罗了网上几乎所有的基于时间序列的异常检测方法,没有包括文献,整理记录一下. 综合引用以下文章: 数据挖掘导论 时间序列异常检测机制的研究 KPI异常检测竞赛笔记 异常检测之时间序列的异常检测 ...
- 《异常检测——从经典算法到深度学习》7 基于条件VAE异常检测
<异常检测--从经典算法到深度学习> 0 概论 1 基于隔离森林的异常检测算法 2 基于LOF的异常检测算法 3 基于One-Class SVM的异常检测算法 4 基于高斯概率密度异常检测 ...
- 「网络安全专利分析」一种基于多粒度异常检测的网络威胁评估方法
就像是一场梦,醒来还是很感动,蛋黄的长裙,蓬松的头发,还是很想被你保护,我心里的惨痛.最近又是看论文.又是看专利,还要凑点时间来追剧,难搞哦. 和博士聊了一下得知可以在sci-hub上免费看论文 捣鼓 ...
- 基于高斯分布的异常检测算法 项目描述
异常检测项目整理 基于高斯分布的异常检测算法 收集特征:电机轴1到6,问问剑桥,那份文档每个参数啥意思. 假设机器数据符合高斯分布,如果不符合,就用对数函数转化为高斯分布. 一个机器的1轴和2轴 ...
- 【Datawhale第25期组队学习】Task03:基于线性模型的异常检测
Taks03 基于线性模型的异常检测 文章目录 Taks03 基于线性模型的异常检测 0 写在前面 1 概述 2 线性回归 2.1 基于自变量与因变量的线性回归 2.1.1梯度下降法优化目标函数 2. ...
- PyOD是一种基于Python的异常检测工具箱。它提供了一系列流行的异常检测算法,可以用于识别各种异常情况,例如离群值、孤立点和噪声数据。在本文中,将介绍PyO...
PyOD是一种基于Python的异常检测工具箱.它提供了一系列流行的异常检测算法,可以用于识别各种异常情况,例如离群值.孤立点和噪声数据.在本文中,将介绍PyOD的简介.安装和使用方法. 一.简介 P ...
- 水文分析提取河网_基于图的河网段地理信息分析排序算法
水文分析提取河网 The topic of this article is the application of information technologies in environmental s ...
最新文章
- 火狐浏览器pentadatyl插件的基本设置
- mysql 创建唯一索引_Mysql普通索引和唯一索引的选择分析
- 学习web标准、用户体验改善、Ajaxamp;Asp.Net
- 【不体系】布谷鸟过滤器
- oracle sql去差集,Oracle 两个逗号分割的字符串,获取交集、差集的sql实现过程解析...
- flutter web 微信授权和微信支付
- 空调库存创新高,格力计划挖掘三四五线城市
- android 换肤 原理,Android动态换肤实现原理解析
- 小白易学--ps拼接图片教程之照片拼图
- 记一次使用android studio分析app闪退原因的过程
- 《动手学深度学习》学习之路01-- Kaggle⽐赛:房价预测
- php 网页爬虫 cooking,scrapy爬取dmoz/Home
- web前端就业怎么样
- Sql中的并(UNION)、交(INTERSECT)、差(minus)、除去(EXCEPT)详解
- 52单片机 (十七)AD DA 数模转换
- 架构师图谱之微服务消息队列
- 楼层钢筋验收会议纪要_项目从立项到竣工验收,需要形成哪些记录和文件?-证在5G...
- 计算机英语简写对照,计算机术语简写-全称对照表.pdf
- 如何在bios里调节风扇转速 bios设置风扇转速的方法
- VMware虚拟机安装Linux系统教程
热门文章
- 菜鸟学习笔记2,$(document).ready()使用讨论
- 三星 Nexus S刷MIUI ROM最新图文刷机教程
- sql2005收集作业相关历史记录
- FreeJTS部标视频平台:JT/T808、JT/T809、JT/T796、JT/T794、JT/T1078、苏标ADAS的区别
- Linux中zip压缩和unzip解压缩
- 深入理解Hadoop集群和网络
- Google code 100个开源项目
- Flask实战2问答平台-父模板抽离(登录注册界面)
- 4kyu Sums of Perfect Squares
- go语言有哪些劣势?