本發(fā)明屬于計(jì)算機(jī)應(yīng)用技術(shù)領(lǐng)域,涉及數(shù)據(jù)挖掘、在線社會(huì)網(wǎng)絡(luò)以及機(jī)器學(xué)習(xí),特別涉及一種在線社會(huì)網(wǎng)絡(luò)多尺度社區(qū)發(fā)現(xiàn)方法。
背景技術(shù):
在線社交網(wǎng)絡(luò)中蘊(yùn)含著大量潛在的社區(qū)結(jié)構(gòu),這些社區(qū)內(nèi)的節(jié)點(diǎn)具有相似的特性,在網(wǎng)絡(luò)中扮演相似的角色,以其為單位的粗粒度網(wǎng)絡(luò)描述,可簡化對(duì)整個(gè)網(wǎng)絡(luò)的功能、交互及其演化的研究。因此,識(shí)別社區(qū)結(jié)構(gòu)有助于我們更深入地了解網(wǎng)絡(luò)的本質(zhì),認(rèn)識(shí)網(wǎng)絡(luò)結(jié)構(gòu)與其功能之間的關(guān)系。社區(qū)檢測通常是指將網(wǎng)絡(luò)結(jié)點(diǎn)和邊劃分至不同的集合。社區(qū)發(fā)現(xiàn)的關(guān)鍵是社區(qū)定義,不同社區(qū)結(jié)構(gòu)的定義導(dǎo)致不同的社區(qū)發(fā)現(xiàn)方法。傳統(tǒng)意義上,人們將社區(qū)定義為團(tuán)內(nèi)節(jié)點(diǎn)連接稠密、團(tuán)間節(jié)點(diǎn)連接稀疏的結(jié)構(gòu)。然而在實(shí)際網(wǎng)絡(luò)中還存在這樣的節(jié)點(diǎn)集,它們具有相似的鏈接模式,但它們之間是否存在稠密鏈接不確定,此類有相似鏈接模式的結(jié)構(gòu)稱為廣義社區(qū)(兼容傳統(tǒng)社區(qū))。
傳統(tǒng)的社區(qū)發(fā)現(xiàn)方法,如譜平分法、分層聚類、Girvan–Newman(GN)算法、派系過濾等,采用啟發(fā)式的度量衡量傳統(tǒng)社區(qū)結(jié)構(gòu)的優(yōu)劣,缺乏嚴(yán)格的理論基礎(chǔ);同時(shí),此類方法在處理具有重疊的社區(qū)問題上,也缺乏活力。近年來,出現(xiàn)了一些基于統(tǒng)計(jì)推理的社區(qū)發(fā)現(xiàn)方法。該類方法可識(shí)別網(wǎng)絡(luò)中結(jié)構(gòu)對(duì)等和規(guī)律對(duì)等的結(jié)構(gòu),利用生成模型擬合觀測到的網(wǎng)絡(luò)來獲得節(jié)點(diǎn)的劃分及網(wǎng)絡(luò)的結(jié)構(gòu),具有完備的概率理論基礎(chǔ)和解釋,能更好地滿足社區(qū)發(fā)現(xiàn)算法的標(biāo)準(zhǔn)。與此同時(shí),基于統(tǒng)計(jì)推理的社區(qū)發(fā)現(xiàn)方法,能準(zhǔn)確地處理具有重疊(overlap)的社區(qū)發(fā)現(xiàn)問題。
Hastings等人采用的物理種植分區(qū)模型是一種特殊的統(tǒng)計(jì)塊模型(SBM),將社區(qū)劃分問題轉(zhuǎn)化為統(tǒng)計(jì)推理問題;隨后,Hoffman等人采用貝葉斯方法處理該模型。Newman和Leieht用混合概率模型發(fā)現(xiàn)網(wǎng)絡(luò)的結(jié)構(gòu),不僅能識(shí)別傳統(tǒng)意義的協(xié)調(diào)匹配社區(qū),還能發(fā)現(xiàn)有相似鏈接模式的非協(xié)調(diào)匹配社區(qū)?;贐lei的著名LDA混合隸屬度模型,Airoldi和Blei將混合隸屬度模型和隨機(jī)塊模型結(jié)合,建立了混合隸屬度隨機(jī)塊模型。Karrer和newman等人在隨機(jī)塊模型中融入節(jié)點(diǎn)度信息,得到了更好的社區(qū)結(jié)構(gòu),也證明了其比相似的模塊社區(qū)發(fā)現(xiàn)算法有更可靠的解釋、更優(yōu)的結(jié)果。此外,Ball等基于鏈接社區(qū)的思想設(shè)計(jì)了一個(gè)融人邊分布的隨機(jī)塊模型。雖然基于統(tǒng)計(jì)推理模型的方法能夠準(zhǔn)確地在有向或無向網(wǎng)絡(luò)中發(fā)現(xiàn)重疊的傳統(tǒng)社區(qū),而且具有堅(jiān)實(shí)的理論基礎(chǔ),但是,由于推理過程中不可避免的迭代過程,此類方法往往具有很高的復(fù)雜度。
技術(shù)實(shí)現(xiàn)要素:
為了克服上述現(xiàn)有技術(shù)的缺點(diǎn),本發(fā)明的目的在于提供一種在線社會(huì)網(wǎng)絡(luò)多尺度社區(qū)發(fā)現(xiàn)方法,針對(duì)大尺度的在線社會(huì)網(wǎng)絡(luò)中社區(qū)挖掘的高計(jì)算復(fù)雜度以及社區(qū)定義涉及的多種要素,融合用戶興趣和內(nèi)聚度,同時(shí)通過多層次、多尺度的方法減小了原始網(wǎng)絡(luò)的大小。
為了實(shí)現(xiàn)上述目的,本發(fā)明采用的技術(shù)方案是:
1)基于連接密度與連接模式的大尺度網(wǎng)絡(luò)的粗化。針對(duì)在線社會(huì)網(wǎng)絡(luò)中同一社區(qū)的結(jié)點(diǎn)通常具有相似的興趣和較頻繁的交互行為,定義了結(jié)合連接密度和連接模式的相似度;定義了k-階的結(jié)點(diǎn)合并策略,在算法效率和準(zhǔn)確度方面進(jìn)行了權(quán)衡;提出了貪婪的k-階結(jié)點(diǎn)合并算法,將輸入的大尺度網(wǎng)絡(luò)通過逐層粗化的方式得到粗化網(wǎng)絡(luò)其中L表示粗化的最大層數(shù)。
2)粗化網(wǎng)絡(luò)上的社區(qū)發(fā)現(xiàn)初始化。基于NMM算法對(duì)最上層的粗化網(wǎng)絡(luò)進(jìn)行社區(qū)發(fā)現(xiàn)初始化,得到粗略的社區(qū)發(fā)現(xiàn)結(jié)果QL。方法該技術(shù)環(huán)節(jié)帶來的好處是:極大的減少了網(wǎng)絡(luò)的大小,大大加快了NMM算法求解過程,提高了效率;明顯降低了NMM算法中的參數(shù)空間大小,使得該算法在優(yōu)化過程中更有可能收斂到全局最優(yōu)解。
3)考慮光滑性假設(shè)的社區(qū)發(fā)現(xiàn)。本技術(shù)環(huán)節(jié)將粗化網(wǎng)絡(luò)上得到的社區(qū)發(fā)現(xiàn)初始結(jié)果QL通過逐層計(jì)算來得到大尺度輸入網(wǎng)絡(luò)上的社區(qū)檢測結(jié)果Q0。主要包括兩個(gè)步驟:第一,將上層網(wǎng)絡(luò)中的社區(qū)發(fā)現(xiàn)結(jié)果Ql+1映射至下層網(wǎng)絡(luò)第二,基于光滑性假設(shè),構(gòu)建優(yōu)化函數(shù),通過圖上的學(xué)習(xí)方法推理出上的社區(qū)檢測結(jié)果Ql。通過逐層推理,最終得到輸入的大尺度網(wǎng)絡(luò)上的社區(qū)檢測結(jié)果Q0。
與現(xiàn)有技術(shù)相比,本發(fā)明的有益效果是:通過粗化過程極大地降低了網(wǎng)絡(luò)的大小,使得用于社區(qū)檢測概率模型具有很小的參數(shù)空間,大大增大了尋找全局最優(yōu)解的可能性并降低了計(jì)算復(fù)雜度;其次,結(jié)合了用戶興趣和內(nèi)聚度能夠全面地對(duì)社區(qū)進(jìn)行定義。
附圖說明
圖1是本發(fā)明實(shí)施例中一個(gè)3層粗化的社區(qū)發(fā)現(xiàn)過程示意圖。
具體實(shí)施方式
下面結(jié)合附圖和實(shí)施例詳細(xì)說明本發(fā)明的實(shí)施方式。
步驟1:
定義
表示連接模式,反映結(jié)點(diǎn)vi與vj之間的連接規(guī)律。其中wij表示節(jié)點(diǎn)vi到vj的邊的權(quán)值,表示節(jié)點(diǎn)vi的出度。則pi=(βi,j)n×1反映了結(jié)點(diǎn)vi與網(wǎng)絡(luò)內(nèi)所有結(jié)點(diǎn)的連接規(guī)律?;谶B接模式的vi,vj之間的相似度定義如下:
PairSimc(vi,vj)=sig(cos(∠(pi,pj))) (2)
sig(·)表示sigmoid函數(shù),將相似度映射至(0,1)范圍內(nèi)。進(jìn)一步地,基于連接模式的結(jié)點(diǎn)v和結(jié)點(diǎn)集合U之間的相似度定義如下:
基于連接密度的相似性度量:
其中Simd(v,U)表示了結(jié)點(diǎn)v和結(jié)點(diǎn)集合U之間的相似度,表示兩端結(jié)點(diǎn)均在內(nèi)部的邊的集合,表示只有一端結(jié)點(diǎn)在內(nèi)部的邊的集合。
其中⊕是一個(gè)操作符號(hào),可以由多種選擇:取最大值,取幾何平均值或者算術(shù)平均值。
在網(wǎng)絡(luò)粗化過程中,采用階合并策略:在一次粗化過程中,對(duì)于中的每一個(gè)超節(jié)點(diǎn)由中不超過個(gè)節(jié)點(diǎn)結(jié)合而成,相當(dāng)于一個(gè)上界;另一方面,本質(zhì)上也是粗化速率和整體算法精度的一個(gè)權(quán)衡。具體粗化做法:
給定網(wǎng)絡(luò)按如下步驟進(jìn)行。
step1:隨機(jī)選取沒有合并過的結(jié)點(diǎn)v,以v為初始節(jié)點(diǎn)構(gòu)建結(jié)點(diǎn)集合
step2:從v的鄰域結(jié)點(diǎn)中隨機(jī)選擇結(jié)點(diǎn)u,若Sim(u,U)>δ,δ為提前設(shè)定的閾值,則根據(jù)此做法不斷擴(kuò)充直到或者結(jié)點(diǎn)v的鄰域集合被選擇完畢,則終止的合并,將其用中的超結(jié)點(diǎn)代表;
step3:重新跳至step1,或者所有結(jié)點(diǎn)均被合并完畢,則跳至下一步;
step4:合并中的邊及權(quán)重,形成中的邊及權(quán)重,對(duì)于超結(jié)點(diǎn)和分別對(duì)應(yīng)于結(jié)點(diǎn)集合和則其中,分別表示中節(jié)點(diǎn)到的邊的權(quán)值以及中節(jié)點(diǎn)到的邊的權(quán)值。
步驟2:
在最上層的粗化網(wǎng)絡(luò)采用NMM算法進(jìn)行社區(qū)檢測,并作為步驟3的初始結(jié)果,具有如下優(yōu)點(diǎn):極大的減少了網(wǎng)絡(luò)的大小,大大加快了NMM算法求解過程,提高了效率;明顯降低了NMM算法中的參數(shù)空間大小,使得該算法在優(yōu)化過程中更有可能收斂到全局最優(yōu)解。在粗化網(wǎng)絡(luò)上實(shí)現(xiàn)NMM算法的過程如下:
給定其中和分別表示所有節(jié)點(diǎn)、邊的集合,表示節(jié)點(diǎn)之間的連接矩陣。定義為社區(qū)g中節(jié)點(diǎn)數(shù)量所占的比例(或隨機(jī)選取一個(gè)節(jié)點(diǎn),隸屬于社區(qū)g的概率);為社區(qū)g中任意節(jié)點(diǎn)有邊連接到節(jié)點(diǎn)j的概率,且滿足其中C為社團(tuán)數(shù)目,n為結(jié)點(diǎn)數(shù)目。上的社區(qū)檢測問題轉(zhuǎn)化為如下最大似然問題:
采用期望最大化算法進(jìn)行推理,按照如下推理公式進(jìn)行迭代計(jì)算,最終得到最終結(jié)果。
其中,是結(jié)點(diǎn)的出度。表示結(jié)點(diǎn)的社區(qū)標(biāo)簽向量,表示網(wǎng)絡(luò)上的社區(qū)檢測結(jié)果,c是第c個(gè)社區(qū),C是總社區(qū)數(shù)目,s是第s個(gè)社區(qū)。
步驟3:
當(dāng)?shù)玫酱只W(wǎng)絡(luò)上的社區(qū)發(fā)現(xiàn)初始化的結(jié)果之后,需要逐層估計(jì)網(wǎng)絡(luò)上的社區(qū)檢測結(jié)果。社區(qū)檢測包括兩步。首先,將網(wǎng)絡(luò)上的社區(qū)檢測結(jié)果映射至層。具體而言,如果中的一個(gè)超結(jié)點(diǎn)是由中的若干結(jié)點(diǎn)聚合而成,則的社區(qū)標(biāo)簽向量跟一致。其次,針對(duì)第一步得到的標(biāo)簽估計(jì)結(jié)果進(jìn)行優(yōu)化。本發(fā)明采用圖上的學(xué)習(xí)方法對(duì)其社區(qū)類別標(biāo)簽進(jìn)行估計(jì)。針對(duì)網(wǎng)絡(luò)基于步驟1中的相似度定義來構(gòu)造對(duì)應(yīng)的相似矩陣具體形式如下:
,k是節(jié)點(diǎn)標(biāo)號(hào),是節(jié)點(diǎn)的鄰居節(jié)點(diǎn)集,若的值大則意味著結(jié)點(diǎn)和在網(wǎng)絡(luò)中具有相近的連接模式和密集的連接密度,反之亦然。
一般地,在線社會(huì)網(wǎng)絡(luò)具有如下現(xiàn)象,此處稱之為光滑性假設(shè),即若兩個(gè)結(jié)點(diǎn)具有高的相似度值相似度的結(jié)點(diǎn)具有的社區(qū)類別標(biāo)簽和也趨向于相似。因此這里采用圖上的半監(jiān)督學(xué)習(xí)方法來估計(jì)社區(qū)標(biāo)簽向量。網(wǎng)絡(luò)上的標(biāo)簽估計(jì)問題可以通過最小化如下函數(shù)來獲得:
其中
上式第一項(xiàng)表示光滑項(xiàng),即標(biāo)簽向量與相鄰結(jié)點(diǎn)的標(biāo)簽向量之間的差別,第二項(xiàng)表示誤差項(xiàng)。是結(jié)點(diǎn)在上一時(shí)刻的社區(qū)標(biāo)簽估計(jì)值,為結(jié)點(diǎn)在網(wǎng)絡(luò)中形成的超結(jié)點(diǎn)對(duì)應(yīng)的類別標(biāo)簽向量,λ為控制參數(shù),用來平衡光滑項(xiàng)和誤差項(xiàng)之前的重要性。上式的最小化可以通過獨(dú)立地最小化每個(gè)結(jié)點(diǎn)對(duì)應(yīng)的代價(jià)函數(shù)來完成。最終的求解結(jié)果可以通過迭代計(jì)算下式而完成:
通??梢栽O(shè)置λ=1。一般迭代10次左右可以使得迭代計(jì)算收斂。
圖1是一個(gè)3層粗化的社區(qū)發(fā)現(xiàn)過程示意圖,其過程為:首先,逐層粗化網(wǎng)絡(luò);然后,對(duì)最終粗化網(wǎng)絡(luò)挖掘初始化社區(qū)標(biāo)簽;最后,逐層估計(jì)社區(qū)結(jié)果,得到輸入網(wǎng)絡(luò)的社區(qū)結(jié)果,圖中1和2表示邊上的權(quán)值,即各個(gè)的值。