本發(fā)明涉及網(wǎng)絡(luò)結(jié)構(gòu)分析領(lǐng)域,特別涉及一種社區(qū)發(fā)現(xiàn)方法。
背景技術(shù):
伴隨著互聯(lián)網(wǎng)和移動(dòng)通信技術(shù)的飛速發(fā)展,越來越多的人們正通過在線網(wǎng)絡(luò)進(jìn)行各種社會(huì)活動(dòng)。社會(huì)網(wǎng)絡(luò)的組構(gòu)、以及其上的信息傳遞正在突破時(shí)空和管理邊界,影響到各國網(wǎng)民和各個(gè)角落。社交網(wǎng)絡(luò)(或稱在線社會(huì)網(wǎng)絡(luò))已經(jīng)成為現(xiàn)實(shí)社會(huì)的重要組成部分之一。對在線社交網(wǎng)絡(luò)研究也隨之倍受關(guān)注,成為了現(xiàn)下科學(xué)研究領(lǐng)域的一個(gè)熱點(diǎn)問題?,F(xiàn)實(shí)社會(huì)中社會(huì)網(wǎng)絡(luò)實(shí)例(科技、經(jīng)濟(jì)、商業(yè)、生物)在人類的、自然的、社會(huì)的等領(lǐng)域表征了社會(huì)網(wǎng)絡(luò)的固有特性。許多人希望通過分析社會(huì)網(wǎng)絡(luò)的結(jié)構(gòu),發(fā)現(xiàn)隱藏在網(wǎng)絡(luò)海量數(shù)據(jù)中的知識(shí),知曉潛藏在一般現(xiàn)象下的規(guī)律,以及社會(huì)網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)特征與網(wǎng)絡(luò)節(jié)點(diǎn)行為趨勢之間的關(guān)系,進(jìn)而發(fā)現(xiàn)社會(huì)網(wǎng)絡(luò)的本質(zhì),利用這些信息幫助人們更有效的配置資源和信息處理,指導(dǎo)商業(yè)生產(chǎn)、人類生活、人口管理、自然規(guī)劃等方面的管理、判讀和決策。其中,網(wǎng)絡(luò)結(jié)構(gòu)中非常重要的一個(gè)特征就是社區(qū)結(jié)構(gòu),即社區(qū)內(nèi)節(jié)點(diǎn)之間連接緊密,社區(qū)間節(jié)點(diǎn)之間連接松散。
社區(qū)發(fā)現(xiàn)方法用來發(fā)現(xiàn)網(wǎng)絡(luò)中的社區(qū)結(jié)構(gòu)。傳統(tǒng)的社區(qū)發(fā)現(xiàn)方法,一般需要算全局網(wǎng)絡(luò)的相關(guān)屬性,這種方法的復(fù)雜度較高,不利于在大規(guī)模網(wǎng)絡(luò)中的應(yīng)用。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的在于克服現(xiàn)有技術(shù)中的社區(qū)發(fā)現(xiàn)方法復(fù)雜度較高、不利于在大規(guī)模網(wǎng)絡(luò)中應(yīng)用的缺陷,從而提供一種能夠有效降低算法復(fù)雜度,便于應(yīng)用于大規(guī)模網(wǎng)絡(luò)的方法。
為了實(shí)現(xiàn)上述目的,本發(fā)明提供了一種社區(qū)發(fā)現(xiàn)方法,包括:從待發(fā)現(xiàn)社區(qū)的網(wǎng)絡(luò)中選取若干個(gè)種子節(jié)點(diǎn),由所述種子節(jié)點(diǎn)出發(fā)進(jìn)行局部擴(kuò)張,得到網(wǎng)絡(luò)中所要發(fā)現(xiàn)的社區(qū)。
上述技術(shù)方案中,該方法具體包括以下步驟:
步驟1)、從互聯(lián)網(wǎng)或其他多媒體中抓取網(wǎng)絡(luò)數(shù)據(jù),若所抓取的網(wǎng)絡(luò)數(shù)據(jù)為不包 含自連接邊和多重連接邊的網(wǎng)絡(luò)數(shù)據(jù),則直接使用,然后執(zhí)行下一步,否則需要對所抓取的網(wǎng)絡(luò)數(shù)據(jù)進(jìn)行預(yù)處理,刪除自連接邊和多重連接邊后再執(zhí)行下一步;
步驟2)、使用PageRank算法計(jì)算上一步中得到的網(wǎng)絡(luò)中各個(gè)節(jié)點(diǎn)對應(yīng)的Pagerank值,并按此值對節(jié)點(diǎn)進(jìn)行降序排列;
步驟3)、按照降序順序選取某單一節(jié)點(diǎn),并以此節(jié)點(diǎn)為中心,以模塊度為優(yōu)化指標(biāo)進(jìn)行擴(kuò)張,將周圍節(jié)點(diǎn)歸到此節(jié)點(diǎn)所屬的社區(qū),以使模塊度值達(dá)到最大;依次選取節(jié)點(diǎn),直到所有節(jié)點(diǎn)都?xì)w屬到某一個(gè)社區(qū);
步驟4)、對步驟3)的結(jié)果進(jìn)行處理,將形成的小社區(qū)當(dāng)作一個(gè)節(jié)點(diǎn),這樣就形成了一個(gè)新的簡化網(wǎng)絡(luò),對這一新的簡化網(wǎng)絡(luò),遞歸調(diào)用步驟2)與步驟3),直到模塊度優(yōu)化指標(biāo)不再增加;
步驟5)、輸出社區(qū)發(fā)現(xiàn)的最終結(jié)果,輸出每個(gè)社區(qū)對應(yīng)的節(jié)點(diǎn)以及節(jié)點(diǎn)間的邊。
本發(fā)明的優(yōu)點(diǎn)在于:
本發(fā)明的方法只需要從種子節(jié)點(diǎn)進(jìn)行局部擴(kuò)張,極大地降低了算法復(fù)雜度,以便應(yīng)用于大規(guī)模的網(wǎng)絡(luò)中。
附圖說明
圖1是本發(fā)明的社區(qū)發(fā)現(xiàn)方法的流程圖;
圖2(a)-圖2(f)為一個(gè)實(shí)施例中,一網(wǎng)絡(luò)采用本發(fā)明的社區(qū)發(fā)現(xiàn)方法所實(shí)現(xiàn)的社區(qū)發(fā)現(xiàn)過程的示意圖。
具體實(shí)施方式
在對本發(fā)明的方法做詳細(xì)說明之前,首先對本發(fā)明中所涉及的模塊度的概念與定義進(jìn)行說明。
Newman和Girvan在2004年提出了模塊度(Modularity,也稱為Q函數(shù))來對社區(qū)結(jié)構(gòu)進(jìn)行評價(jià)。該度量對于給定網(wǎng)絡(luò)的任意社區(qū)劃分都有一個(gè)評價(jià)值,以此判斷社區(qū)發(fā)現(xiàn)算法的優(yōu)劣或者用以選擇較優(yōu)的社區(qū)劃分。模塊度定義為社區(qū)內(nèi)實(shí)際連接數(shù)目與對應(yīng)的隨機(jī)網(wǎng)絡(luò)同等連接情況下社區(qū)內(nèi)期望連接數(shù)目之差,用來定量地刻畫網(wǎng)絡(luò)中社區(qū)結(jié)構(gòu)的優(yōu)劣,其核心思想是:“若網(wǎng)絡(luò)G的一個(gè)子圖s具有顯著的社區(qū)特征,那么根據(jù)G的結(jié)構(gòu)特征(包括節(jié)點(diǎn)數(shù)與邊數(shù)),構(gòu)造其對應(yīng)的隨機(jī)網(wǎng)絡(luò)G',而對應(yīng)G'的子圖s'的內(nèi)部邊數(shù)必然要小于s的內(nèi)部邊數(shù)”。這里的隨機(jī)網(wǎng)絡(luò)通常是由Null Model生成,即根據(jù)網(wǎng)絡(luò)的結(jié)構(gòu)特征(如節(jié)點(diǎn)數(shù)、邊數(shù)等)而構(gòu)造出隨機(jī)網(wǎng)絡(luò)的模型。因此,Newman給出的模塊度的形式化定義如下:
其中,Aij是鄰接矩陣的元素,ki是節(jié)點(diǎn)i的度,ci表示結(jié)點(diǎn)i所在的社區(qū),δ(ci,cj)為示性函數(shù),即ci=cj時(shí),δ(ci,cj)=1,否則δ(ci,cj)=0。
模塊度的物理意義是,網(wǎng)絡(luò)中連接兩個(gè)同種類型結(jié)點(diǎn)的邊(即社區(qū)內(nèi)部的邊)的比例減去在同樣的社區(qū)結(jié)構(gòu)下任意連接節(jié)點(diǎn)的邊的比例的期望值。如果社區(qū)內(nèi)部邊的比例不大于任意連接時(shí)的期望值,則有Q=0。Q的上限為1,而Q越接近于這個(gè)值,就說明社區(qū)結(jié)構(gòu)越明顯。實(shí)際網(wǎng)絡(luò)中,該值通常位于0.3-0.7之間。一般結(jié)合模塊度來確定較好的社區(qū)結(jié)構(gòu)劃分,同時(shí)也可以用以衡量一個(gè)算法對真實(shí)網(wǎng)絡(luò)進(jìn)行社區(qū)發(fā)現(xiàn)的準(zhǔn)確性。
下面結(jié)合附圖對本發(fā)明做進(jìn)一步的描述。
參考圖1,本發(fā)明的方法包括以下步驟:
步驟1)、從互聯(lián)網(wǎng)或其他多媒體中抓取大量的網(wǎng)絡(luò)數(shù)據(jù),若所抓取的網(wǎng)絡(luò)數(shù)據(jù)為不包含自連接邊和多重連接邊的網(wǎng)絡(luò)數(shù)據(jù),則可直接使用,然后執(zhí)行下一步,否則需要對所抓取的網(wǎng)絡(luò)數(shù)據(jù)進(jìn)行預(yù)處理,刪除自連接邊和多重連接邊后再執(zhí)行下一步;
步驟2)、使用PageRank算法計(jì)算上一步中得到的網(wǎng)絡(luò)中各個(gè)節(jié)點(diǎn)對應(yīng)的Pagerank值,并按此值對節(jié)點(diǎn)進(jìn)行降序排列;
步驟3)、按照降序順序選取某單一節(jié)點(diǎn),并以此節(jié)點(diǎn)為中心,以模塊度為優(yōu)化指標(biāo)進(jìn)行擴(kuò)張,將周圍節(jié)點(diǎn)歸到此節(jié)點(diǎn)所屬的社區(qū),以使模塊度值達(dá)到最大;依次選取節(jié)點(diǎn),直到所有節(jié)點(diǎn)都?xì)w屬到某一個(gè)社區(qū);
步驟4)、對步驟3)的結(jié)果進(jìn)行處理,將形成的小社區(qū)當(dāng)作一個(gè)節(jié)點(diǎn),這樣就形成了一個(gè)新的簡化網(wǎng)絡(luò),對這一新網(wǎng)絡(luò),遞歸調(diào)用步驟2)與步驟3),直到模塊度優(yōu)化指標(biāo)不再增加。
步驟5)、輸出社區(qū)發(fā)現(xiàn)的最終結(jié)果,輸出每個(gè)社區(qū)對應(yīng)的節(jié)點(diǎn)以及節(jié)點(diǎn)間的邊。
為了便于理解,下面結(jié)合一個(gè)具體的例子,對本發(fā)明方法的主要步驟進(jìn)行說明。
圖2(a)為根據(jù)所抓取的網(wǎng)絡(luò)數(shù)據(jù)所形成的原始網(wǎng)絡(luò)的示意圖,根據(jù)本發(fā)明的方法,對原始網(wǎng)絡(luò)中的各個(gè)節(jié)點(diǎn)計(jì)算Pagerank值,圖2(b)為計(jì)算Pagerank值后的原始網(wǎng)絡(luò)的示意圖,其中節(jié)點(diǎn)較大的節(jié)點(diǎn)代表了該節(jié)點(diǎn)的Pagerank值較高。然后選 取Pagerank值最大的節(jié)點(diǎn)作為目標(biāo)節(jié)點(diǎn),如在圖2(c)中,選取圖中三角形節(jié)點(diǎn)為目標(biāo)節(jié)點(diǎn);然后將周圍的某些節(jié)點(diǎn)與目標(biāo)節(jié)點(diǎn)合并,使得模塊度最大,圖2(d)為圖2(c)所示目標(biāo)節(jié)點(diǎn)與周圍節(jié)點(diǎn)合并,形成子社區(qū)的示意圖;接著,將所發(fā)現(xiàn)的子社區(qū)合并為一個(gè)節(jié)點(diǎn),圖2(e)為圖2(d)所發(fā)現(xiàn)的子社區(qū)合并為一個(gè)節(jié)點(diǎn)后的網(wǎng)絡(luò)示意圖;最后,在網(wǎng)絡(luò)中不斷選取目標(biāo)節(jié)點(diǎn),實(shí)現(xiàn)子社區(qū)的發(fā)現(xiàn)、合并。圖2(f)為最終所得到的社區(qū)發(fā)現(xiàn)結(jié)果的示意圖,其中不同形狀的節(jié)點(diǎn)代表了所發(fā)現(xiàn)的不同的社區(qū)。
通過本發(fā)明的方法得到社區(qū)發(fā)現(xiàn)的最終結(jié)果后,可利用這一結(jié)果對各個(gè)子網(wǎng)絡(luò)進(jìn)行進(jìn)一步的分析,例如,主題發(fā)現(xiàn),觀點(diǎn)挖掘,情感分析等。
本申請人使用斯坦福大學(xué)的公開com-LiveJournal網(wǎng)絡(luò)數(shù)據(jù)(3,997,962個(gè)節(jié)點(diǎn),34,681,189條邊)作為對比數(shù)據(jù),使用社區(qū)發(fā)現(xiàn)領(lǐng)域較為流行的Lovian算法作為對比算法,本發(fā)明的方法在時(shí)間上減少了25%。
最后所應(yīng)說明的是,以上實(shí)施例僅用以說明本發(fā)明的技術(shù)方案而非限制。盡管參照實(shí)施例對本發(fā)明進(jìn)行了詳細(xì)說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解,對本發(fā)明的技術(shù)方案進(jìn)行修改或者等同替換,都不脫離本發(fā)明技術(shù)方案的精神和范圍,其均應(yīng)涵蓋在本發(fā)明的權(quán)利要求范圍當(dāng)中。