节点图一般的比例_基于图的异常检测(二):LOCKINFER
作者: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的鄰接矩陣和譜子空間圖,并通過矩陣分解理論證明存在三條規則:
"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算法,分成兩部分:
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都要超過該規模。迭代進行下面兩步,直至滿足收斂條件:
收斂條件:第i輪和第i-1輪迭代得到的lockstep follower集合相同。
算法:
疑問:
4.3 可擴展性
算法分成SVD分解和傳播算法兩部分:
當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的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux禁止客户端上传文件_实战 Fa
- 下一篇: 爬虫爬取链接中文字_使用爬虫技术爬取图片