用於異常檢測的幾種圖劃分算法

2020-12-05 TechWeb

在安全領域,「圖分析」廣泛應用在帳戶交易異常、不同事件關聯等各種場景下。與其他機器學習算法類比較, 其特有的優點在於分析方法符合人的思維方式,分析過程能直觀地可視化。

舉例來說,下圖是把瀚思某客戶企業中幾類安全事件 : 登陸、使用USB盤、檢測到病毒、機器IP、 用戶使用機器 - 綜合到一起做關聯分析。

圖中「邊」代表發生過事件;點(機器、用戶、IP、病毒、USB盤五類之一) 的大小代表事件多少。一張圖上我們可以快速定位爆發次數最多的病毒、哪些用戶違規使用同臺機器、哪些機器使用過同一個USB盤。

下圖是另一類例子,瀚思幫銀行客戶做的交易異常分析:點大小與出度成正比, 顏色隨著入度大小按藍色⇒白色⇒紅色方向變化。用金融術語來說:出度過大的叫火山,入度過大的叫黑洞。這類情況往往和詐騙洗錢相關。

但是,圖一旦變大,分析過程會變慢,需要分析的邊數量,即使最壞不會到全連通有向圖中等於節點數N的N*(N-1)/2, 也往往遠大於N。而且可視化因為屏幕大小和易讀性的限制,不宜再把成千上萬個節點和對應的邊放到一張圖上。

這種情況下,我們採用分而治之策略:利用實際經驗中圖的社區性特徵,把圖分割成若干個強聯通的區域, 對每一個區域做分析和可視化。

好的圖劃分算法在實際應用中要額外有三個特徵:

1、高速度,最好能並行化或者能用GPU加速。

2、能處理小世界網絡特徵(也就是節點度數呈肥尾分布)。

3、對參數不敏感。

很多算法無法滿足2和3,教科書中算法大多是把圖均分,而且假設知道圖要分為多少類。

根據前文所述,瀚思利用「圖計算」在實際應用中,幫助客戶解決了有關異常行為檢測的工作。而本文將重點針對三類應用廣泛、效率較高並可以應用於異常檢測的圖劃分算法進行詳述。

譜劃分

譜劃分算法:它是最早用於解決圖劃分的一類算法,其思想來源於譜圖劃分理論。 矩陣的譜就是它的特徵值和特徵向量。 求圖劃分準則的最優解是一個NP難問題。 一個很好的求解方法是考慮問題的連續鬆弛形式,將原問題轉換成求解Laplacian 矩陣的譜分解, 因此將這類方法統稱為譜劃分。

假定將每個數據樣本看作圖中的頂點V,根據樣本間的相似度將 頂點間的邊 E 賦權重值,便可得到一個基於相似度的無向加權圖 G=(V,E). 相似矩陣通常用 W 或 A 表示,有時也稱為親和矩陣(Affinity Matrix), 往往是通過計算高斯核得到。

將相似度矩陣的每行元素相加,即得到對應點的度,以所有度值為對角元素構成的對角矩陣稱為度矩陣,通常記為 D。定義好相似矩陣W及度矩陣D,便可得如下的 Laplacian 矩陣:L=D – W

根據不同的準則函數及譜映射方法,譜劃分算法發展了很多不同的具體實現方法,但都可以歸納為下面的三個主要步驟:

對於給定的圖G=(V,E),計算圖的 Laplacian 矩陣L;

對L矩陣進行特徵值分解,取其前 k 個特徵值對應的特徵向量,構建特徵向量矩陣Q;

利用K-means算法或其他經典聚類算法對矩陣Q進行劃分,每一行代表一個樣本點, 即原圖的頂點所屬的類別.

上述步驟只是譜劃分的一個框架,在具體實現中,還存在著不同的劃分準則,常見的有 Minimum Cut,Ratio Cut,Normalized Cut等。

