專利名稱:網(wǎng)絡(luò)數(shù)據(jù)的計(jì)算機(jī)處理方法及系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明總體上涉及信息處理技術(shù)領(lǐng)域,特別地,涉及ー種網(wǎng)絡(luò)數(shù)據(jù)的計(jì)算機(jī)處理方法及系統(tǒng)。
背景技術(shù):
目前,由于信息技術(shù)特別是互聯(lián)網(wǎng)技術(shù)的發(fā)展,信息在各個信息節(jié)點(diǎn)之間傳輸,因此在網(wǎng)絡(luò)上存在大量這種反映信息節(jié)點(diǎn)之間關(guān)聯(lián)的網(wǎng)絡(luò)數(shù)據(jù)。針對這些大量和大規(guī)模的網(wǎng)絡(luò)數(shù)據(jù),目前存在著大量技術(shù)分析需求,即如何找到這些信息節(jié)點(diǎn)之間的關(guān)聯(lián)關(guān)系,比如檢測出網(wǎng)絡(luò)中異常行為的節(jié)點(diǎn),或進(jìn)行垃圾郵件過濾等。然而在處理包含大量節(jié)點(diǎn)的大規(guī)模網(wǎng)絡(luò)數(shù)據(jù)時,例如涉及處理的網(wǎng)絡(luò)數(shù)據(jù)的節(jié)點(diǎn)達(dá)到IO5或者更大時,現(xiàn)有技術(shù)顯得明顯不足,甚至無能為力。圖I示出了現(xiàn)在已成為技術(shù)熱點(diǎn)的社群發(fā)現(xiàn)(community detection)方法(具體實(shí)現(xiàn)可參見參考文獻(xiàn)IY. Zhang,J. Wang, Y. Wang, L. Zhou. Parallel Community Detection on Large Networks withPropinquity Dynamics. ACM SIGKDD; 09 (PP :997-1005))的性能評估,其處理的數(shù)據(jù)集是某電子公告牌(BBS)網(wǎng)站的3個月發(fā)文記錄,其中用戶之間的關(guān)系用回帖來建立。該方法實(shí)現(xiàn)和運(yùn)行在Hadoop MapReduce平臺,該平臺共有6個X86集群機(jī)器節(jié)點(diǎn)構(gòu)成,平均CPU雙核1.666,內(nèi)存46。從圖I中可以發(fā)現(xiàn),當(dāng)用戶數(shù)目増加到20萬的時候,處理時間急劇増加到27小時多,而如果數(shù)據(jù)規(guī)模再増大的話,處理時間則呈指數(shù)增長,采用上述方法顯然是無法處理的。因此需要ー種網(wǎng)絡(luò)數(shù)據(jù)的計(jì)算機(jī)處理方法和系統(tǒng)。
發(fā)明內(nèi)容
本發(fā)明一方面提供ー種網(wǎng)絡(luò)數(shù)據(jù)的計(jì)算機(jī)處理方法,包括接收網(wǎng)絡(luò)數(shù)據(jù);過濾網(wǎng)絡(luò)數(shù)據(jù)中度數(shù)高于預(yù)定閾值的節(jié)點(diǎn);存儲被過濾節(jié)點(diǎn)及其鄰接關(guān)系;對過濾后的網(wǎng)絡(luò)數(shù)據(jù)進(jìn)行聚類以獲得初步分組;以及基于所述被過濾節(jié)點(diǎn)及其鄰接關(guān)系和所述初步分組獲得最終分組。本發(fā)明另一方面提供ー種處理網(wǎng)絡(luò)數(shù)據(jù)的計(jì)算機(jī)系統(tǒng),包括接收裝置,被配置為接收網(wǎng)絡(luò)數(shù)據(jù);過濾裝置,被配置為過濾網(wǎng)絡(luò)數(shù)據(jù)中度數(shù)高于預(yù)定閾值的節(jié)點(diǎn);存儲裝置,被配置為存儲被過濾節(jié)點(diǎn)及其鄰接關(guān)系;聚類裝置,被配置為對過濾后的網(wǎng)絡(luò)數(shù)據(jù)進(jìn)行聚類以獲得初歩分組;以及最終分組裝置,被配置為基于所述被過濾節(jié)點(diǎn)及其鄰接關(guān)系和所述初步分組獲得最終分組。本發(fā)明提供的能夠加速網(wǎng)絡(luò)數(shù)據(jù)處理的計(jì)算機(jī)處理方法和系統(tǒng)可以以適用于大規(guī)模網(wǎng)絡(luò)數(shù)據(jù)的處理,對于大規(guī)模網(wǎng)絡(luò)數(shù)據(jù)的聚類處理時間將大大降低,本發(fā)明還能夠很好地被并行化,利于其普遍的實(shí)施。
為了對本發(fā)明實(shí)施例的特征和優(yōu)點(diǎn)進(jìn)行詳細(xì)說明,將參照以下附圖。如果可能的話,在附圖和描述中使用相同或者類似的參考標(biāo)號以指代相同或者類似的部分。其中圖I示出了現(xiàn)有社區(qū)發(fā)現(xiàn)方法的性能評估;圖2示出了本發(fā)明用于網(wǎng)絡(luò)數(shù)據(jù)的計(jì)算機(jī)處理方法的第一具體實(shí)施方式
;圖3示出了基于所述被過濾節(jié)點(diǎn)及其鄰接關(guān)系和所述初步分組獲得最終分組的優(yōu)選實(shí)施方式;圖4示出了本發(fā)明用于網(wǎng)絡(luò)數(shù)據(jù)的計(jì)算機(jī)處理方法的第二具體實(shí)施方式
;圖5示出了本發(fā)明的一個示例性的具體應(yīng)用實(shí)例;圖6示出了本發(fā)明在云計(jì)算平臺MapReduce上并行實(shí)現(xiàn)的方法;
圖7示出了采用本發(fā)明的方法以及傳統(tǒng)方法的效果比較;圖8示出了本發(fā)明用于處理網(wǎng)絡(luò)數(shù)據(jù)的計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)示意圖;圖9示出了可以實(shí)現(xiàn)根據(jù)本發(fā)明的實(shí)施例的計(jì)算設(shè)備的結(jié)構(gòu)方框圖
具體實(shí)施例方式現(xiàn)在將參考本發(fā)明的示例性實(shí)施例進(jìn)行詳細(xì)的描述,在附圖中圖解說明了所述實(shí)施例的示例,其中相同的參考數(shù)字始終指示相同的元件。應(yīng)當(dāng)理解,本發(fā)明并不限于所公開的示例實(shí)施例。還應(yīng)當(dāng)理解,并非所述方法和設(shè)備的每個特征對于實(shí)施任ー權(quán)利要求所要求保護(hù)的本發(fā)明都是必要的。此外,在整個公開中,當(dāng)顯示或描述處理或方法時,方法的步驟可以以任何順序或者同時執(zhí)行,除非從上下文中能清楚一個步驟依賴于先執(zhí)行的另ー步驟。此外,步驟之間可以有顯著的時間間隔。一般而言,本領(lǐng)域技術(shù)人員將網(wǎng)絡(luò)數(shù)據(jù)中的節(jié)點(diǎn)與節(jié)點(diǎn)之間的關(guān)聯(lián)程度稱為度數(shù),示例性地,如果節(jié)點(diǎn)Vl與其它5個節(jié)點(diǎn)有聯(lián)系,則可以認(rèn)為節(jié)點(diǎn)Vl在該網(wǎng)絡(luò)數(shù)據(jù)中的度數(shù)為5。如果將網(wǎng)絡(luò)數(shù)據(jù)中的各個節(jié)點(diǎn)看做點(diǎn),將存在聯(lián)系的節(jié)點(diǎn)之間用線連接,則就形成了圖。本發(fā)明對有向網(wǎng)絡(luò)數(shù)據(jù)和無向網(wǎng)絡(luò)數(shù)據(jù)都適用。本申請人在研究實(shí)踐中特別注意至IJ,在大規(guī)模的網(wǎng)絡(luò)數(shù)據(jù)中,節(jié)點(diǎn)與節(jié)點(diǎn)之間的聯(lián)系往往并不是均勻的,有部分節(jié)點(diǎn)與其它很多節(jié)點(diǎn)關(guān)聯(lián)比較緊密,而大部分的節(jié)點(diǎn)則只是與少數(shù)的節(jié)點(diǎn)有關(guān)聯(lián)。正是基于這種天然的不均勻性,本申請人另辟蹊徑地提出了本發(fā)明。圖2示出了本發(fā)明的用于網(wǎng)絡(luò)數(shù)據(jù)的計(jì)算機(jī)處理方法的第一具體實(shí)施方式
。在步驟201中,接收網(wǎng)絡(luò)數(shù)據(jù)。所述網(wǎng)絡(luò)數(shù)據(jù)可以從多種途徑獲得,例如,移動的通話詳單(CallDetail Record)中可以提取通話雙方作為節(jié)點(diǎn),通話與否作為邊,構(gòu)建網(wǎng)絡(luò)數(shù)據(jù)。另外網(wǎng)頁和網(wǎng)頁之間的連接關(guān)系,也可以構(gòu)成網(wǎng)絡(luò)數(shù)據(jù)。又例如,社交網(wǎng)站(如Facebook)中申明的朋友關(guān)系可以構(gòu)成網(wǎng)絡(luò)數(shù)據(jù)。網(wǎng)絡(luò)數(shù)據(jù)可以采用鄰接表或者鄰接矩陣表征。并且可以采用圖的方式向用戶呈現(xiàn)。在步驟203中,過濾網(wǎng)絡(luò)數(shù)據(jù)中度數(shù)高于預(yù)定閾值的節(jié)點(diǎn)。對于預(yù)定閾值的設(shè)立,可以由本領(lǐng)域技術(shù)人員根據(jù)具體的數(shù)據(jù)集,設(shè)置不同的預(yù)定閾值,該預(yù)定閾值可以為度數(shù)的絕對值。另外也可以考慮過濾一定比例的節(jié)點(diǎn),具體做法是,統(tǒng)計(jì)所述網(wǎng)絡(luò)數(shù)據(jù)中全部節(jié)點(diǎn)的度數(shù)分布,優(yōu)選可以根據(jù)全部節(jié)點(diǎn)的度數(shù)進(jìn)行升序排序或者降序排序。選擇全部節(jié)點(diǎn)中具有高度數(shù)的一定百分比范圍內(nèi)的(優(yōu)選前5.5%至1%)任一節(jié)點(diǎn)的度數(shù)作為預(yù)定閾值。
在步驟205中,存儲被過濾節(jié)點(diǎn)及其鄰接關(guān)系。在該步驟中,所述鄰接關(guān)系由與所述被過濾節(jié)點(diǎn)相鄰接的節(jié)點(diǎn)的集合來表征。比如,節(jié)點(diǎn)V16與V15、V18、V19、V17、V12相鄰接,V16節(jié)點(diǎn)被過濾,則可以將節(jié)點(diǎn)V16和其鄰接關(guān)系{V15,V18,V19,V17,V12}進(jìn)行存儲。存儲的方式可以是在內(nèi)存中進(jìn)行存儲,也可以在永久性存儲介質(zhì)中進(jìn)行存儲。在步驟207中,對過濾后的網(wǎng)絡(luò)數(shù)據(jù)進(jìn)行聚類以獲得初歩分組。在該步驟中,可以對以節(jié)點(diǎn)以及邊表示的網(wǎng)絡(luò)數(shù)據(jù)進(jìn)行聚類分組。本領(lǐng)域技術(shù)人員可以根據(jù)具體的數(shù)據(jù)而選擇任合適的聚類算法以獲得初歩分組。比如對于社群發(fā)現(xiàn),可以采用如參考文獻(xiàn)I或者參考又獻(xiàn)2F0bio Protti,Felipe M. G. Franca, Jayme Luiz Szwarcfiter,On ComputingAll Maximal Cliques Distributedly, Proceedings of the 4th InternationalSymposium on Solving Irregularly Structured Problems in Parallel,1997 所提出的方法。在步驟209中,基于所述被過濾節(jié)點(diǎn)及其鄰接關(guān)系和所述初步分組獲得最終分組。在該步驟中,通過被過濾節(jié)點(diǎn)的鄰接關(guān)系,確定與所述被過濾節(jié)點(diǎn)相關(guān)聯(lián)的初步分組,再進(jìn)ー步確定所述被過濾節(jié)點(diǎn)是否屬于某個或某幾個初步分組,并最后獲得最終分組?!D3示出了基于所述被過濾節(jié)點(diǎn)及其鄰接關(guān)系和所述初步分組獲得最終分組的優(yōu)選實(shí)施方式。在步驟301中,依據(jù)所存儲的鄰接關(guān)系,建立所述被過濾節(jié)點(diǎn)與所述初步分組之間的映射。其中,確定包括了其鄰接關(guān)系中的至少ー個節(jié)點(diǎn)的初步分組,將這些初步分組作為可能將所述被過濾節(jié)點(diǎn)歸入的潛在分組。并且將所述被過濾節(jié)點(diǎn)與包括了所述鄰接關(guān)系中的節(jié)點(diǎn)的初歩分組進(jìn)行關(guān)聯(lián)。在步驟303中,確定所述被過濾節(jié)點(diǎn)是否屬于所述初歩分組。優(yōu)選地,計(jì)算所述初步分組中節(jié)點(diǎn)的平均度數(shù),其中所述平均度數(shù)等于所述初步分組所有節(jié)點(diǎn)的度數(shù)之和除以所述初步分組所有節(jié)點(diǎn)的個數(shù)。并且計(jì)算所過濾述節(jié)點(diǎn)與所述初步分組內(nèi)節(jié)點(diǎn)的實(shí)際關(guān)聯(lián)度數(shù),其中所述實(shí)際關(guān)聯(lián)度數(shù)等于該被過濾節(jié)點(diǎn)與所述初步分組中的節(jié)點(diǎn)之間的邊的個數(shù)總和。進(jìn)ー步判斷所述實(shí)際度數(shù)是否大于所述平均度數(shù),響應(yīng)于確定所述實(shí)際度數(shù)大于所述平均度數(shù),確定所述被過濾節(jié)點(diǎn)屬于所述初步分組。當(dāng)然本領(lǐng)域技術(shù)人員基于本申請,可以構(gòu)思出其它的確定確定所述被過濾節(jié)點(diǎn)是否屬于所述初歩分組的實(shí)施方式。在步驟305中,響應(yīng)于確定所述被過濾節(jié)點(diǎn)屬于所述初步分組,將所述被過濾節(jié)點(diǎn)歸入所述初步分組。在步驟307中,判斷是否已經(jīng)遍歷所有的被過濾節(jié)點(diǎn),如果還有被過濾節(jié)點(diǎn)沒有處理,則重復(fù)執(zhí)行步驟303至步驟305。在步驟309中,響應(yīng)于將所有的所述被過濾節(jié)點(diǎn)歸入其對應(yīng)的所述初步分組,將所述初步分組作為最終分組。圖4示出了本發(fā)明優(yōu)選的用于大規(guī)模網(wǎng)絡(luò)數(shù)據(jù)的處理方法的第二具體實(shí)施方式
。在本實(shí)施例中,將網(wǎng)絡(luò)數(shù)據(jù)表征為圖,其中數(shù)據(jù)節(jié)點(diǎn)作為圖的節(jié)點(diǎn),數(shù)據(jù)節(jié)點(diǎn)之間的關(guān)聯(lián)用圖的邊表示。在步驟401中,通過計(jì)算或者由用戶輸入用于過濾的度數(shù)預(yù)定閾值。在步驟403中,判斷網(wǎng)絡(luò)數(shù)據(jù)中的各個節(jié)點(diǎn)的度數(shù)是否是高于預(yù)定閾值。值得注意的是,雖然這樣判斷條件設(shè)定為大于預(yù)定閾值,但是應(yīng)當(dāng)理解,設(shè)定高于或者等于預(yù)定閾值等其它等同實(shí)施方式也應(yīng)在本發(fā)明的保護(hù)范圍內(nèi)。在步驟405中,經(jīng)過上述過濾步驟,就獲得了所有度數(shù)小于或者等于預(yù)定閾值的節(jié)點(diǎn)形成的子圖。在步驟405中,對子圖執(zhí)行圖聚類算法,就可以得到聚類的分組。其中本領(lǐng)域技術(shù)人員可以根據(jù)實(shí)際數(shù)據(jù)的特點(diǎn)以及需要,選擇各種傳統(tǒng)的圖聚類算法,比如基于modularity的聚類算法(具體參見參考文獻(xiàn)3M. E. J. Newmanand M. birvan.Finding ana evaluating community structure in networks. Physica丄Review E,69 :026113, 2004.)、基于譜的聚類算法(具體參見參考文獻(xiàn)4M. E. J. Newman.Finding community structure in networks using the eigenvectors of matrices. PhysRev E Stat Nonlin Soft Matter Phys,74(3),2006)。對于那些度數(shù)高于預(yù)定閾值的節(jié)點(diǎn),則在步驟409中存儲這些節(jié)點(diǎn)以及鄰接關(guān)系,以利用后續(xù)步驟的使用。在步驟411中,則根據(jù)保存的被過濾節(jié)點(diǎn)及其鄰接關(guān)系,求出被過濾節(jié)點(diǎn)潛在屬于的分組。在步驟413中,對于每個被被過濾節(jié)點(diǎn)對應(yīng)的潛在分組,判斷該節(jié)點(diǎn)是否屬于上述分組。由于求出潛在的分組和判斷被過濾節(jié)點(diǎn)是否屬于所述分組的具體方法已經(jīng)在上面介紹,在此不再贅述。優(yōu)選地,還可以在本實(shí)施方式中増加步驟415,其中用所有被過濾節(jié)點(diǎn)組成的子圖,判斷是否有額外的聚類分組,若有,則利用這些分組進(jìn)ー步聚合,聚合的方法也可以采用上面提到的各種圖聚類方法,從而得到新的分組,將所述新的分組并入最終分組。并將所述新的分組并入最終 分組,從而可以得到更加完備的分組信息。圖5示出了本發(fā)明的一個示例性的具體應(yīng)用實(shí)例。如圖5所示的無向無回路網(wǎng)絡(luò)數(shù)據(jù)中,V代表用戶節(jié)點(diǎn),邊代表用戶節(jié)點(diǎn)之間有關(guān)聯(lián),該具體應(yīng)用實(shí)例需要從所示網(wǎng)絡(luò)數(shù)據(jù)中挖掘出社群關(guān)系(community)。以下詳細(xì)說明該應(yīng)用實(shí)例如何獲得相關(guān)結(jié)果I)計(jì)算過濾的預(yù)定閾值,統(tǒng)計(jì)每個節(jié)點(diǎn)的度數(shù)并且排序,取前1%的作為過濾的預(yù)定閾值,該圖的預(yù)定閾值為5 ;2)發(fā)現(xiàn)圖中節(jié)點(diǎn)V16的度數(shù)大于5(vl6的度數(shù)=6),因此保存節(jié)點(diǎn)V16及其鄰接關(guān)系{V15, V18, V19, V17, V12, V17};3)對于除了 V16的所有節(jié)點(diǎn)做社群發(fā)現(xiàn),可采用如參考文獻(xiàn)2所介紹的方法,其基本思路是每ー輪迭代,判斷在兩跳之內(nèi)的所有點(diǎn)兩兩之間的相似性,將相似但是沒有邊的兩點(diǎn)之間連上邊,將不相似但是連接了邊的兩點(diǎn)之間去掉邊,網(wǎng)絡(luò)拓?fù)涞淖兓∮谝欢ㄩ撝禃r,迭代結(jié)束,否則繼續(xù)下ー輪節(jié)點(diǎn)。這里只是參考文獻(xiàn)2的方法進(jìn)行了簡述,詳情可具體參見參考文獻(xiàn)本身。圖5所示網(wǎng)絡(luò),在迭代結(jié)束后,會得到的3個初步分組Gl {V5,V10, VII, V15}、G2{V1,V2, V3, V6, V7, V12, V17}、G3{V18,V19, V21};4)利用在2)中存儲的結(jié)果,根據(jù)V16的鄰接關(guān)系,發(fā)現(xiàn)上述三個初步分組G1、G2、G3中都包含有其鄰接的節(jié)點(diǎn),因此V16可能屬于三個初步分組G1、G2、G3 ;5)分別計(jì)算Gl、G2、G3中的平均度數(shù)。其中Gl、G2、G3的平均度數(shù)分別為I. 5、I. 6,0. 7,而V16與Gl、G2、G3的實(shí)際關(guān)聯(lián)度數(shù)分別為1、3、2,由于確定V16與G2、G3的實(shí)際關(guān)聯(lián)度數(shù)大于G2、G3的平均度數(shù),因此可以判斷V16同時屬于G2、G3,并將V16分別歸入G2、G3,從而形成如圖5所示的最終分組結(jié)果Gl {V5,V10, VII,V15}、G2{V1,V2, V3,V6,V7,V12, V16, V17}、G3{V16, V18,V19, V21}。本發(fā)明的各個具體實(shí)施方式
可適用于各種實(shí)現(xiàn)平臺,例如單機(jī)實(shí)現(xiàn)的網(wǎng)絡(luò)數(shù)據(jù)聚類處理,基于MapReduce、MPI等并行計(jì)算平臺實(shí)現(xiàn)的網(wǎng)絡(luò)數(shù)據(jù)聚類處理。圖6示例性示出了本發(fā)明在云計(jì)算平臺Hadoop MapReduce上并行實(shí)現(xiàn)的方法。圖6中的姆ー個帶陰影的方框代表ー個MapReduce作業(yè)(job), M代表Map任務(wù),R代表Reduce任務(wù),其中連通圖計(jì)算器由若干個MapReduce作業(yè)組成,其他模塊都是ー個MapReduce作業(yè)。
為了實(shí)現(xiàn)社群發(fā)現(xiàn),網(wǎng)絡(luò)在MapReduce中的基本數(shù)據(jù)結(jié)構(gòu)為“兩跳鄰接表”,即每行用節(jié)點(diǎn)作為鍵值(key),節(jié)點(diǎn)的鄰接表以及鄰接表中每個節(jié)點(diǎn)的鄰接表,作為值(value),同時還要在value中存儲該節(jié)點(diǎn)對于兩跳鄰接表中所有節(jié)點(diǎn)的相似度,并且預(yù)留一定的value字段用于標(biāo)記等信息的存儲。例如節(jié)點(diǎn)A的兩跳鄰接表是A_C (A,B,D),B (A,C),其中A的一跳鄰居是B,C,一跳鄰居B包括A,C,C包括A,B,D。這樣的數(shù)據(jù)結(jié)構(gòu)是為了方便實(shí)現(xiàn)參考文獻(xiàn)I中所描述的主聚類方法。在預(yù)處理階段,通過ー個MapReduce作業(yè),把度數(shù)大于指定門限的節(jié)點(diǎn)標(biāo)記(度數(shù)求解很容易用ー個Map任務(wù)實(shí)現(xiàn),因?yàn)槊總€節(jié)點(diǎn)存儲了鄰接表,度數(shù)就是鄰接表中成員的個數(shù)),標(biāo)記后的數(shù)據(jù),同時作為“過濾器”和“大度數(shù)節(jié)點(diǎn)采集器”的輸入。在主算法階段,接收過濾器的輸出為小于制定門限節(jié)點(diǎn)的兩 跳鄰接矩陣集合,根據(jù)參考文獻(xiàn)I中主聚類方法,進(jìn)行若干輪迭代以更新拓?fù)?,每ー輪迭代,通過相似性計(jì)算器得到節(jié)點(diǎn)之間的相似度,通過拓?fù)涓缕鞲峦負(fù)浣Y(jié)構(gòu),當(dāng)拓?fù)渥儞Q小于指定門限的時候,迭代結(jié)束,參考文獻(xiàn)I中所述主算法完成。在后處理階段,主算法完成后,調(diào)用連通圖計(jì)算器(具體方法可參見WeaklyConnected Component implemented in XRIME, http: //xrime. sourceforge. net/), f導(dǎo)至丨丨母個節(jié)點(diǎn)對應(yīng)的社群。這時候,調(diào)用“組度數(shù)計(jì)算器”計(jì)算每個分組的平均度數(shù)?!敖M度數(shù)計(jì)算器”輸入的key為節(jié)點(diǎn),value為分組編號,輸出key為分組,value為該分組平均度數(shù)和包括的節(jié)點(diǎn)集合?!敖M度數(shù)計(jì)算器”的輸出(輸出I)和“大度數(shù)節(jié)點(diǎn)采集器”的輸出(輸出2),被同時作為“分組選擇器”的輸入,“分組選擇器”的輸出為被過濾節(jié)點(diǎn)的潛在分組。在Map階段,“分組選擇器”根據(jù)被過濾節(jié)點(diǎn)的鄰接表,向被過濾節(jié)點(diǎn)的每個鄰居發(fā)送{分組,過濾的節(jié)點(diǎn)}鍵值對消息,例如,如果節(jié)點(diǎn)V有鄰居vl,v2,v3,v4和v5,而vl和v2被分到組gl,v3, v4和v5被分到組g2,這時候“分組選擇器”發(fā)送2條< gl,V >到gl為key的reducer,發(fā)送3條< g2,V >到g2為key的reducer,因此,姆個分組中收到的V對應(yīng)的消息條數(shù),就表明了該節(jié)點(diǎn)在該分組中的鄰居個數(shù),記錄這個個數(shù)作為標(biāo)號し進(jìn)而,分組聚合器就可以通過標(biāo)號L和先前計(jì)算的組平均度數(shù),判斷V是否真的屬于這個分組,最后得到最終分組結(jié)果。圖7示出了采用本發(fā)明的方法與僅采用參考文獻(xiàn)I或類似的傳統(tǒng)方法的處理ー個實(shí)例數(shù)據(jù)集的效果比較。這些方法都實(shí)現(xiàn)在Hadoop MapRuce平臺,該平臺的集群由6個
1.66G的雙核X86,4G內(nèi)存的刀片構(gòu)成。如圖7可見,應(yīng)用本發(fā)明后,社群發(fā)現(xiàn)的時間在該實(shí)施例部署環(huán)境中比傳統(tǒng)方法在處理大于15萬個節(jié)點(diǎn)規(guī)模的網(wǎng)絡(luò)數(shù)據(jù)時節(jié)省了近92. 3%的時間。傳統(tǒng)的處理方法在大規(guī)模的網(wǎng)絡(luò)數(shù)據(jù)的處理時間上呈指數(shù)增長。本發(fā)明的各個具體實(shí)施方式
之所以能夠比傳統(tǒng)方法有如此出乎意料之外的技術(shù)效果,根本原因在于本申請人仔細(xì)分析了相關(guān)網(wǎng)絡(luò)數(shù)據(jù)的分布特點(diǎn),另辟蹊徑地創(chuàng)造性提出了本發(fā)明的各個具體實(shí)施方式
,通過過濾度數(shù)大的節(jié)點(diǎn)然后再與初歩分組合并,從而避免了在初歩分組聚類的過程中,大度數(shù)節(jié)點(diǎn)引入造成的若干浪費(fèi)的計(jì)算開銷。所得到的分組結(jié)果不會喪失原有的相關(guān)信息,卻大大地提高了分組的效率,取得了顯著的技術(shù)效果。應(yīng)當(dāng)理解,本發(fā)明針對大規(guī)模網(wǎng)絡(luò)數(shù)據(jù)提出上述各個實(shí)施方式,但本發(fā)明同樣適用于一般規(guī)模的網(wǎng)絡(luò)數(shù)據(jù),同樣會有相應(yīng)的增益。如果本領(lǐng)域技術(shù)人員基于其具備的專業(yè)知識將本發(fā)明的方法擴(kuò)展其它物理網(wǎng)絡(luò)數(shù)據(jù)(例如傳感器網(wǎng)等),并基于本領(lǐng)域的知識而適應(yīng)性地修改本發(fā)明的各個具體實(shí)施方式
,也是同樣適用的。圖8則示出了本發(fā)明的處理網(wǎng)絡(luò)數(shù)據(jù)的計(jì)算機(jī)系統(tǒng)800。該計(jì)算機(jī)系統(tǒng)800包括接收裝置801,其被配置為接收網(wǎng)絡(luò)數(shù)據(jù);過濾裝置803,其被配置為過濾網(wǎng)絡(luò)數(shù)據(jù)中度數(shù)高于預(yù)定閾值的節(jié)點(diǎn);存儲裝置805,其被配置為存儲被過濾節(jié)點(diǎn)及其鄰接關(guān)系;聚類裝置807,其被配置為對過濾后的網(wǎng)絡(luò)數(shù)據(jù)進(jìn)行聚類以獲得初歩分組;以及最終分組確定裝置809,其被配置為基于所述被過濾節(jié)點(diǎn)及其鄰接關(guān)系和所述初步分組獲得最終分組。優(yōu)選地,所述最終分組確定裝置809包括映射裝置,其被配置為依據(jù)所存儲的鄰接關(guān)系,建立所述被過濾節(jié)點(diǎn)與所述初步分組之間的映射;判斷裝置,被配置為確定所述被過濾節(jié)點(diǎn)是否屬于所述初歩分組;以及歸入裝置,被配置為響應(yīng)于確定所述被過濾節(jié)點(diǎn)屬于所述初步分組,將所述被過濾節(jié)點(diǎn)歸入所述初步分組。優(yōu)選地,所述最終分組確定裝置809還包括最終分組確定裝置,被配置為響應(yīng)于將所有的所述被過濾節(jié)點(diǎn)歸入其對應(yīng)的所述初步分組,將所述初步分組作為最終分組。
優(yōu)選地,所述計(jì)算機(jī)系統(tǒng)800還包括新分組裝置,被配置為對所述被過濾節(jié)點(diǎn)組成的子網(wǎng)絡(luò)數(shù)據(jù)進(jìn)行聚類,以形成新的分組;以及合并裝置,被配置為將所述新的分組并入所述最終分組。優(yōu)選地,所述計(jì)算機(jī)系統(tǒng)800還包括統(tǒng)計(jì)裝置,被配置為統(tǒng)計(jì)所述網(wǎng)絡(luò)數(shù)據(jù)中全部節(jié)點(diǎn)的度數(shù)分布;以及預(yù)定閾值確定裝置,被配置為選擇全部節(jié)點(diǎn)中具有高度數(shù)的前一定百分比范圍內(nèi)的(優(yōu)選前5.5%-1%)任一節(jié)點(diǎn)的度數(shù),作為預(yù)定閾值。優(yōu)選地,其中所述鄰接關(guān)系由與所述被過濾節(jié)點(diǎn)相鄰接的節(jié)點(diǎn)的集合來表征。優(yōu)選地,所述映射裝置包括初歩分組確定裝置,被配置為確定包括了所述被過濾節(jié)點(diǎn)的鄰接關(guān)系中的至少ー個節(jié)點(diǎn)的初歩分組;以及關(guān)聯(lián)裝置,被配置為將所述被過濾節(jié)點(diǎn)與確定的初歩分組進(jìn)行關(guān)聯(lián)。優(yōu)選地,其中所述判斷裝置包括平均度數(shù)計(jì)算裝置,被配置為計(jì)算所述初步分組中節(jié)點(diǎn)的平均度數(shù);實(shí)際關(guān)聯(lián)度數(shù)計(jì)算裝置,被配置為計(jì)算所述被過濾節(jié)點(diǎn)與所述初步分組內(nèi)節(jié)點(diǎn)的實(shí)際關(guān)聯(lián)度數(shù);比較裝置,被配置為確定所述實(shí)際關(guān)聯(lián)度數(shù)是否大于所述平均度數(shù);以及確定裝置,被配置為響應(yīng)于確定所述實(shí)際關(guān)聯(lián)度數(shù)大于所述平均度數(shù),確定所述被過濾節(jié)點(diǎn)屬于所述初步分組。優(yōu)選地,該計(jì)算機(jī)系統(tǒng)800部署在MapReduce計(jì)算平臺。圖9則示意性示出了可以實(shí)現(xiàn)根據(jù)本發(fā)明的實(shí)施例的計(jì)算設(shè)備的結(jié)構(gòu)方框圖。圖9中所示的計(jì)算機(jī)系統(tǒng)包括CPU(中央處理單元)901、RAM(隨機(jī)存取存儲器)902、ROM(只讀存儲器)903、系統(tǒng)總線904,硬盤控制器905、鍵盤控制器906、串行接ロ控制器907、并行接ロ控制器908、顯示器控制器909、硬盤910、鍵盤911、串行外部設(shè)備912、并行外部設(shè)備913和顯示器914。在這些部件中,與系統(tǒng)總線904相連的有CPU 901、RAM 902、ROM 903、硬盤控制器905、鍵盤控制器906,串行接ロ控制器907,并行接ロ控制器908和顯示器控制器909。硬盤910與硬盤控制器905相連,鍵盤911與鍵盤控制器906相連,串行外部設(shè)備912與串行接ロ控制器907相連,并行外部設(shè)備913與并行接ロ控制器908相連,以及顯示器914與顯示器控制器909相連。圖9中每個部件的功能在本技術(shù)領(lǐng)域內(nèi)都是眾所周知的,并且圖9所示的結(jié)構(gòu)也是常規(guī)的。這種結(jié)構(gòu)不僅用于個人計(jì)算機(jī),而且用于手持設(shè)備,如Palm PC、PDA(個人數(shù)據(jù)助理)、移動電話等等。在不同的應(yīng)用中,例如用于實(shí)現(xiàn)包含有根據(jù)本發(fā)明的客戶端模塊的用戶終端或者包含有根據(jù)本發(fā)明的網(wǎng)絡(luò)應(yīng)用服務(wù)器的服務(wù)器主機(jī)時,可以向圖9中所示的結(jié)構(gòu)添加某些部件,或者圖9中的某些部件可以被省略。圖9中所示的整個系統(tǒng)由通常作為軟件存儲在硬盤910中、或者存儲在EPROM或者其它非易失性存儲器中的計(jì)算機(jī)可讀指令控制。軟件也可從網(wǎng)絡(luò)(圖中未示出)下載?;蛘叽鎯υ谟脖P910中,或者從網(wǎng)絡(luò)下載的軟件可被加載到RAM 902中,并由CPU 901執(zhí)行,以便完成由軟件確定的功能。盡管圖9中描述的計(jì)算機(jī)系統(tǒng)能夠支持根據(jù)本發(fā)明的提供的技術(shù)方案,但是該計(jì)算機(jī)系統(tǒng)只是計(jì)算機(jī)系統(tǒng)的ー個例子。本領(lǐng)域的熟練技術(shù)人員可以理解,許多其它計(jì)算機(jī)系統(tǒng)設(shè)計(jì)也能實(shí)現(xiàn)本發(fā)明的實(shí)施例。本發(fā)明還可以實(shí)現(xiàn)為例如由圖9所示計(jì)算機(jī)系統(tǒng)所使用的計(jì)算機(jī)程序產(chǎn)品,其可以包含有用于實(shí)現(xiàn)根據(jù)本發(fā)明的提供的MMS傳輸方法的代碼。在使用之前,可以把代碼存儲在其它計(jì)算機(jī)系統(tǒng)的存儲器中,例如,存儲在硬盤或諸如光盤或軟盤的可移動的存儲器中,或者經(jīng)由因特網(wǎng)或其它計(jì)算機(jī)網(wǎng)絡(luò)進(jìn)行下載。盡管參考本發(fā)明的優(yōu)選實(shí)施例具體展示和描述了本發(fā)明,但是本領(lǐng)域一般技術(shù)人員應(yīng)該明白,在不脫離所附權(quán)利要求限定的本發(fā)明的精神和范圍的情況下,可以對其進(jìn)行形式和細(xì)節(jié)上的各種修改。權(quán)利要求
1.ー種網(wǎng)絡(luò)數(shù)據(jù)的計(jì)算機(jī)處理方法,包括 接收網(wǎng)絡(luò)數(shù)據(jù); 過濾網(wǎng)絡(luò)數(shù)據(jù)中度數(shù)高于預(yù)定閾值的節(jié)點(diǎn);
2.如權(quán)利要求I所述的方法,所述基于所述被過濾節(jié)點(diǎn)及其鄰接關(guān)系和所述初步分組獲得最終分組包括 依據(jù)所存儲的鄰接關(guān)系,建立所述被過濾節(jié)點(diǎn)與所述初步分組之間的映射; 確定所述被過濾節(jié)點(diǎn)是否屬于所述初歩分組;以及 響應(yīng)于確定所述被過濾節(jié)點(diǎn)屬于所述初步分組,將所述被過濾節(jié)點(diǎn)歸入所述初步分組。
3.如權(quán)利要求2所述的方法,所述基于所述被過濾節(jié)點(diǎn)及其鄰接關(guān)系和所述初步分組獲得最終分組還包括 響應(yīng)于將所有的所述被過濾節(jié)點(diǎn)歸入其對應(yīng)的所述初步分組,將所述初步分組作為最終分組。
4.如權(quán)利要求I所述的方法,還包括 對所述被過濾節(jié)點(diǎn)組成的子網(wǎng)絡(luò)數(shù)據(jù)進(jìn)行聚類,以形成新的分組;以及 將所述新的分組并入所述最終分組。
5.如權(quán)利要求I所述的方法,還包括 統(tǒng)計(jì)所述網(wǎng)絡(luò)數(shù)據(jù)中全部節(jié)點(diǎn)的度數(shù)分布;以及 選擇全部節(jié)點(diǎn)中具有高度數(shù)的前一定百分比范圍內(nèi)的任一節(jié)點(diǎn)的度數(shù),作為預(yù)定閾值。
6.如權(quán)利要求I所述的方法,其中所述鄰接關(guān)系由與所述被過濾節(jié)點(diǎn)相鄰接的節(jié)點(diǎn)的集合來表征。
7.如權(quán)利要求6所述的方法,所述建立所述被過濾節(jié)點(diǎn)與所述初步分組之間的映射包括 確定包括了所述被過濾節(jié)點(diǎn)的鄰接關(guān)系中的至少ー個節(jié)點(diǎn)的初歩分組;以及 將所述被過濾節(jié)點(diǎn)與確定的初歩分組進(jìn)行關(guān)聯(lián)。
8.如權(quán)利要求2所述的方法,其中所述確定所述被過濾節(jié)點(diǎn)是否屬于所述初步分組包括 計(jì)算所述初步分組中節(jié)點(diǎn)的平均度數(shù); 計(jì)算所述被過濾節(jié)點(diǎn)與所述初步分組內(nèi)節(jié)點(diǎn)的實(shí)際關(guān)聯(lián)度數(shù); 確定所述實(shí)際關(guān)聯(lián)度數(shù)是否大于所述平均度數(shù);以及 響應(yīng)于確定所述實(shí)際關(guān)聯(lián)度數(shù)大于所述平均度數(shù),確定所述被過濾節(jié)點(diǎn)屬于所述初步分組。
9.如權(quán)利要求I所述的方法,其中,該方法部署在MapReduce計(jì)算平臺。
10.ー種處理網(wǎng)絡(luò)數(shù)據(jù)的計(jì)算機(jī)系統(tǒng),包括 接收裝置,被配置為接收網(wǎng)絡(luò)數(shù)據(jù);過濾裝置,被配置為過濾網(wǎng)絡(luò)數(shù)據(jù)中度數(shù)高于預(yù)定閾值的節(jié)點(diǎn); 存儲裝置,被配置為存儲被過濾節(jié)點(diǎn)及其鄰接關(guān)系; 聚類裝置,被配置為對過濾后的網(wǎng)絡(luò)數(shù)據(jù)進(jìn)行聚類以獲得初歩分組;以及最終分組確定裝置,被配置為基于所述被過濾節(jié)點(diǎn)及其鄰接關(guān)系和所述初步分組獲得最終分組。
11.如權(quán)利要求10所述的計(jì)算機(jī)系統(tǒng),所述最終分組裝置包括 映射裝置,被配置為依據(jù)所存儲的鄰接關(guān)系,建立所述被過濾節(jié)點(diǎn)與所述初步分組之間的映射; 判斷裝置,被配置為確定所述被過濾節(jié)點(diǎn)是否屬于所述初歩分組;以及歸入裝置,被配置為響應(yīng)于確定所述被過濾節(jié)點(diǎn)屬于所述初步分組,將所述被過濾節(jié)點(diǎn)歸入所述初步分組。
12.如權(quán)利要求11所述的計(jì)算機(jī)系統(tǒng),所述最終分組裝置還包括 最終分組確定裝置,被配置為響應(yīng)于將所有的所述被過濾節(jié)點(diǎn)歸入其對應(yīng)的所述初步分組,將所述初步分組作為最終分組。
13.如權(quán)利要求10所述的計(jì)算機(jī)系統(tǒng),還包括 新分組裝置,被配置為對所述被過濾節(jié)點(diǎn)組成的子網(wǎng)絡(luò)數(shù)據(jù)進(jìn)行聚類,以形成新的分組;以及 合并裝置,被配置為將所述新的分組并入所述最終分組。
14.如權(quán)利要求10所述的計(jì)算機(jī)系統(tǒng),還包括 統(tǒng)計(jì)裝置,被配置為統(tǒng)計(jì)所述網(wǎng)絡(luò)數(shù)據(jù)中全部節(jié)點(diǎn)的度數(shù)分布;以及預(yù)定閾值確定裝置,被配置為選擇全部節(jié)點(diǎn)中具有高度數(shù)的一定百分比范圍內(nèi)的任一節(jié)點(diǎn)的度數(shù),作為預(yù)定閾值。
15.如權(quán)利要求10所述的計(jì)算機(jī)系統(tǒng),其中所述鄰接關(guān)系由與所述被過濾節(jié)點(diǎn)相鄰接的節(jié)點(diǎn)的集合來表征。
16.如權(quán)利要求15所述的計(jì)算機(jī)系統(tǒng),所述映射裝置包括 初歩分組確定裝置,被配置為確定包括了所述被過濾節(jié)點(diǎn)的鄰接關(guān)系中的至少ー個節(jié)點(diǎn)的初步分組;以及 關(guān)聯(lián)裝置,被配置為將所述被過濾節(jié)點(diǎn)與確定的初歩分組進(jìn)行關(guān)聯(lián)。
17.如權(quán)利要求11所述的計(jì)算機(jī)系統(tǒng),其中所述判斷裝置包括 平均度數(shù)計(jì)算裝置,被配置為計(jì)算所述初步分組中節(jié)點(diǎn)的平均度數(shù); 實(shí)際關(guān)聯(lián)度數(shù)計(jì)算裝置,被配置為計(jì)算所述被過濾節(jié)點(diǎn)與所述初步分組內(nèi)節(jié)點(diǎn)的實(shí)際關(guān)聯(lián)度數(shù); 比較裝置,被配置為確定所述實(shí)際關(guān)聯(lián)度數(shù)是否大于所述平均度數(shù);以及確定裝置,被配置為響應(yīng)于確定所述實(shí)際關(guān)聯(lián)度數(shù)大于所述平均度數(shù),確定所述被過濾節(jié)點(diǎn)屬于所述初步分組。
18.如權(quán)利要求10所述的計(jì)算機(jī)系統(tǒng),其中,該計(jì)算機(jī)系統(tǒng)部署在MapReduce計(jì)算平臺。
全文摘要
本發(fā)明提供一種網(wǎng)絡(luò)數(shù)據(jù)的計(jì)算機(jī)處理方法以及一種處理網(wǎng)絡(luò)數(shù)據(jù)的計(jì)算機(jī)系統(tǒng)。其中該計(jì)算機(jī)處理方法包括接收網(wǎng)絡(luò)數(shù)據(jù);過濾網(wǎng)絡(luò)數(shù)據(jù)中度數(shù)高于預(yù)定閾值的節(jié)點(diǎn);存儲被過濾節(jié)點(diǎn)及其鄰接關(guān)系;對過濾后的網(wǎng)絡(luò)數(shù)據(jù)進(jìn)行聚類以獲得初步分組;以及基于所述被過濾節(jié)點(diǎn)及其鄰接關(guān)系和所述初步分組獲得最終分組。本發(fā)明提供的計(jì)算機(jī)處理方法和系統(tǒng)可以以適用于大規(guī)模網(wǎng)絡(luò)數(shù)據(jù)的處理,對于大規(guī)模網(wǎng)絡(luò)數(shù)據(jù)的聚類處理時間將大大降低,本發(fā)明還能夠很好地被并行化實(shí)施。
文檔編號H04L29/08GK102724219SQ201110076719
公開日2012年10月10日 申請日期2011年3月29日 優(yōu)先權(quán)日2011年3月29日
發(fā)明者史巨偉, 楊博, 王文杰, 薛偉 申請人:國際商業(yè)機(jī)器公司