1. 程式人生 > >複雜網路社區劃分方法綜述

複雜網路社區劃分方法綜述

摘 要:複雜網路在現實網路表現為多種形式,本文將從2002年以來經典社區劃分方法入手,對複雜網路社區劃分的研究現狀進行一個綜合簡單的描述和概括,試圖為社區劃分研究描繪出一個較為全面和清晰的輪廓,為該領域的後續研究提供有益的參照。
  關鍵詞:複雜網路;社區劃分;形式;綜述
  中圖分類號:TU984.12 文獻標識碼:A 文章編號:1674-7712 (2014) 12-0000-02
  複雜網路在現實網路表現為多種形式,如社會系統中的科學合作網、人際關係網,生物系統中的基因調控網、蛋白質大分子之間互動網和流行病傳播網、蛋白質互動網,科技系統中的電話網、因特網和全球資訊網等等。同時,複雜網路更加普遍存在一些統計特徵,如表達複雜網路中節點服從冪律分佈特徵的“無標度特性”,反映網路短路徑長度和高聚類係數特點的“小世界效應”和反映網路中普遍在的同一社群中節點連線緊密、不同社群節點連線稀疏特徵的“社群結構”等等 。一般認為社群結構(簇)是指複雜網路中由具有相同或相似屬性構成的社群,不同的社群結構在特定的網路中具有不同的性質和特徵,如:人際關係網路中由相同的興趣而形成的人群,蛋白質網路中具有相似功能的蛋白質群等。
  自從2002年,Girvan和Newman提出著名的社群挖掘GN(Girvan-Newman)演算法[1],此後很多複雜網路社群挖掘方法相繼被提出,在新的理論、方法層出不窮,新的應用領域也不斷湧現的背景下。如何發現複雜網路中的社群結構,已經成為最具挑戰的多學科交叉研究課題之一,吸引了來自生物、社會、物理、計算機、數學等多領域的研究者。
  本文將從2002年以來經典社區劃分方法入手,對複雜網路社區劃分的研究現狀進行一個綜合簡單的描述和概括,本文試圖為社區劃分研究描繪出一個較為全面和清晰的輪廓,為該領域的後續研究提供有益的參照。
  一、社群挖掘方法
  (一)基於模組度的社區劃分
  2002年,Girvan和Newman基於啟發式規則提出著名的社群挖GN(Girvan-Newman)演算法[1],該演算法從社群間的連線邊介數入手,根據社群間邊介數應大於社群內部連結的邊介數,通過反覆計算邊介數,移除邊介數最大的邊,自頂向下的方式建立一顆層次聚類樹的方法來劃分社群。其中邊介數定義為:網路中經過每條邊的最短路徑的數目。通過在實際網路中的應用發現該方法的劃分的結果精度高,但是計算速度較慢;對於一個具有m條邊,n個節點的網路時間複雜度為O(mn2),並且該演算法沒有對於社群在什麼時候進行劃分提出一個有效的方法。
  2003年,Tyler等人將採用蒙特卡洛方法[3]引入GN演算法中,引入統計方法來估算其中部分節點的連結的近似邊介數,提出了一種近似的Gn演算法,由於其實計算部分網路而不是全部網路,因此,該演算法是以犧牲精度為代價來提高計算的精度。
  2004年,Girvan和Newman針對GN演算法中無衡量社區劃分標準的不足,引入的函式Q值模組度計算。將次改進演算法運用到了實際網路跆拳道網路中得到了很好的劃分結果。該模組度定義為以後社區劃分的優劣提供了一個衡量的標準。該演算法的缺點是演算法的複雜度和之前相比並沒有什麼改進。
  於是同年,Newman又提出了基於模組性優化的快速社群發現演算法(FN演算法[2]),該演算法的過程和GN演算法恰好相反,演算法採用自底向上的層次聚類過程構成一顆層次聚類樹,在合併的過程中引入DQ,每次合併選擇使函式Q值增大最大或者減小最小的方向進行社群的合併操作,當最終社群合併為一個社群時,只要在對應Q值最大處斷開即可得到聚類的結果。通過對實際網路劃分的應用,對於一個m條邊,n個節點的網路,該演算法的複雜度為O(mn+n2)。演算法的時間複雜度得到了很大的改善。但是演算法也具有很大缺陷,在於其求解是區域性最優解,精度相較於GN演算法低。雖然其後Newman、Clauster等人繼續對FN演算法進行了優化,利用堆疊結構隊,提出了一種新的貪婪演算法CNM演算法。該演算法的複雜度O(nlog2n),已經接近於線性複雜度,但是演算法的區域性最優解問題依舊沒有得到改善。
  2005年,Guimera和Amaral基於退火演算法原理,提出了退火模組性優化演算法(SA)[3]。該演算法的設計思想是在計算之前要給一個初始社區劃分,這個初始的社區劃分可以任意的,在初始社群的基礎上通過迭代不斷產生新的社群解,在迭代過程中同時計算相應Q值。SA演算法不同與GN演算法和FN演算法的,SA演算法在計算新的候選解時是將節點劃分到其他社群、通過社群之間交換節點,再次分解社群或者合併社群。並且該演算法中應用了模擬退火策略的Metropolis準則來判斷該社群結果是否是當前的最優解。SA演算法在實際的資料集上應用的結果中得到了十分好的結果,不足之處是每次迭代都要產生很多的候選結果,因此該演算法的時間複雜度較高,執行效率較低。
  2006年,Newman基於模組度函式Q值,提出了優化函式Q的譜方法[4]。Newman通過引入譜圖理論研究模組度優化。用圖拉普拉斯矩陣來表示模組度函式Q,該矩陣又稱為模組性矩陣;並證明了這個矩陣的第二大特徵值的特徵向量的正負二分結果,正好對應了模組性優化的二分結果;通過在實際網路上的應用,該演算法的聚類結果接近實際網路,但其時間複雜度仍較高,介於O(n2 log n)和O(n log n)之間。
  2007年,楊博、Cheng和Liu等人[3]通過基於馬爾科夫隨機遊走模型提出了網路聚類演算法演算法(FEC演算法)。該演算法的假設是:開始從任意社群開始隨機遊走,根據在整個網路中的隨機遊走到達該起始社群內節點的期望值,應大於到達起始社群外節點的期望值的思想。演算法採用了啟發策略,綜合了兩種分簇標準(連線密度和連線符號)的複雜網路社群發現聚類演算法,理論上該演算法既能很好的處理符號網路,又能較精確的處理僅包含“正關係”的一般複雜網路,對於噪聲高和網路社群結構明顯的網路社區劃分的結果也相當精確。實驗結果表明FEC演算法在時間和精度方面有很好的效能。但是由於該演算法需要採用隨機遊走的步長作為引數,而對於這個步長引數,目前還沒有一個能夠有效針對不同網路設定最優引數的方法,所以對於步長的設定最終會直接影響最終的聚類結果的精度,一般認為對於步長的取值在[6,20]之間較為合適。   2009年,Barber等人將演算法LPA[4]轉化為一個函式優化問題,給出了目標函式。通過討論與研究該目標函式的特性,來進行社群的劃分,LPA在原理及實際應用方面的缺陷,需要注意,表示社區劃分質量的提高並不和目標函式值的增加相一致。因此,他們對目標函式進行了相應的改進,給出一個帶約束的標籤傳播LPAm演算法。該演算法的目標函式恰好是模組度函式Q值,因此,改進後的演算法對應了模組性函式優化,解決了在文獻[2]中所提出的問題。
  2011年,劉大有等人[3]從區域性觀點出發,根據複雜網路的規模不斷變大、且某些特性呈天然分散式特性的特點。並且針對單個節點社區劃分的歸屬,利用區域性目標函式f,對模組度函式Q進行了分析,提出了一種快速的社群挖掘演算法(FNCA演算法)。該演算法證明了模組度函式Q值會伴隨著網路中任意節點的函式f的單調遞增,Q值呈現出單調遞增特性;在此理論的基礎上提出基於區域性優化的近似線性的社群挖掘演算法。在演算法中,每個節點只利用網路區域性社群結構資訊優化自身的目標函式f,通過節點之間的相互協同實現整個網路的聚類過程,該演算法能用於分散式網路社群挖掘,又能用於分散式網路社群網路挖掘,通過對實際網路社區劃分的結果分析,該演算法的時間複雜度較低,精度較高。
  (二)基於節點相似性的社區劃分
  2006年Leicht,Holme P,Newman等人提出的LHN演算法[7],該算利用網路鄰接矩陣A來定義矩陣SLHN=2lamtD-1(I-QA/lamt),其中任意一個元素代表兩個節點之間的相似度大小,lamt是鄰接矩陣A的最大特徵值,D是由節點連線陣列成的對焦矩陣,QA是一個介於[0,1]之間的引數,以保證矩陣逆的存在,該演算法根據隨機遊走理論,定義節點Vi和Vj間的平均通勤時間定義為:2m(lii+ljj-2lij),其中還lij表示矩陣L=(D-A)+的相應元素,該演算法具有很高的計算複雜度,不適合大型網路計算。
  2007年,Frey和Dueck通過3個迭代公式不斷的對兩個訊息R和A進行更新,提出了近鄰傳播演算法AP演算法[6],該演算法又被稱為基於訊息傳遞的聚類演算法。AP演算法的思想是將網路中每個點都作為聚類中心節點,然後計算中心節點與其他節點的相互吸引資訊R(i,k)和歸屬資訊A(i,k),前者稱為點k對點i的吸引度,用來描述資料點k適用於作為資料點i的類社群代表程度,後者代表點i對點k的歸屬度,用來描述資料點i選擇資料點k作為其類代表的適合程度,當二者之和越大,點k作為最終聚類中心節點的可能性就越大。該演算法在實際的網路中應用顯示精度比K-means演算法結果精度要好,時間複雜度為O(n2)。
  2010年,AHn[6]等人基於邊的思想劃分連結的層次聚類社區劃分的方法。該演算法的思想是:給定由節點k連線的一對邊eik和ejk,用jaccard指數來計算節點i和j之間的相似度S(eik,ejk),S(eik,ejk)=|n+(i) n+(j)|/|n+(i) n+(j)|,其中n+(i)為包含節點i及其鄰居節點的集合,n+(j)為包含節點j及其鄰居節點的集合。而後通過利用單鏈層次聚類方法,逐層的向上產生一棵連線社群的層次樹。最後定義一個用於劃分該層次樹的密度函式D,在相應位置斷開來獲得最優連結劃分。通過該演算法在實際網路劃分中的應用,該演算法的時間複雜度為O(nk2),其中kmax是網路中最大的節點的度數。
  2011年,姜雅文等人針對GN演算法的不足,提出一種基於節點相似度的節點分裂演算法SCN[5],該演算法通過計算頂點間的相似度而非GN演算法中的邊介數,針降低了演算法時間複雜度。相比傳統演算法的節點相似性計算和GN演算法,在速度和精度上都有較為明顯的改善。該演算法的時間複雜度介於O(n2)和O(n3)之間。
  2011年,劉大有[5]等人提出基於整合網路重疊社群挖掘演算法(UEOC),該演算法將原始網路同對應的退火網路轉換成一個整合網路,針對整合網路給出的Maekov遊走方法,逐漸找出網路社群,然後通過引入區域性社群函式“導電率”,又被成為相似性函式;通過該函式作為社區劃分的標準,將已經找到的社群全部被抽取出來,通過在實際網路中的應用發現該演算法不但適合於普通網路,而且適合於重疊網路,且演算法只需要一個無需先驗知識就能很容易被確定的引數。該演算法的時間複雜度為O(Kn2),其中n 為網路中節點的個數K為重疊社群個數。
  二、結束語
  本文主要是從兩個方面對現有的工作進行了綜述:(1)根據所採用的原理從模組度與相似性兩個角度進行分類,並從中選擇了典型的演算法進行介紹;(2)從演算法辨識的精度和時間複雜度兩個方面進行定量分析、比較了一些典型方法的效能。
  社區劃分的方法基本上都是在以上兩種思想的基礎上進行的,雖然社區劃分演算法層出不窮,取得了很多讓人興奮的結果,但是社區劃分中依舊還有很多的問題沒有得到解決:
  第一,關於社群的定義,現在大家公認的是Newman的模組度定義,但是基於相似性、基於反社群的思想在實際應用中也取得了比較好的結果,加上對於現實網路的高度複雜性,網路中節點和邊的屬性等因素很少被考慮到社區劃分中,因此,現在很多各具特色的觀點,都尚難以達成共識,人們難以判斷一個方法的好壞,也無法控制大量新方法的產生。
  第二,關於重疊網路、層次網路、二分網路的劃分,目前對於既能發現重疊網路,又能發現層次網路的演算法並不多見,並且大多數的都是在單部圖上面對網路進行劃分;大量的演算法在社區劃分中既沒有考慮到網路本身所具有的各種屬性,也沒有考慮到網路所具有的結構特徵,因此,對於重疊網路、層次網路、二分網路的劃分的研究將會繼續是一個熱點。
  參考文獻:
  [1]Clauset A,Newman M E J,Moore C.Finding community structure in very large network,Phys.Rev.E,2004(70):066111.
  [2]汪小帆,李翔,陳關榮.複雜網路理論及其應用[M].北京:清華大學出版社,2006(09).
  [3]劉大有,金弟,何東曉.複雜網路社群挖掘綜述[J].計算機研究與發展,2012(09).
  [4]Santo Fortunato.Community detection in graphs,
[email protected]
,2012(11).
  [5]陽廣元,曹霞.國內社群發現研究進展[J].情報資料工作,2014(02).
  [6]Cheng SQ,Shen HW,Zhang GQ,Cheng XQ.Survey of signed network research.Ruan Jian Xue Bao/Journal of Software,2014(01):1?15(in Chinese).
  [7]金弟,楊博.複雜網路簇結構探測――基於隨機遊走的蟻群演算法[J].軟體學報,2012(03):451-164.
  [作者簡介]顧躍舉,男,遼寧遼陽人,武警遼寧省總隊網管中心助理工程師,研究方向:計算機系統應用於維護。