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