譜劃分算法,首先通過引入 Laplacian 矩陣,運用 Laplacian Eigenmap 進行降維,再對這些 低維數據利用聚類算法進行劃分,使得運算量大大較少.下圖是用譜劃分算法實現的效果圖:

但譜劃分算法也有一些不足之處:

1)構建特徵向量矩陣Q無疑是該算法中最耗時間的, 在高維情況下, 不說求解特徵向量就是求解特徵值都非常困難;

2)需要藉助先驗知識定義遞歸終止條件,即不具備智能識別圖類別總數的能力;

3)現實世界中的複雜網絡圖往往包含多個類,而遞歸的二分策略不能保證得到的劃分是最優的劃分。

多層劃分算法

第二類圖劃分算法,稱為*多層劃分(Multilevel Partitioning,1995,Karypis)*。

以高效及運算時間快著稱,比譜劃分算法快10%-50%, 計算千萬數級的圖,時間基本是以秒計算。其主要實現步驟通常分為圖的 粗化階段(Coarsening phase), 初始劃分階段(Initial partitioning phase)和細化階段 (Uncoarsening phase)三個階段。

簡言之,如下圖所示,該算法就是將原始圖經粗化階段一層一層壓縮變「小」,得到頂點數目足夠小的圖, 再將這個數目足夠小的圖經過初始劃分階段和細化階段一層一層還原變「大」,直到還原成原始圖,完成劃分。

粗化階段主要是為了減少原始圖的複雜性,構建圖的多級層次. 它對原始圖的點和邊進行壓縮合併, 構造了一個層次化的較小的圖序列, 最終將原始圖壓縮成一個頂點數目足夠小的圖。 這種壓縮的思想(詳見下圖)可以形式化地定義為匹配 (Matching),圖的匹配是指 邊的集合,其中任意兩條邊都沒有公共頂點。 在一個圖的所有匹配中,所含匹配邊數最多的匹配,稱為這個圖的最大匹配.

在整個粗化階段,原始圖的所有點以及權重都會累計,最終反應在最小規模圖。 將最小規模圖進行簡單的劃分,稱為初始劃分階段,該階段由於結點數目較少,運算非常快,基本不耗時。 也不是多層算法的核心部分,其算法與接下來的細化階段算法聯繫比較相似,這裡不再贅述.

細化階段,也可稱為圖的還原優化階段,該階段按照粗化層次一層一層將圖還原成原始圖,並在還原過程中 利用某些精細的算法逐層優化,直到得到對原始圖的劃分.

這其中的常見的劃分算法有譜二分法算法有Spectral Bisection(SB),Graph Growing Algorithm(GGP), Greedy Refinement(GR), Kernighan-Lin Refinement(KLR)等, 其中比較著名的是Kernighan-Lin劃分算法。

*Kernighan-Lin劃分算法*,簡稱KL算法,由Kernighan和Lin在1970年提出,是一個局部搜索優化算法, 優化的目標函數是連接不同類的邊權之和最小。

舉個簡單的例子,如下圖,紫色的點屬於一類,黑色的點屬於一類,KL算法是實現將下圖(a)轉換成下圖(b)的過程。

如何實現將紫色類別中的點和黑色類別中的點進行交換,則是通過計算不同類別損失權重的差值來判斷的, 即交換前的內外權重差(如下圖(a)的數字所示)減去交換後的內外權重的值。若且唯若該值為正進行交換,否則拒絕交換。 重複以上步驟,直至該值為負。

KL算法,較易理解,但得到的解往往是局部最優。下圖,是利用多層劃分算法進行圖劃分的例子:

多層劃分算法最大的局限在於它最大的局限性在於需要先驗知識來產生一個較好的初始類。

MCL

最後談談,Markov Cluster Algorithm(2000, Stijn van Dongen), 簡稱MCL算法,是一種快速可擴展的 無監督圖形聚類算法,有時也可以用於圖的劃分,其思想非常簡單,主要是基於 隨機遊走(Random walk) 和馬爾科夫鏈 (Markov chain)。 先簡單說一下這兩個概念.

