基于圖結(jié)構(gòu)匹配的社交網(wǎng)絡(luò)分析方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及社交網(wǎng)絡(luò)分析方法,特別涉及基于圖結(jié)構(gòu)匹配的社交網(wǎng)絡(luò)分析方法。
【背景技術(shù)】
[0002]近年來(lái),互聯(lián)網(wǎng)的持續(xù)快速發(fā)展,社交網(wǎng)絡(luò)等新興信息模式的迅猛發(fā)展,對(duì)個(gè)人和社會(huì)群體的行為產(chǎn)生了深遠(yuǎn)影響。以Facebook為例,我們發(fā)現(xiàn)其:(I)用戶規(guī)模大,全球注冊(cè)用戶超8.5億,用戶間聯(lián)系逾千億;(2)使用頻繁,超過一半的用戶每天登陸Facebook,所有用戶每月在線時(shí)間達(dá)7000億分鐘;(3)商業(yè)價(jià)值高,是排名第一的廣告發(fā)布接受網(wǎng)站,每天有超過10億條包括視頻、照片、新聞等信息在用戶間分享。
[0003]龐大的社交網(wǎng)絡(luò)為人們提供了豐富的信息,然而如何快速有效地發(fā)現(xiàn)社交網(wǎng)絡(luò)海量信息背后所蘊(yùn)含的知識(shí),是亟待人們解決的問題。
[0004]由于社交網(wǎng)絡(luò)可以抽象為圖結(jié)構(gòu)一一用戶可被視為圖的頂點(diǎn),用戶之間的關(guān)系可被看作圖的邊,因此,基于圖結(jié)構(gòu)匹配的分析技術(shù)已成為社交網(wǎng)絡(luò)分析的主要技術(shù)之一,并且已經(jīng)和正在幫助人們進(jìn)行專家推薦、社交圈子識(shí)別,社會(huì)位置分析等。簡(jiǎn)言之,圖結(jié)構(gòu)匹配是在一個(gè)大圖G中查詢與給定模式圖Q匹配的子圖(可形式化描述為Q(G))。然而,由于社交網(wǎng)絡(luò)圖數(shù)據(jù)“海量”及“非結(jié)構(gòu)化”的特點(diǎn),通過傳統(tǒng)技術(shù)對(duì)社交網(wǎng)絡(luò)“大數(shù)據(jù)”進(jìn)行分析已難以滿足人們的迫切需要。具體原因表現(xiàn)在:(I)圖結(jié)構(gòu)匹配兼顧數(shù)據(jù)和拓?fù)浣Y(jié)構(gòu),從而導(dǎo)致對(duì)該問題的運(yùn)算往往較為復(fù)雜,例如:基于子圖同構(gòu)的圖結(jié)構(gòu)匹配屬于一類極難解決的問題一一NP完全問題;(2)社交網(wǎng)絡(luò)的數(shù)據(jù)往往是分布式存儲(chǔ)的。例如=Twitter社交圖的FlockDB,Yahoo !互聯(lián)網(wǎng)應(yīng)用的PNUTS,開源社區(qū)的Neo4j和HypergraphDB等。另一方面,圖結(jié)構(gòu)匹配經(jīng)常需要訪問多個(gè)數(shù)據(jù)節(jié)點(diǎn),例如:訪問多個(gè)數(shù)據(jù)站點(diǎn)以取得匹配計(jì)算所需要的全部信息。因此,在分布式環(huán)境下,圖結(jié)構(gòu)匹配的求值更加困難;(3)現(xiàn)實(shí)世界的社交網(wǎng)絡(luò)是不斷變化的。在一周內(nèi)有10%的節(jié)點(diǎn)及節(jié)點(diǎn)關(guān)系更新是常見的情況。當(dāng)更新出現(xiàn)的時(shí)候,昂貴的查詢需要被重新計(jì)算。這樣的計(jì)算在面對(duì)頻繁的請(qǐng)求時(shí)往往是無(wú)法進(jìn)行的。
[4]可視化管理工具的缺失。與關(guān)鍵詞搜索和結(jié)構(gòu)化查詢不同,圖結(jié)構(gòu)匹配查詢條件(如模式圖Q)的描述更加復(fù)雜,且對(duì)結(jié)果的理解也需要更加直觀的方式。
【發(fā)明內(nèi)容】
[0005]本發(fā)明所要解決的技術(shù)問題,就是提供一種基于圖結(jié)構(gòu)匹配的社交網(wǎng)絡(luò)分析方法以實(shí)現(xiàn)高效、便捷的數(shù)據(jù)分析與維護(hù),進(jìn)而為專家推薦、社交圈子識(shí)別,社會(huì)位置分析等熱點(diǎn)應(yīng)用提供關(guān)鍵技術(shù)支撐。
[0006]本發(fā)明解決所述技術(shù)問題,采用的技術(shù)方案是,基于圖結(jié)構(gòu)匹配的社交網(wǎng)絡(luò)分析方法,包括以下步驟:
[0007]步驟1、用戶通過系統(tǒng)構(gòu)建模式圖Q,選擇待分析的圖數(shù)據(jù),并發(fā)出模式圖Q的匹配查詢請(qǐng)求;
[0008]步驟2、系統(tǒng)采用十字鏈表作為待分析的圖數(shù)據(jù)的基礎(chǔ)數(shù)據(jù)結(jié)構(gòu),并對(duì)十字鏈表結(jié)構(gòu)的圖數(shù)據(jù)G進(jìn)行數(shù)據(jù)管理操作;
[0009]步驟3、系統(tǒng)將模式圖Q的匹配查詢請(qǐng)求發(fā)送至十字鏈表結(jié)構(gòu)的圖數(shù)據(jù)G的各個(gè)數(shù)據(jù)站點(diǎn),數(shù)據(jù)站點(diǎn)計(jì)為(S1, S2...Sn);我們將數(shù)據(jù)量很大的圖數(shù)據(jù)G分割成很多個(gè)子圖,并存放在不同的網(wǎng)絡(luò)站點(diǎn)中,數(shù)據(jù)站點(diǎn)是指各個(gè)子圖所在的網(wǎng)絡(luò)站點(diǎn)。
[0010]步驟4、系統(tǒng)對(duì)各數(shù)據(jù)站點(diǎn)并行執(zhí)行本地計(jì)算,計(jì)算出匹配結(jié)果;
[0011]步驟5、系統(tǒng)對(duì)匹配結(jié)果進(jìn)行排序顯示。
[0012]具體的,所述步驟3中,系統(tǒng)接收模式圖Q的匹配查詢請(qǐng)求后,首先檢測(cè)當(dāng)前站點(diǎn)S1的邊界節(jié)點(diǎn)V ^,如果其與模式圖Q中的某個(gè)節(jié)點(diǎn)Uci具有相同的節(jié)點(diǎn)標(biāo)簽,則S 1向其他站點(diǎn)S,請(qǐng)求邊界節(jié)點(diǎn)V ^的鄰居節(jié)點(diǎn),S i接收到S ,返回的數(shù)據(jù)后,進(jìn)入步驟4。
[0013]具體的,所述步驟4中,系統(tǒng)并行調(diào)用經(jīng)全雙工方式優(yōu)化后的VF2算法對(duì)十字鏈表結(jié)構(gòu)的圖數(shù)據(jù)G的各數(shù)據(jù)站點(diǎn)并行執(zhí)行本地計(jì)算。傳統(tǒng)的VF2將整個(gè)圖作為輸入,而經(jīng)全雙工方式優(yōu)化后的VF2算法只將可能與Q匹配的子結(jié)構(gòu)作為輸入,進(jìn)行結(jié)構(gòu)匹配計(jì)算。
[0014]具體的,所述步驟5中,系統(tǒng)根據(jù)匹配結(jié)果的出入度對(duì)匹配結(jié)果進(jìn)行排序顯示,出度及入度的和越大,系統(tǒng)排序越靠前。
[0015]具體的,所述方法還包括系統(tǒng)通過運(yùn)用增量算法,對(duì)匹配結(jié)果進(jìn)行增量計(jì)算,具體包括以下步驟:
[0016]步驟61、系統(tǒng)將模式圖Q轉(zhuǎn)換為無(wú)向圖Q’,并計(jì)算出Q’的直徑d ;
[0017]步驟62、系統(tǒng)將十字鏈表結(jié)構(gòu)的圖數(shù)據(jù)G中每一條邊的更新計(jì)為Δ e = (V,V’),分別計(jì)算V和V’在d步內(nèi)可達(dá)的節(jié)點(diǎn);
[0018]步驟63、系統(tǒng)并十字鏈表結(jié)構(gòu)的圖數(shù)據(jù)G中導(dǎo)出包含上述節(jié)點(diǎn)的子圖,計(jì)為G(Ae1Q);
[0019]步驟64、系統(tǒng)對(duì)子圖G(Ae,Q)進(jìn)行模式圖Q的同構(gòu)計(jì)算,得出新的匹配結(jié)果,返回步驟4。
[0020]具體的,所述步驟I中,用戶通過輸入節(jié)點(diǎn)和邊,構(gòu)建模式圖Q。
[0021]具體的,所述步驟I中,對(duì)十字鏈表結(jié)構(gòu)的圖數(shù)據(jù)G進(jìn)行數(shù)據(jù)管理操作包括節(jié)點(diǎn)查詢、節(jié)點(diǎn)的增刪改和/或邊的增刪改。
[0022]本發(fā)明的有益效果是:系統(tǒng)通過全雙工方式,對(duì)經(jīng)典的VF2算法進(jìn)行拓展,實(shí)現(xiàn)分布式圖結(jié)構(gòu)匹配計(jì)算;基礎(chǔ)數(shù)據(jù)采用十字鏈表結(jié)構(gòu),便于雙向(延父節(jié)點(diǎn),或子節(jié)點(diǎn))遍歷,在十字鏈表的基礎(chǔ)上,實(shí)現(xiàn)了非常高效的節(jié)點(diǎn)、邊的增刪改操作,使得圖數(shù)據(jù)的維護(hù)非常便利;從輸入輸出變化的角度,設(shè)計(jì)增量維護(hù)算法,使得對(duì)查詢結(jié)果的動(dòng)態(tài)維護(hù)更加高效,實(shí)現(xiàn)了增量維護(hù)計(jì)算,以克服社交網(wǎng)絡(luò)更新頻繁,而批量計(jì)算又開銷巨大的嚴(yán)重瓶頸;通過“所見即所得”的可視化方式幫助用戶構(gòu)建查詢,管理圖數(shù)據(jù),并可視化查詢結(jié)果。
【具體實(shí)施方式】
[0023]下面結(jié)合實(shí)施例詳細(xì)描述本發(fā)明的技術(shù)方案:
[0024]本發(fā)明針對(duì)現(xiàn)有技術(shù)中由于社交網(wǎng)絡(luò)圖數(shù)據(jù)“海量”及“非結(jié)構(gòu)化”的特點(diǎn),通過傳統(tǒng)技術(shù)對(duì)社交網(wǎng)絡(luò)“大數(shù)據(jù)”進(jìn)行分析已難以滿足人們的迫切需要的問題,提供一種基于圖結(jié)構(gòu)匹配的社交網(wǎng)絡(luò)分析方法,首先,用戶構(gòu)建模式圖Q,選擇待分析的圖數(shù)據(jù),并發(fā)出模式圖Q的匹配查詢請(qǐng)求;其次,系統(tǒng)采用十字鏈表作為待分析的圖數(shù)據(jù)的基礎(chǔ)數(shù)據(jù)結(jié)構(gòu),并對(duì)十字鏈表結(jié)構(gòu)的圖數(shù)據(jù)G進(jìn)行數(shù)據(jù)管理操作;然后,系統(tǒng)將模式圖Q的匹配查詢請(qǐng)求發(fā)送至十字鏈表結(jié)構(gòu)的圖數(shù)據(jù)G的各個(gè)數(shù)據(jù)站點(diǎn),數(shù)據(jù)站點(diǎn)計(jì)為(S1, S2...SJ ;再然后,系統(tǒng)對(duì)各數(shù)據(jù)站點(diǎn)并行執(zhí)行本地計(jì)算,計(jì)算出匹配結(jié)果;最后,系統(tǒng)對(duì)匹配結(jié)果進(jìn)行排序顯示。系統(tǒng)通過全雙工方式,對(duì)經(jīng)典的VF2算法進(jìn)行拓展,實(shí)現(xiàn)分布式圖結(jié)構(gòu)匹配計(jì)算;基礎(chǔ)數(shù)據(jù)采用十字鏈表結(jié)構(gòu),便于雙向(延父節(jié)點(diǎn),或子節(jié)點(diǎn))遍歷,在十字鏈表的基礎(chǔ)上,實(shí)現(xiàn)了非常高效的節(jié)點(diǎn)、邊的增刪改操作,使得圖數(shù)據(jù)的維護(hù)非常便利;從輸入輸出變化的角度,設(shè)計(jì)增量維護(hù)算法,使得對(duì)查詢結(jié)果的動(dòng)態(tài)維護(hù)更加高效,實(shí)現(xiàn)了增量維護(hù)計(jì)算,以克服社交網(wǎng)絡(luò)更新頻繁,而批量計(jì)算又開銷巨大的嚴(yán)重瓶頸;通過“所見即所得”的可視化方式幫助用戶構(gòu)建查詢,管理圖數(shù)據(jù),并可視化查詢結(jié)果。
[0025]實(shí)施例
[0026]本例針對(duì)社交網(wǎng)絡(luò)“大數(shù)據(jù)”,通過分布式,可視化及增量計(jì)算技術(shù),實(shí)現(xiàn)高效、便捷的數(shù)據(jù)分析與維護(hù),進(jìn)而為專家推薦、社交圈子識(shí)別,社會(huì)位置分析等熱點(diǎn)應(yīng)用提供關(guān)鍵技術(shù)支撐。為了有效的克服以上困難,更加高效、便捷地對(duì)社交網(wǎng)絡(luò)“大數(shù)據(jù)”進(jìn)行分析,我們對(duì)傳統(tǒng)技術(shù)進(jìn)行了如下三方面的擴(kuò)展:(I)采用分布式技術(shù)管理