基于骨干網(wǎng)絡擴展的社團檢測方法
【技術領域】
[0001] 本發(fā)明涉及數(shù)據(jù)挖掘和復雜網(wǎng)絡分析領域,特別是涉及大規(guī)模社會網(wǎng)絡下的社團 快速劃分,具體是一種基于骨干網(wǎng)絡擴展的高效社團檢測方法。
【背景技術】
[0002] 現(xiàn)實世界中存在著大量的復雜系統(tǒng),如生物分子系統(tǒng),交通運輸系統(tǒng),郵件系統(tǒng)等 等。為了研究這些復雜系統(tǒng)中隱含的規(guī)律并利用這些規(guī)律服務于現(xiàn)實世界中人類的各項需 求,通常把這些復雜網(wǎng)絡建模為網(wǎng)絡。系統(tǒng)中的實體看作網(wǎng)絡中的節(jié)點,實體之間的聯(lián)系看 作網(wǎng)絡中的連接或邊。例如,交通運輸網(wǎng)絡中節(jié)點對應于各個路口,邊代表路口之間的道 路;蛋白質(zhì)相互作用網(wǎng)絡中的節(jié)點代表蛋白質(zhì),邊對應于蛋白質(zhì)之間的相互作用關系;音 樂人合作網(wǎng)絡中節(jié)點對應于不同的音樂人,邊代表音樂人之間的合作關系。
[0003] 于復雜系統(tǒng)的多領域性,復雜網(wǎng)絡的研究吸引了來自計算機、物理、生物、數(shù)學和 復雜性科學等眾多領域的研究者,目前已經(jīng)復雜網(wǎng)絡領域中的一些問題成為了多學科交叉 研究的熱點問題之一。通過對各種類型網(wǎng)絡(如郵件網(wǎng)絡、蛋白質(zhì)網(wǎng)絡、合作者網(wǎng)絡等)的 研究分析,發(fā)現(xiàn)復雜網(wǎng)絡中普遍存在著小世界、無標度等基本統(tǒng)計特性。
[0004] 學者對網(wǎng)絡性質(zhì)物理意義和數(shù)學特性的深入研究,復雜網(wǎng)絡的社團結構的特性被 挖掘出來。社團也可以看作組或者一個社區(qū)。在網(wǎng)絡中,位于用一個社團的節(jié)點之間的聯(lián) 系比較緊密,而位于不同社團的節(jié)點之間的聯(lián)系比較稀松。
[0005] 由于社團職能或性質(zhì)的不同,網(wǎng)絡中往往包括多個社團。例如,在Enron公司郵件 網(wǎng)絡中,同一個社團的個體通常是同一個部門或具有相似背景;在蛋白質(zhì)網(wǎng)絡中,同一個蛋 白質(zhì)復合體的蛋白質(zhì)相互作用共同完成某個復雜的生物過程;在音樂家合作網(wǎng)絡中,同一 個社團中的音樂家通常有相似的背景或其音樂有相似的特點。
[0006] 研究網(wǎng)絡社團結構有助于理解網(wǎng)絡結構、分析網(wǎng)絡特性、發(fā)現(xiàn)網(wǎng)絡中隱藏的規(guī)律, 具有重要的理論研究意義及實際應用價值。如,對WWW網(wǎng)絡中的新聞及其評論進行社團劃 分,能夠脫落關鍵詞的制約,發(fā)現(xiàn)主題相似的頁面,對信息檢索、網(wǎng)絡熱點話題的發(fā)現(xiàn)及輿 情發(fā)現(xiàn)及控制起到重要作用。
[0007] 隨著研究人員對復雜網(wǎng)絡社團檢測問題的關注,研究人員也提出了很多網(wǎng)絡社團 劃分的方法,主要包括以下五種:(1)基于模塊度優(yōu)化的社團檢測方法;(2)基于層次的社 團檢測方法;(3)基于譜的社團檢測方法;(4)基于網(wǎng)絡動力學的社團檢測方法;(5)其他 方法。
[0008] 基于模塊度優(yōu)化的社團檢測方法的目的是不斷調(diào)節(jié)節(jié)點的歸屬性,使得模塊度函 數(shù)值Q最大。模塊度函數(shù)是Newman提出來用來評價社團劃分質(zhì)量的指標函數(shù)。模塊度的 公式為下式,其中kdPk,是節(jié)點的度,Ci是節(jié)點i所屬的社團,m是網(wǎng)絡的總邊數(shù),當C1 = S(C^Cj) = 1,否則為 0。
[0010] 模塊度函數(shù)Q為一個網(wǎng)絡劃分的社團結構是否明顯提供了一種度量方式。一般來 說,Q值越大,對應的社團結構越明顯,目前公認的是如果一個網(wǎng)絡的劃分的Q值大于0. 3, 則認為該網(wǎng)絡存在明顯的社團結構。因此,基于模塊度優(yōu)化的社團劃分方法等價于找到網(wǎng) 絡的一個劃分,使得Q值最大化。優(yōu)化模塊度是一個NP-hard問題,研究人員提出了很多啟 發(fā)式的搜索算法來得到局部最優(yōu)解,如群體智能算法、極值最優(yōu)化算法、貪婪算法和模擬退 火算法等。
[0011] 由于網(wǎng)絡中不同節(jié)點在網(wǎng)絡中的所屬地位不同會導致網(wǎng)絡出現(xiàn)分層現(xiàn)象?;趯?次的社團檢測方法就是利用這種分層現(xiàn)象來對網(wǎng)絡進行社團劃分的。常見的層次社團劃分 方法有自上而下的分裂算法和自下而上的凝聚算法兩種。分裂算法通過移除邊來檢測社團 的分層結構。以GN算法為例,首先計算網(wǎng)絡中所有邊的介數(shù)值,然后刪除介數(shù)值最大的那 條邊,重新計算網(wǎng)絡中所剩邊的介數(shù)值,重復這個過程直到刪除了網(wǎng)絡中的所有邊,其他分 裂算法與GN算法相似,區(qū)別在于邊的刪除方法不同。凝聚算法將網(wǎng)絡中的節(jié)點看成單獨的 社團,計算社團間的相似性,然后合并相似性最大的兩個社團到一個新社團,重新更新社團 間的相似性。重復以上步驟直到所有節(jié)點都凝聚為一個社團。常見的凝聚算法有Bagrow 提出的局部社團劃分算法,Clauset提出的局部模塊度算法。
[0012] 基于譜的社團檢測方法建立在圖論的譜圖理論基礎上,其本質(zhì)是將聚類問題轉(zhuǎn)化 為圖的劃分問題,是一種點對聚類算法,對數(shù)據(jù)聚類具有很好的應用前景。譜聚類一般包括 三個主要步驟:(1)構建表示樣本集的矩陣Z; (2)通過計算Z的前k個特征值與特征向量, 構建特征向量空間;(3)利用k-均值或其他經(jīng)典聚類算法對特征向量空間中的特征向量進 行聚類。按照譜聚類算法的劃分準則不同,講算法分為迭代譜和多路譜兩類。常見的迭代 譜聚類算法包括PF算法、SM算法、SLH算法;常見的多路譜聚類算法有NJW算法、MS算法。
[0013] 基于網(wǎng)絡動力學的社團檢測方法是通過分析網(wǎng)絡上的動力學過程變化檢測網(wǎng)絡 社團結構的。如被廣泛用于社團結構檢測的隨機游走方法就是一種常見的網(wǎng)絡動力學過 程。VonDongen基于隨機游走方法提出了馬爾科夫聚類算法(MCL)。Rosvall和Bergstrom 根據(jù)信息論中的編碼原理與隨機游走過程分析社團結構,并通過對其算法擴展,使其可以 檢測網(wǎng)絡中的層次結構。FanChung等人提出了Pagerank-Nibble算法,該算法檢測包含某 個節(jié)點的稠密模塊。
[0014] 其他網(wǎng)絡社團結構劃分的方法還包括派系過濾算法(CPM)、標簽傳遞算法、基于邊 社團的劃分方法等等。
[0015] 雖然,以上算法都能夠解決網(wǎng)絡社團劃分的一些問題,然而大部分算法都存在著 一下問題。
[0016] 1、對于一個大規(guī)模的網(wǎng)絡,很多算法需要根據(jù)不同的情景引入各種節(jié)點屬性度量 的方法,如節(jié)點間路徑的數(shù)目和節(jié)點相似性計算等,這些度量需要多次迭代會導致算法效 率比較低,復雜度較大。
[0017] 2、由于不同算法使用的劃分標準不同,導致社團劃分的結果也不盡相同。很多算 法都只追求達到較高的模塊度或其他標準,而不注重網(wǎng)絡的真實社團結構。
[0018] 3、大多數(shù)真實世界的網(wǎng)絡,人們無法知道該網(wǎng)絡的真實社團數(shù)目,而很多算法需 要在社團劃分之前指定社團的個數(shù)。
【發(fā)明內(nèi)容】
[0019] 為了克服上述技術的不足,本發(fā)明提供了一種基于骨干網(wǎng)絡擴展的社團檢測方 法。通過使用WP算法計算出網(wǎng)絡中各節(jié)點的影響力,得到骨干網(wǎng)絡的網(wǎng)絡拓撲;運行層次 聚類算法得到骨干網(wǎng)絡的社團結構,再采用擴展算法得到全局網(wǎng)絡的社團結構。由于只在 骨干網(wǎng)絡運行層次聚類算法,本發(fā)明的計算復雜度較小,可以快速高效地發(fā)現(xiàn)網(wǎng)絡的真實 社團結構。
[0020] 為了實現(xiàn)上述目的,本發(fā)明采用以下技術方案:一種基于骨干網(wǎng)絡擴展的社團檢 測方法,主要步驟如下:
[0021] 1.以點對的形式輸入網(wǎng)絡數(shù)據(jù),利用圖的數(shù)據(jù)結構保存網(wǎng)絡數(shù)據(jù),并形成網(wǎng)絡圖 G(V,E) 〇
[0022] 2.使用基于節(jié)點權重的改進型PageRank(WP)算法計算網(wǎng)絡G(V,E)中所有節(jié)點 的影響力(WP值);根據(jù)節(jié)點的WP值對網(wǎng)絡節(jié)點進行排序;按照節(jié)點排序結果選取骨干節(jié) 點。
[0023] 基于節(jié)點權重的PageRank算法(WP)的計算公式為:
[0025] 其中,'是節(jié)點V1的度,是整個網(wǎng)絡中所有節(jié)點的度值的總和,WP(V])是 節(jié)點 '的WP值。
[0026]3.創(chuàng)建空的骨干網(wǎng)絡,將所有的骨干節(jié)點加入到骨干網(wǎng)絡;遍歷網(wǎng)絡G(V,E),選 取兩個端點都為骨干節(jié)點的邊加入骨干網(wǎng)絡。
[0027] 4.利用層次聚類方法得到骨干網(wǎng)絡的社團結構。
[0028] (1)新建一個骨干社團集合KS,KS= ? ;
[0029] (2)新建一個骨干社團KC。從一個不在KS中的骨干節(jié)點u出發(fā),遍歷其在骨干網(wǎng) 絡中的鄰居節(jié)點。當鄰居節(jié)點V相對于社團KC的適應度函數(shù)f(v) >0時,將V加入到骨 干社團KC,直到遍歷完u的所有鄰居節(jié)點。將社團KC加入到KS中,KS=KS+{KC};
[0030] (3)重復步驟(2)直到所有的骨干節(jié)點都包含在KS中。
[0031] 節(jié)點對社團的適應度函數(shù)如下所示:
[0032] f(v) =f(C+ {v})-f(C- {v})
[0034] 其中v為一個新的節(jié)點,C為一個社團,為所有在社團C中的節(jié)點的WP值的 總和,W7T"為所有不在社團C中的鄰居節(jié)點的WP值的總和。
[0035] 5.利用擴展方法,得到整體網(wǎng)絡的社團結構。
[0036] (1)初始化整體網(wǎng)絡的社團結構CS為骨干網(wǎng)絡的社團結構KS。
[0037] (2)對于每個非骨干節(jié)點V,遍歷其所有鄰居節(jié)點,如果鄰居節(jié)點u包含在社團集 合CS,那么計算節(jié)點V和節(jié)點u所在的社團之間的密切度。比較節(jié)點V和其所有鄰居社團 之間的密切度,將節(jié)點V加入密切度最大的社團。
[0038] 節(jié)點和社團的密切度計算公式如下所示:
[0040] 其中,等號右邊分子部分表示在社團C中與節(jié)點V有直接邊聯(lián)系的所有節(jié)點的WP 值的總和與節(jié)點V的WP值之和,分母為社團C的所有節(jié)點的WP值的總和與節(jié)點V的WP值 之和。
[0041] 與現(xiàn)有技術相比,本發(fā)明的有益效果是:
[0042] 1.使用基于節(jié)點權重