SCAN: A Structural Clustering Algorithm for Networks
一、論文地址:
https://dl.acm.org/doi/pdf/10.1145/1281192.1281280
發表年份:2007
被引用量:772
二、任務簡介:
當前科學界感興趣的許多數據都可以建模爲網絡(或圖)。網絡是頂點的集合,表示對象,通過邊連接在一起,表示對象之間的關係。例如,一個社會網絡可以被看作是一個圖,其中個人由頂點表示,而人與人之間的友誼是邊。類似地,萬維網可以建模爲一個圖,其中web頁面表示爲頂點,當一個頁面包含到另一個頁面的超鏈接時,這些頂點就可以通過一條邊連接在一起。
而圖聚類(或圖劃分)正是是發現網絡底層結構的一項重要任務。許多算法通過最大化集羣內邊緣的數量來尋找集羣。
雖然這些算法可以找到圖中一些有用的結構,但它們往往無法識別和分離兩種特殊的頂點——橋接集羣的頂點(橋節點)和與集羣有少量連接的頂點(離羣點)。
識別橋節點對於病毒傳播和流行病學等應用程序是非常重要的,因爲橋節點往往負責傳播思想或疾病。相比之下,離羣點的影響很小,甚至沒有影響,並且可以作爲數據中的噪聲進行隔離。
三、核心思想:
該文章提出了一種新的圖結構聚類算法——SCAN,用於檢測網絡中的社區、橋節點和離羣點。它基於結構相似性度量對頂點進行聚類。該算法特點是:速度快,效率高,每個頂點只訪問一次。
主要貢獻是能夠識別出橋節點和離羣點兩種特殊點。
四、算法簡介:
4.1 傳統算法的不足:
網絡聚類(或圖劃分)是檢測網絡中隱藏結構的一種基本方法,由於許多有趣的應用,在計算機科學、物理和生物信息學中引起了越來越多的關注。
因此人們開發了各種各樣的方法。這些方法傾向於羣集網絡,這樣每個羣集中都有一組密集的邊,而羣集之間的邊很少。基於模塊的和歸一化切割算法是典型的例子。
然而,這些算法並不區分網絡中頂點的角色。有些頂點是集羣的成員;有些頂點是橋接許多集羣但不屬於任何集羣的橋節點,而有些頂點則是隻與特定集羣有弱關聯的離羣點。
如下圖所示:
現有的方法,如基於模塊的算法,會將這個例子分成兩個集羣:一個由頂點0到6組成,另一個由頂點7到13組成。它們沒有隔離頂點6(一個橋節點,將其劃分到在任何一個集羣中都是有爭議的)或頂點13(一個離羣點,它只與網絡有一個連接)。
4.2 提出改進目標:
而橋節點和離羣點的識別對於許多應用程序來說是至關重要的。
因此這篇文章提出了一種新的網絡聚類算法——SCAN(網絡結構聚類算法)。該算法的目標是在大型網絡中找到集羣、橋節點和離羣點。
爲了實現這個目標,該算法使用頂點的鄰域作爲聚類標準,而不是隻使用它們的直接連接。頂點按照它們共同鄰域的方式分組到集羣中。
這樣做是很有意義的,比如當我們考慮到大型社交網絡中的社區檢測時,擁有很多共同好友的兩個人應該聚集在同一個社區。
再次參考上圖中的示例:
- 考慮頂點 0 和 5,它們由一條邊連接。它們的鄰域分別是頂點集 {0,1,4,5,6} 和 {0,1,2,3,4,5}。它們共享許多鄰居,因此被合理地分組在同一個集羣中。
- 考慮頂點 13 和頂點 9 的鄰域。這兩個頂點是連接的,但只有兩個公共鄰居,即 {9,13}。因此,它們是否應該被歸爲同一類是值得商榷的。
- 考慮頂點 6 的情況。它有很多鄰居,但它們之間的聯繫很少。
因此通過SCAN最終目標是確定了兩個集羣,{0,1,2,3,4,5} 和 {7,8,9,10,11,12},並將頂點 13 作爲離羣點,將頂點6作爲橋節點。
4.3 算法特點:
SCAN 算法有以下特點:
- 通過使用頂點的結構和連接性作爲聚類標準來檢測集羣、橋節點和離羣點。理論分析和實驗評估證明,SCAN 可以在非常大的網絡找到有意義的集羣、橋節點和離羣點。
- 速度快。它在有n個頂點和m條邊的網絡上的運行時間是O(m)。
五、一些基礎概念:
概算法的目標是優化網絡集羣,並識別橋節點和離羣點。因此,這篇論文在定義最優聚類的同時,使用了連通性和局部結構。本文形式化了結構連接集羣的概念,並擴展了基於密度的集羣的概念。
現有的網絡聚類方法(指的是2007年的時候)的目的是根據頂點之間或集羣之間的直接連接邊數目來找到最優的網絡聚類。直接聯繫固然很重要,但它們只代表了網絡結構的一個方面。
作者認爲兩個相連點周圍的鄰域也很重要。一個頂點的鄰域包括通過一條邊連接到它的所有頂點。當我們考慮一對連接的頂點時,它們的組合鄰域顯示了兩個頂點共有的鄰居。因此SCAN算法是基於共同鄰域的算法。根據共享鄰域的方式,將兩個頂點分配給一個集羣。
本文主要關注簡單的、無向的和未加權的圖。
基本圖:
設G = {V, E}爲一個圖,其中V爲頂點集合,E是由不同的頂點(無序)組成的集合,稱爲邊。
節點相似度:
節點相似度定義爲兩個節點共同鄰居的數目與兩個節點鄰居數目的幾何平均數的比值(這裏的鄰居均包含節點自身)。
其中 Γ(x) 表示節點 x 及其相鄰節點所組成的集合。
ϵ - 鄰居:
節點的 ϵ-鄰居定義爲與其相似度不小於 ϵ 的節點所組成的集合。
核節點:
核節點是指 ϵ-鄰居的數目大於 μ 的節點。
直接可達:
節點 w 是核節點 v 的 ϵ-鄰居,那麼稱從 v 直接可達 w。
可達:
節點 v 可達 w ,當且僅當存在一個節點鏈 ,使得 是從直接可達的。
相連:
若核節點u可達節點v和節點w,則稱節點v和節點w相連.
相連聚類:
如果一個非空子圖C中的所有節點是相連的,並且C是滿足可達的最大子圖,那麼稱C是一個相連聚類。
橋節點:
與至少兩個聚類相鄰的孤立節點。
離羣點:
只與一個聚類相鄰或不與任何聚類相鄰的孤立節點。
引理一:
如果 v 是一個核節點,那麼從 v 可達的節點集是一個結構相連聚類。
引理二:
C 是一個結構相連聚類, p 是 C 中的一個核節點。那麼 C 等於從 p 結構可達的節點集。
六、算法詳解:
6.1 僞代碼:
算法SCAN的僞代碼如圖所示:
SCAN執行一次網絡遍歷,查找給定參數設置的所有結構連接的集羣。
6.2 算法詳解:
- 在開始時,所有的頂點都被標記爲非分類的。掃描算法對每個頂點進行分類,要麼是集羣的成員,要麼是非成員。
- 對於尚未分類的每個頂點,掃描檢查是否這個頂點的核心(STEP 1)。
- 如果頂點是核心,則從這個頂點拓展一個新的集羣(STEP 2.1)。否則,頂點標註爲非成員(STEP 2.2)。
- 爲了找到一個新的集羣,從任意核心 v 搜索所有可達頂點。由於引理2,這足以找到包含頂點 v 的完整集羣。
在STEP 2.2中,會生成一個新的集羣ID,該ID將分配給STEP 2.2中找到的所有頂點。
SCAN首先將頂點 v 的所有其 ϵ-鄰居放進隊列中。對於隊列中的每個頂點,它計算所有直接可達的頂點,並將那些仍未分類的頂點插入隊列中。重複此操作,直到隊列爲空。
6.3 複雜度分析:
對於給定的一個有m條邊和n個頂點的圖,SCAN首先通過檢查圖的每個頂點(STEP 1)來查找所有結構連接的羣集(需要檢索所有頂點的鄰居)。圖結構使用鄰接表存儲,其中每個頂點都有一個與之相鄰的頂點的列表,鄰域查詢的成本與鄰域的數量成正比,也就是查詢頂點的程度。
因此,總代價是,其中是頂點的度。
因此,運行時間爲。
如果邊的數量未知,還可以根據頂點的數量推導出運行時間。在最壞的情況下,每個頂點連接到一個完整圖的所有其他頂點。最壞的情況下,總代價是或。
然而,真實的網絡通常具有更稀疏的程度分佈。在下面的例子中,作者推導出一個平均情況的複雜度。網絡的一種類型是隨機圖,即通過在頂點之間隨機放置邊來生成隨機圖。隨機圖已被廣泛應用於各種類型的現實世界網絡的模型,特別是在流行病學中。隨機圖的度具有泊松分佈:
這表明大多數節點具有大致相同數量的鏈接,即接近的平均度。在隨機圖的情況下,掃描的複雜度爲O(n)。
七、算法評估:
作者使用了合成數據集和真實數據集評估算法掃描。
以下爲SCAN算法的一些可視化結果:
八、結論:
網絡聚類是許多科學和工程領域的一項基本任務。包括計算機科學和物理在內的不同學科的研究者已經提出了許多算法。雖然這種算法可以成功地檢測到網絡中的集羣,但它們往往無法識別和分離兩種特殊頂點——橋接集羣的頂點(橋節點)和與集羣有邊緣連接的頂點(離羣點)。識別中心對於病毒營銷和流行病學等應用至關重要。作爲連接集羣的頂點,樞紐負責傳播思想或疾病。相比之下,異常值的影響很小,甚至沒有影響,並且可以作爲數據中的噪聲進行隔離。
本文提出了一種網絡結構聚類算法來檢測網絡中的集羣、橋節點和離羣點。掃描基於它們的共同鄰居的集羣頂點。根據共享鄰居的方式,將兩個頂點分配給一個集羣。