隨機遊走說的是,如果我們從圖中的某一個點開始「瞎轉」,那麼很可能就會在某一個子圖裡面轉悠,而不是在子圖間來回遊蕩. 而隨機遊走的計算是通過 Markov鏈來實現的. Markov鏈指的是一個隨機序列,該序列滿足「無後效性」,即 將來的狀態只依賴當前狀態,而與過去的狀態無關。

MCL算法的關鍵思想就是:」隨機漫遊者抵達稠密的類後,不會輕易的離開該類」. 前者是隨機遊走的過程,後者依據是 Markov鏈的「無後效性」。 MCL算法中隨機漫遊的過程,其實是一個不斷修改轉移概率矩陣的過程,該過程 重複執行擴展(Expansion)和膨脹(Inflation)兩個操作。

擴展就是前面提到的馬爾科夫鏈的轉移矩陣的極限分布, 這個步驟不斷地對轉移概率矩陣進行自乘直到它不再改變為止。 目的是連接圖的不同區域。膨脹是對每一個元素進行冪操作,再將每一列歸一化,目的是為了強鄰居的連接更強, 弱鄰居的連接更弱,也就是讓轉移矩陣中概率大的概率更大,而小的更小。 這兩個操作重複執行一直到概率轉移矩陣收斂為止,得到最終的矩陣,根據最終的矩陣便可得結果。

MCL算法對無權圖及有權圖均試用,劃分的子圖個數無需事先設定,這是該算法的 最大優勢; 劃分的子圖是非均勻的,試用於長尾分布的數據。 下圖就是利用 MCL 進行圖劃分的結果:

但是MCL算法對圖的直徑較大的情況不適用。(直徑是指兩個點之間的距離最大值,距離是兩個點之間的所有路的長度的最小值)

相關焦點

  • 數據科學家必備的5種離群點/異常檢測方法
    我們現在有智能手錶和腕帶,可以每隔幾分鐘檢測我們的心跳。檢測心跳數據中的異常有助於預測心臟病。交通模式的異常有助於預測事故。它還可以用來識別網絡基礎設施和伺服器之間的通信瓶頸。因此,建立在檢測異常之上的用例和解決方案是無限的。我們需要檢測異常的另一個原因是,在為機器學習模型準備數據集時,檢測所有異常值非常重要,要麼去掉它們,要麼分析它們,以了解為什麼會有異常。
  • 學會五種常用異常值檢測方法,亡羊補牢不如積穀防饑
    選自towardsdatacience作者:Will Badr機器之心編譯參與:韓放、shooting通過鑑別故障來檢測異常對任何業務來說都很重要。本文作者總結了五種用於檢測異常的方法,下面一起來看看吧。什麼是異常/離群點?
  • 異常檢測的N種方法,阿里工程師都盤出來了
    背景異常點檢測(Outlier detection),又稱為離群點檢測,是找出與預期對象的行為差異較大的對象的一個檢測過程。這些被檢測出的對象被稱為異常點或者離群點。異常點檢測在生產生活中有著廣泛應用,比如信用卡反欺詐、工業損毀檢測、廣告點擊反作弊等。
  • [CVPR 2018論文筆記] 真實監控場景中的異常事件檢測
    算法框架如下圖所示,主要使用MIL的思路構建訓練集合,使用C3D+FC 的網絡來獲取異常評分,最後採用提出的MIL排序損失來訓練模型。可以看出,在異常檢測任務中,弱監督實際上就是MIL的另外一種表達形式,所以MIL的求解算法很適合用於該弱監督任務中。多示例學習的更多介紹可以參考這篇博客 多示例學習(Multiple Instance Learning)。深度MIL排序模型接下來介紹該文提出的算法。文
  • 用圖形解釋10種圖形算法
    > Image by Author在本文中,我將簡要說明10種基本圖形算法,這些算法對於分析及其應用非常有用。圖3表示與圖2相同的示例圖的DFS遍歷的動畫。請注意,它如何遍歷深度和回溯。應用領域 用於查找兩個頂點之間的路徑。 用於檢測圖中的周期。 用於拓撲排序。
  • 移動機器人的幾種視覺算法 | 雷鋒網公開課
    雷鋒網雷鋒網(公眾號:雷鋒網)雷鋒網如果對移動機器人視覺算法進行拆解,你就會發現獲取物體深度信息、定位導航以及壁障等都是基於不同的視覺算法,本期硬創公開就帶大家聊一聊幾種不同但又必不可少的視覺算法組成。
  • 幾種常見的車輛路徑規划算法
    下面介紹幾種常見的車輛路徑規划算法。 1. Dijkstra 算法 Dijkstra(迪傑斯特拉)算法是最短路算法的經典算法之一,由 E.W.Dijkstra 在 1959 年提出的。該算法適於計算道路權值均為非負的最短路徑問題,可以給出圖中某一節點到其他所有節點的最短路徑,以思路清晰,搜索準確見長。
  • 關於如何使用機器學習來做異常檢測的7個問題
    然而,它們並不一定代表異常行為或由不同過程產生的行為。另一方面,異常是由不同的過程生成的數據模式。異常檢測在藥品中有什麼應用嗎?異常檢測在藥物生命科學領域有許多應用。包括在製藥生產中使用統計過程控制(SPC)或質量控制(QC)和多元過程控制(MSPC)圖表進行過程監控和質量控制。
  • 基於卷積神經網絡的目標檢測算法簡介
    a) 預處理,對待檢測圖像進行圖像去噪、圖像增強、色彩空間轉換等操作b) 在待檢測圖像中滑動一個固定大小的窗口,將窗口中的子圖像作為候選區c) 利用特定算法對候選區域進行特徵提取d) 從特徵向量中選擇具有代表性的特徵
  • 集成聚類系列(三)圖聚類算法詳解
    圖聚類算法研究現狀聚類分析是一種常用的機器學習技術,它的目的是將一個數據點劃分為幾個類。同一個類的數據之間具有較高的相似性,不同的類之間的相似度較低。很多研究已表明圖聚類是一種極具競爭力的聚類算法,圖聚類是一種基於圖劃分理論的算法。與其他聚類算法相比,圖聚類算法有些明顯的優勢。
  • 雲平臺|OTU聚類的幾種算法!
    今天給大家介紹雲平臺|OTU聚類的幾種算法!講述微生物多樣分析背後的上帝之手!為何要進行聚類?圖2 Uprase原理UNOISE圖中X為一天最高豐度序列,周圍存在很多低豐度序列。圖4 Unoise的算法Unoise算法是對測序錯誤、擴增錯誤序列的校正DADA2全稱Divisive Amplicon Denoising Algorithm,通過降噪得到不含擴增與測序錯誤
  • 關於圖算法 圖分析的基礎知識概覽
    我們可以:查詢圖數據,使用基本統計信息,可視化地探索圖、展示圖,或者將圖信息預處理後合併到機器學習任務中。圖的查詢通常用於局部數據分析,而圖計算通常涉及整張圖和迭代分析。圖算法是圖分析的工具之一。圖算法提供了一種最有效的分析連接數據的方法,它們描述了如何處理圖以發現一些定性或者定量的結論。圖算法基於圖論,利用節點之間的關係來推斷複雜系統的結構和變化。
  • 關於圖算法 & 圖分析的基礎知識概覽
    上圖是最小生成樹算法的步驟分解,算法最終用最小的權重將圖進行了遍歷,並且在遍歷的過程中,不產生環。算法可以用於優化連接系統(如水管和電路設計)的路徑。它還用於近似一些計算時間未知的問題,如旅行商問題。雖然該算法不一定總能找到絕對最優解,但它使得複雜度極高和計算密集度極大的分析變得更加可能。
  • 異常檢測常用光流法量化對比:Farneback/Horn-Schunck / Lucas...
    )訓練出異常檢測分類器。大意是X軸表示解析度,Y軸表示參數變化(對比正常和異常兩種情況)。下面分別展示Farneback、H-S和L-K算法對應的結果圖:由上圖可以得知,Farneback光流法在Variance Manitude參數上對某些異常場景敏感,且優於另外兩種算法。由上圖可以看到,在MSE指標上Farneback優於另外兩種算法。
  • 17個機器學習的常用算法!
    在機器學習或者人工智慧領域,人們首先會考慮算法的學習方式。在機器學習領域,有幾種主要的學習方式。將算法按照學習方式分類是一個不錯的想法,這樣可以讓人們在建模和算法選擇的時候考慮能根據輸入數據來選擇最合適的算法來獲得最好的結果。1. 監督式學習:
  • 基於統計的異常檢測方法S-H-ESD[twitter]
    原文主要介紹了twitter雲系統中利用統計學習實現異常檢測的自動化,下面直接介紹相關方法。但是缺點是數據集中存在多個異常點則不適合,因為 分布表不會更新。下面介紹多異常點的檢測算法ESD(Extreme Studentized Deviate)[3]。  ESD  ESD可以檢測時間序列數據的多異常點。需要指定異常點比例的upper bound是k,最差的情況是至多49.9%。實際中,數據集的異常比例一般不超過5%。
  • 機器學習入門必讀:6種簡單實用算法及學習曲線、思維導圖
    聚類分析的算法可以分成很多類方法,比如劃分法、層次法、基於密度的方法、基於網絡的方法和基於模型的方法。最有名的聚類算法就是K-Means(K-均值)算法,是最為經典的、基於劃分的聚類方法。該算法的主要思路是以空間中k個點為形心進行聚類,將最靠近它們的對象歸類。通過迭代的方法,逐次更新各簇的形心的值,直至得到最好的聚類結果。(形心可以是實際的點,也可以是虛擬點)。
  • 12個場景應用,百餘種算法,AI是如何攻佔經濟學的?
    2、深度學習下的保險業保險業現在面臨的問題是,如何有效地管理欺詐檢測。相應的,機器學習技術針對此問題,逐漸開發了測量所有類型風險的算法。[75]等人利用社會化網絡分析法檢測大數據集的汽車保險職業欺詐。他們提出了兩種不同的方法來構建投資組合,第一種方法用於估計預期收益和不確定性,第二種方法直接利用神經網絡結構獲得配置,並對投資組進行優化。6、金融市場中的深度學習在金融市場中,有效處理信貸風險至關重要。
  • 2020 圖算法工程師面試基礎、要點
    這段時間面試連連,幾輪下來的感受就是,好點兒的公司對細節摳的很細,希望求職者能夠對使用的算法以及這個算法的其它觸類旁通的領域都能夠有系統的理解。 本文參照之前的:我們如何通過圖算法來幫助提高機器學習算法的性能?以及【圖算法:概覽(https://zhuanlan.zhihu.com/p/64984300)】以及之前劉教授出的GNN系統介紹的書的基礎知識部分進行總結。 圖是一種數據結構,它對一組對象(節點)及其關係(邊)進行建模。
  • 從數據結構到算法:圖網絡方法初探
    因此也催化出一系列在圖上進行數據挖掘的任務,如為用戶推薦感興趣的好友、判斷蛋白質結構、預測交通流量、檢測異常帳戶等等。但是真實圖的數據量龐大,動輒上億節點、而且內部拓撲結構複雜,很難將傳統的圖分析方法如最短路徑、DFS、BFS、PageRank 等算法應用到這些任務上。鑑於機器學習在圖像、文本領域的廣泛應用,一部分研究者嘗試將機器學習方法和圖數據結合起來,逐漸成為機器學習領域的一股熱潮。