本發(fā)明屬于數(shù)據(jù)處理技術(shù)領(lǐng)域,特別涉及一種動態(tài)網(wǎng)絡(luò)中的異常結(jié)構(gòu)演化發(fā)現(xiàn)的方法。
背景技術(shù):
目前,動態(tài)網(wǎng)絡(luò)是節(jié)點和邊會隨時間發(fā)生變化的網(wǎng)絡(luò),現(xiàn)實世界諸多復(fù)雜系統(tǒng)都具有動態(tài)網(wǎng)絡(luò)的特征。大到社會系統(tǒng)的社交網(wǎng)絡(luò)、科研合作者網(wǎng)絡(luò)、郵件網(wǎng)絡(luò),小到生態(tài)系統(tǒng)的蛋白質(zhì)網(wǎng)絡(luò)等。鑒于現(xiàn)實條件的約束如商業(yè)秘密保護(hù)等,許多網(wǎng)絡(luò)無法得到足夠的額外信息,因而網(wǎng)絡(luò)基本結(jié)構(gòu)的分析一直都是研究的熱點。然而隨著時間不斷推進(jìn),動態(tài)網(wǎng)絡(luò)的結(jié)構(gòu)處于不斷改變的過程中,挖掘結(jié)構(gòu)演化過程異常的節(jié)點對理解復(fù)雜系統(tǒng)動態(tài)行為具有重要意義,也是復(fù)雜網(wǎng)絡(luò)研究領(lǐng)域的一個新的問題。
針對網(wǎng)絡(luò)結(jié)構(gòu)的表示問題,文獻(xiàn)1(K.Henderson,B.Gallagher,L.Li,L.Akoglu,T.Eliassi-Rad,H.Tong,and C.Faloutsos.RolX:Role Extraction and Mining in Large Networks.In KDD,2012.)首次提出用潛在的“角色”(role)來刻畫節(jié)點的結(jié)構(gòu)行為,角色代表某種網(wǎng)絡(luò)結(jié)構(gòu)的類型,具有相似結(jié)構(gòu)的節(jié)點屬于同一種角色,如中心節(jié)點、邊緣節(jié)點等。不同于社區(qū)發(fā)現(xiàn)的是,社區(qū)中的節(jié)點通常位置上是接近的,而角色刻畫的是節(jié)點在網(wǎng)絡(luò)中的結(jié)構(gòu),具有相同角色的節(jié)點可能分布在網(wǎng)絡(luò)的任何位置。事實上,角色發(fā)現(xiàn)步驟之后可以為每個節(jié)點得到一個角色取值分布,角色的個數(shù)決定向量的維數(shù),如3個角色R1~R3分別表示中心節(jié)點、橋梁節(jié)點、邊緣節(jié)點,則某節(jié)點的角色分布可能為{R1:0.8,R2:0.1,R3:0.1},表示該節(jié)點三個角色上的取值分別為0.8、0.1和0.1。由于該節(jié)點的角色取值明顯偏重于角色R1,則可以直接取R1中心節(jié)點為該節(jié)點的角色。
從抽象的數(shù)學(xué)模型來看,動態(tài)網(wǎng)絡(luò)可以認(rèn)為是一個圖快照序列。給定一個動態(tài)網(wǎng)絡(luò),可以通過分析節(jié)點在各個快照時刻的角色分布情況分析網(wǎng)絡(luò)的角色演化趨勢。若只考慮3種簡單的角色類型R1~R3,分別表示中心節(jié)點、橋梁節(jié)點、邊緣節(jié)點,每個節(jié)點都可以得到一個相應(yīng)的角色分布,按照動態(tài)網(wǎng)絡(luò)的時間時序連接得到角色分布序列,該序列可以表示網(wǎng)絡(luò)角色的某種演化趨勢,如序列<1:{R1:0,R2:0.1,R3:0.8},2:{R1:0.2,R2:0.3,R3:0.5},3:{R1:0.6,R2:0.3,R3:0.1}>可能表示網(wǎng)絡(luò)中的部分邊緣節(jié)點隨著時間的推移逐漸演變?yōu)橹行墓?jié)點的過程。然而在現(xiàn)實情況中總是會存在演化過程異常的節(jié)點,例如在社交網(wǎng)絡(luò)中,新加入的用戶粉絲較少處于網(wǎng)絡(luò)的邊緣位置,具有眾多粉絲的重要用戶往往是網(wǎng)絡(luò)的中心節(jié)點,一般來說邊緣位置的用戶需要不斷積攢人脈才能逐漸成為重要的中心用戶,因而可以用上述的序列表示這一演化過程,但若該用戶在某時刻突然發(fā)生一件重要的社會事件或是用戶故意的炒作行為,那么該節(jié)點的角色分布序列肯定會突然由邊緣節(jié)點變?yōu)橹行墓?jié)點,如可能為<1:{R1:0,R2:0.1,R3:0.8},2:{R1:0,R2:0.1,R3:0.8},3:{R1:0.8,R2:0.1,R3:0.1}>。本發(fā)明定義這種角色演化趨勢異常的節(jié)點為角色演化異常點(Role Evolving Outliers,簡寫為REOutliers)。由定義可知,REOutliers純粹基于節(jié)點的結(jié)構(gòu)角色提出,無需依賴于任何額外的網(wǎng)絡(luò)信息,而真實世界的網(wǎng)絡(luò)系統(tǒng)受限于諸多因素往往信息匱乏,因而REOutliers的挖掘很可能可以幫助揭示隱藏于動態(tài)網(wǎng)絡(luò)內(nèi)部的異常事件,這些異常點本身也應(yīng)該給予重點關(guān)注。
技術(shù)實現(xiàn)要素:
【要解決的技術(shù)問題】
本發(fā)明的目的是提供一種動態(tài)網(wǎng)絡(luò)中的異常結(jié)構(gòu)演化發(fā)現(xiàn)的方法,通過節(jié)點角色的演化情況、節(jié)點的角色分布,挖掘演化過程異常的節(jié)點REOutliers集合。
【技術(shù)方案】
本發(fā)明是通過以下技術(shù)方案實現(xiàn)的。
本發(fā)明涉及一種動態(tài)網(wǎng)絡(luò)中的異常結(jié)構(gòu)演化發(fā)現(xiàn)的方法,包括步驟:
A、給定一個動態(tài)網(wǎng)絡(luò)后,挖掘整個網(wǎng)絡(luò)中角色隨時間演化的頻繁模式;
B、通過比較節(jié)點到頻繁模式的相異程度進(jìn)行角色演化異常發(fā)現(xiàn)。
作為一種優(yōu)選的實施方式,所述步驟A具體包括步驟:
A1、對每個圖快照分別進(jìn)行角色發(fā)現(xiàn),得到各個節(jié)點的角色分布序列;
A2、根據(jù)Aprioir算法挖掘角色分布序列的頻繁模式集合,將挖掘得到的頻繁模式集合作為網(wǎng)絡(luò)的角色演化趨勢。
作為另一種優(yōu)選的實施方式,所述步驟A1中對每個圖快照分別進(jìn)行角色發(fā)現(xiàn)得到各個節(jié)點的角色分布序列的方法為:
對每個節(jié)點,首先根據(jù)其自網(wǎng)絡(luò)結(jié)構(gòu)得到基本特征,然后迭代地聚集基本特征得到遞歸特征,基本特征與遞歸特征共同構(gòu)成節(jié)點的角色分布序列。
作為另一種優(yōu)選的實施方式,所述步驟A2中根據(jù)Aprioir算法挖掘角色分布序列的方法為:
首先分別對各個時刻的角色分布序列進(jìn)行聚類,得到的所有聚類中心都作為Length-1模式,通過設(shè)計支持度篩選Length-1頻繁模式,并根據(jù)Apriori算法驗證向下封閉屬性,然后計算更長的頻繁模式。
作為另一種優(yōu)選的實施方式,所述支持度根據(jù)節(jié)點到聚類中心的距離進(jìn)行設(shè)置。
作為另一種優(yōu)選的實施方式,所述步驟B具體包括步驟:
將所有覆蓋時間點相同的頻繁模式進(jìn)行合并得到一個時間結(jié)構(gòu);
對每個時間結(jié)構(gòu)分別計算與該節(jié)點最佳匹配的頻繁模式,得到節(jié)點與所有結(jié)構(gòu)對應(yīng)的最佳匹配頻繁模式集合,然后累加節(jié)點與所有最佳匹配頻繁模式的異常程度得到最后的異常分?jǐn)?shù)。
作為另一種優(yōu)選的實施方式,所述動態(tài)網(wǎng)絡(luò)為節(jié)點集合或邊集合。
下面對本發(fā)明進(jìn)行詳細(xì)說明。
現(xiàn)實世界諸多復(fù)雜系統(tǒng)都具有動態(tài)網(wǎng)絡(luò)的特征,分析和挖掘網(wǎng)絡(luò)結(jié)構(gòu)隨時間變化的過程中出現(xiàn)的異?,F(xiàn)象有利于理解復(fù)雜系統(tǒng)的動態(tài)行為。因此,給定一個動態(tài)網(wǎng)絡(luò)的快照序列,本發(fā)明致力于研究節(jié)點角色的演化情況,研究對象是節(jié)點的角色分布,目標(biāo)是挖掘演化過程異常的節(jié)點REOutliers集合。本發(fā)明由REOutliers的定義出發(fā),提出一種基于模式的角色演化異常檢測算法(Pattern-based Role Evolving Outliers Detection,簡寫為P-EROD)。
具體地,本發(fā)明方法包括步驟:
A、給定一個動態(tài)網(wǎng)絡(luò)后,挖掘整個網(wǎng)絡(luò)中角色隨時間演化的頻繁模式;
B、通過比較節(jié)點到頻繁模式的相異程度進(jìn)行角色演化異常發(fā)現(xiàn)。
在步驟A中,具體包括兩個過程:
步驟A1、對每個圖快照分別進(jìn)行角色發(fā)現(xiàn),得到各個節(jié)點的角色分布序列。
在步驟A1中,角色是本發(fā)明的基礎(chǔ),角色發(fā)現(xiàn)的具體過程為:
步驟A1定義的問題輸入為一個動態(tài)網(wǎng)絡(luò),本發(fā)明首先定義動態(tài)網(wǎng)絡(luò)。
定義1.動態(tài)網(wǎng)絡(luò)(Dynamic Networks):設(shè)D=<N,E>表示一個動態(tài)網(wǎng)絡(luò),N=<N1,N2,…,NT>為節(jié)點集合,E=<E1,E2,…,ET>為邊集合。本發(fā)明只考慮網(wǎng)絡(luò)的結(jié)構(gòu)特征,因而D為無向圖。將D=<N,E>按時間段劃分D=<S1,S2,…,ST>,其中T表示快照個數(shù),St=<Nt,Et>表示網(wǎng)絡(luò)在t時刻的快照,Nt表示t時刻網(wǎng)絡(luò)的節(jié)點集合,Et表示邊集合,St同樣為無向圖。
角色發(fā)現(xiàn)目標(biāo)是用一系列潛在的角色來分別刻畫網(wǎng)絡(luò)中所出現(xiàn)的結(jié)構(gòu)類型。以中心節(jié)點、橋梁節(jié)點以及邊緣節(jié)點三種網(wǎng)絡(luò)結(jié)構(gòu)為例,理想的情況是可以發(fā)現(xiàn)三種角色分別對應(yīng)三種結(jié)構(gòu)。節(jié)點的角色發(fā)現(xiàn)包括特征提取與角色發(fā)現(xiàn)兩步。
特征提取目的在于用節(jié)點的基本結(jié)構(gòu)特征(如度、參加與三角形的個數(shù))來表示節(jié)點。對每個節(jié)點v,首先根據(jù)其自網(wǎng)絡(luò)結(jié)構(gòu)得到基本特征,然后迭代地聚集基本特征得到遞歸特征,基本特征與遞歸特征共同構(gòu)成節(jié)點的特征向量,特征個數(shù)由算法自動確定。
定義2.節(jié)點-特征矩陣序列V=<V1,V2,…,VT>:對St進(jìn)行以上特征提取過程可得節(jié)點-特征矩陣其中nt為t時刻的節(jié)點個數(shù),f為從St中提取的特征個數(shù)。對每個快照分別進(jìn)行特征提取,得到節(jié)點-特征矩陣序列V=<V1,V2,…,VT>。
定義3.節(jié)點-角色矩陣序列G=<G1,G2,…,GT>:給定節(jié)點-特征矩陣以及一個正整數(shù)r<min(nt,f),采用非負(fù)矩陣分解NMF(Non-negative Matrix Factorization)的方法找非負(fù)矩陣以及使得GtF≈Vt,其中r為角色個數(shù),為一個節(jié)點-角色矩陣。依然以中心節(jié)點、橋梁節(jié)點以及邊緣節(jié)點三種網(wǎng)絡(luò)結(jié)構(gòu)為例,有r=3,Gt的第n行為節(jié)點n在t時刻的角色分布,例如{R1:0.1,R2:0.1,R3:0.8}。由V=<V1,V2,…,VT>可以得到全部節(jié)點-角色矩陣序列G=<G1,G2,…,GT>。
得到節(jié)點-角色矩陣以后,可以將最大取值的角色作為節(jié)點的角色而直接忽略其他所有角色的取值。如可以將前面給出邊緣節(jié)點的角色序列<1:{R1:0.1,R2:0.1,R3:0.8},2:{R1:0.2,R2:0.3,R3:0.5},3:{R1:0.6,R2:0.3,R3:0.1}>直接表示為<1:{R3},2:{R3},3:{R1}>為{R1:0.1,R2:0.1,R3:0.8}。這樣做雖然可以實現(xiàn)一定程度的簡化,但會導(dǎo)致無法展示節(jié)點角色真實變化過程,顯然精簡以后的角色序列無法反映邊緣節(jié)點向中心節(jié)點演化的細(xì)節(jié)。因此本發(fā)明保留了完整的角色分布,將節(jié)點的角色看成一種軟的概率分布,所有角色共同表示節(jié)點的結(jié)構(gòu)。
步驟A2、根據(jù)Aprioir算法的思想挖掘角色分布序列的頻繁模式集合P,作為網(wǎng)絡(luò)的角色演化趨勢。
在步驟A2中,獲得節(jié)點-角色矩陣序列G=<G1,G2,…,GT>后,首先分別對t時刻的節(jié)點-角色矩陣Gt進(jìn)行聚類,得到的所有聚類中心都作為Length-1模式(類似頻繁模式挖掘中的項目),通過設(shè)計支持度篩選Length-1頻繁模式,接下來根據(jù)文獻(xiàn)1(Han J,Kamber M,Pei J.Data mining:concepts and techniques[M].Morgan kaufmann,2006.)中的Apriori算法驗證向下封閉屬性,然后計算更長的頻繁模式。接下來本節(jié)詳細(xì)描述模式挖掘過程以及支持度的設(shè)計。
定義4.Length-1模式分別對Gt采用文獻(xiàn)2(Ruhnau B.Eigenvector-centrality—a node-centrality[J].Social networks,2000,22(4):357-365.)的Xmeans方法進(jìn)行聚類,該方法不需要事先給定聚類個數(shù),更適合本發(fā)明需要。得到的聚類中心仍然是在各個角色上取值的概率序列,所有時間點上的聚類中心都是Length-1模式。
例如,若在時間點1上得到2個聚類中心,用<1:1>、<1:2>表示,在時間點2上同樣得到2個聚類中心,用<2:1>、<2:2>表示,則<1:1>、<1:2>、<2:1>、<2:2>都是length-1模式。
定義5.Length-1模式支持度:與傳統(tǒng)頻繁模式挖掘中的支持度定義類似,令表示Length-1模式(即t時刻的某個聚類中心),表示t時刻節(jié)點n的角色概率分布向量與聚類中心的距離(本發(fā)明使用歐式距離),表示t時刻所有節(jié)點到的最大距離,則有Length-1模式的支持度如式(1)所示:
通過分析證明支持度定義的合理性:(1)與該越接近的節(jié)點對其支持度貢獻(xiàn)越大;(2)與接近的節(jié)點越多,支持度越大;(3)
定義6.Length-k(k>1)模式支持度(p):Length-k模式p實際是k個聚類中心組成的序列,每個聚類中心對應(yīng)一個快照,如模式p=<1:1,2:1,3:1>就是一個Length-3模式,由3個聚類中心<1:1>、<2:1>、<3:1>構(gòu)成。若設(shè)Tp為模式p覆蓋的時間點集合,為在t時刻p的聚類中心,則有Length-k模式p的支持度如式(2)所示:
通過分析證明其合理性:
(1)在越多時間點上與p對應(yīng)的聚類中心接近的節(jié)點,對p的支持度貢獻(xiàn)越大;(2)包含(1)中節(jié)點數(shù)目越多的模式,支持度越大;(3)
證明1.向下封閉屬性:向下封閉屬性是指,如果Length-k模式p滿足最小支持度,即頻繁模式,那么所有的非空子模式都必須滿足最小支持度。如對Length-3模式p=<1:1,2:1,3:1>,p有6個非空子模式<1:1,2:1>、<2:1,3:1>、<1:1,3:1>、<1:1>、<2:1>、<3:1>。由于式(2)在計算模式支持度時需要根據(jù)時間點集合依次累乘單個Length-1模式支持度,而p的子模式所覆蓋的時間點個數(shù)均小于p所覆蓋的時間點個數(shù),且任意Length-1模式有由此可知以上支持度定義滿足向下封閉屬性。
由Apriori算法可得更長模式的挖掘方法。設(shè)p1,p2為兩個Length-L頻繁模式,若有p1除去第一個時間點后的結(jié)果,恰好與p2除去最后一個時間點的結(jié)果相同,則可以得到合并p1、p2得到一個Length-(L+1)模式。例:p1,p2為<1:1,2:3,3:2>,p2為<2:3,3:2,5:6>,可得到一個Length-4的候選模式<1:1,2:3,3:2,5:6>。
步驟B、通過比較節(jié)點到頻繁模式的相異程度進(jìn)行角色演化異常發(fā)現(xiàn)。
在步驟B中,將討論如何根據(jù)前面得到的頻繁模式集合P,定義節(jié)點的異常分?jǐn)?shù)值,找出角色演化異常REOutliers。由于Length-1頻繁模式只是單個快照上的某聚類中心,無法刻畫“趨勢’,因此本發(fā)明將所有Length-1頻繁模式從P中移除。
根據(jù)頻繁模式集合P來求解REOutliers集合,有兩個比較樸素的方法:(1)設(shè)計節(jié)點到頻繁模式的差異度量,累加節(jié)點到每個頻繁模式之間的異常值累加作為異常分?jǐn)?shù);(2)只考慮覆蓋時間點個數(shù)最多,即最長的頻繁模式,計算節(jié)點到最長頻繁模式的異常值作為異常分?jǐn)?shù)。然而兩種方法均不合理:(1)節(jié)點可能只會很好地匹配某一個頻繁模式而偏離了所有其他模式,這會導(dǎo)致正常節(jié)點的離群分?jǐn)?shù)偏高;(2)只考慮了較長的模式對REOutliers發(fā)現(xiàn)問題的影響而忽略了短的模式,事實上在真實動態(tài)網(wǎng)絡(luò)中,挖掘得到的長模式是很少的,短模式才更為普遍。
定義7.結(jié)構(gòu)(Configuration):結(jié)構(gòu)就是一系列時間點的集合,將所有覆蓋時間點相同的頻繁模式進(jìn)行合并得到一個時間結(jié)構(gòu)。如模式p1=<1:1,2:2>與p2=<1:2,2:2>,對應(yīng)同一個時間結(jié)構(gòu)c=<1,2>。合并集合P中所有相同時間點的頻繁模式,得到結(jié)構(gòu)集合C。
結(jié)構(gòu)的概念可以解決上述兩種方法的問題。每個c∈C都對應(yīng)若干具有相同時間點的頻繁模式,在計算每個節(jié)點的異常分?jǐn)?shù)時,可以首先對每個結(jié)構(gòu)c分別計算與該節(jié)點最佳匹配的頻繁模式,得到節(jié)點與所有結(jié)構(gòu)對應(yīng)的最佳匹配頻繁模式集合然后累加節(jié)點與中所有模式的異常程度得到最后的異常分?jǐn)?shù)。下面給出節(jié)點與模式的匹配分?jǐn)?shù)定義。
定義8.節(jié)點n與模式p的匹配分?jǐn)?shù):將頻繁模式p所覆蓋的時間點集合TP劃分為和θpn兩部分,表示模式p與節(jié)點n相匹配的時間點集合,θpn表示模式p與節(jié)點n不匹配的時間點集合,有例如,有頻繁模式p=<1:1,2:1,3:2>,Tp={1,2,3},若節(jié)點n在前三個時間點上所屬的聚類中心均為第1個,則有θpn={3}。
則有節(jié)點n與模式p的匹配分?jǐn)?shù)定義如下:
直觀上:(1)節(jié)點n與模式p匹配的時間點個數(shù)越多,則匹配分?jǐn)?shù)越高;(2)與n匹配的聚類中心越重要(支持度越高),則匹配分?jǐn)?shù)越高;(3)與n匹配的聚類中心所表示的聚類越緊湊(平均聚類越小),匹配分?jǐn)?shù)越高。
定義9.節(jié)點n與最佳匹配頻繁模式pc的差異分?jǐn)?shù):直觀上,應(yīng)該只考慮n與pc不匹配的時間點,且節(jié)點n在這些不匹配的時間點上與相應(yīng)聚類中心記錄越遠(yuǎn),差異值越高。同樣也應(yīng)該根據(jù)模式pc的支持度進(jìn)行加權(quán)。因而可得節(jié)點最終的異常分?jǐn)?shù)如式(4)所示:
定義10.節(jié)點異常分?jǐn)?shù):根據(jù)pc求得每個節(jié)點到每個pc的異常分?jǐn)?shù),繼而可以進(jìn)一步由式(5)得到節(jié)點n的最終異常分?jǐn)?shù)表示:
本發(fā)明的REOutliers檢測算法P-REOD可以抽象如下所示:
Algorithm 1:Pattern-based Role Evolving Outliers Detection Frame(P-REOD)
輸入:The dynamic network D=<S1,S2,…,ST>
輸出:Top-K REOutliers Set
r:#roles minSup:the threshold of the support
步驟:
1.Input(D)
2.V=<V1,V2,…,VT>←Feature Extract(D)
3.G=<G1,G2,…,GT>←Role Discover(V,r)
4.P←PatternMining(G,minSup)
5.C←Configuration Mining(P)
6.For each configuration c∈C
7.For each n∈N
8.pc←FindBestMatchingPattern(c,n)using(3)
9.S←Compute the outlierScore for node n using(4)and(5)
10.endForendFor
11.Output(Top-K REOutliers in S)
其中,P-REOD中的PatternMining算法實現(xiàn)如Algorithm 2所示:
Algorithm 2:PatternMining
輸入:The role-role matixes sequence
輸出:Frequent patterns set P
minSup:the threshold of the support
步驟:
1.Frequent patterns set
2.Let Ck be the set of length-k candidate patterns,
3.C1←all the clusters in each timestamps,
4.Let Lk be the set of length-k frequent patterns,
5.L2←{f|f∈C1andsup(f)≥minSup},
6.For k=2to T
7.Ck←getCandidates(Lk-1)
8.Lk←{f|f∈Ckandsup(f)≥minSup}
9.P←P∪Lk
10.endFor
由以上算法可知,有兩個重要參數(shù):角色個數(shù)r以及最小支持度閾值minSup。角色個數(shù)r決定著對網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)類型分類的個數(shù),較大的r取值可以將節(jié)點結(jié)構(gòu)類型刻畫更細(xì)致,但會讓模型變得復(fù)雜而帶來較大開銷;太小的r雖然可以精簡模型但卻降低了結(jié)構(gòu)類型之間的區(qū)分度。本發(fā)明采用最短描述長度驗證了r的取值問題,發(fā)現(xiàn)r取值為3或者4時最佳。本發(fā)明同樣角色個數(shù)為4。
最小支持度閾值minSup則決定了最終頻繁模式的個數(shù)。給定動態(tài)網(wǎng)絡(luò)數(shù)據(jù)集,太高的minSup取值可能使某些實際頻繁出現(xiàn)的模式無法被挖掘,繼而導(dǎo)致一些異常點無法被挖掘到,甚至?xí)霈F(xiàn)某些節(jié)點找不到最匹配模式而異常值為0的情況。太小的minSup卻可能導(dǎo)致得到的某些頻繁模式并不能表示數(shù)據(jù)中的重要趨勢,同樣影響最后結(jié)果。本發(fā)明分別取不同minSup值多次實驗,以全部節(jié)點都能得到非零異常值為基準(zhǔn)選定minSup。
【有益效果】
本發(fā)明提出的技術(shù)方案具有以下有益效果:
(1)本發(fā)明首次提出角色演化異常點(REOutliers)的概念,即角色演化過程違背網(wǎng)絡(luò)整體角色演化趨勢的節(jié)點。該異常點純粹基于節(jié)點的結(jié)構(gòu)角色提出,無需依賴于任何額外的網(wǎng)絡(luò)信息,挖掘這樣的節(jié)點可以幫助揭示隱藏于網(wǎng)絡(luò)中的異常事件,這對于研究普遍缺乏足夠信息的真實世界網(wǎng)絡(luò)系統(tǒng)具有重要的意義。
(2)根據(jù)REOutliers的定義,本發(fā)明提出一種基于模式的REOutliers檢測方法,簡寫為P-REOD。該方法將角色演化異常發(fā)現(xiàn)分為模式提取和異常檢測兩部分,首先根據(jù)Aprioir算法計算所有節(jié)點在角色演化過程出現(xiàn)的頻繁模式作為整個網(wǎng)絡(luò)的趨勢,然后根據(jù)得到的網(wǎng)絡(luò)趨勢檢測REOutliers。
(3)本發(fā)明分別在三個真實數(shù)據(jù)集(Enron、Facebook、DBLP)上進(jìn)行實驗,對得到的REOutliers做出了合理的解釋和分析。
附圖說明
圖1是本發(fā)明實施例一提供的動態(tài)網(wǎng)絡(luò)中的異常結(jié)構(gòu)演化發(fā)現(xiàn)的方法的流程圖。
具體實施方式
為使本發(fā)明的目的、技術(shù)方案和優(yōu)點更加清楚,下面將對本發(fā)明的具體實施方式進(jìn)行清楚、完整的描述。
實施例一
圖1為本發(fā)明實施例一提供的動態(tài)網(wǎng)絡(luò)中的異常結(jié)構(gòu)演化發(fā)現(xiàn)的方法的流程圖。如圖1所示,該方法包括步驟S1~S2,以下步驟中的詳細(xì)過程可以參考說明書中的內(nèi)容。
步驟S1、給定一個動態(tài)網(wǎng)絡(luò)后,挖掘整個網(wǎng)絡(luò)中角色隨時間演化的頻繁模式.
步驟S2、通過比較節(jié)點到頻繁模式的相異程度進(jìn)行角色演化異常發(fā)現(xiàn)。
下面分別對步驟S1和步驟S2進(jìn)行詳細(xì)說明。
步驟S1具體包括步驟:
對每個圖快照分別進(jìn)行角色發(fā)現(xiàn),得到各個節(jié)點的角色分布序列。其中對每個圖快照分別進(jìn)行角色發(fā)現(xiàn)得到各個節(jié)點的角色分布序列的方法為:
對每個節(jié)點,首先根據(jù)其自網(wǎng)絡(luò)結(jié)構(gòu)得到基本特征,然后迭代地聚集基本特征得到遞歸特征,基本特征與遞歸特征共同構(gòu)成節(jié)點的角色分布序列。
根據(jù)Aprioir算法挖掘角色分布序列的頻繁模式集合,將挖掘得到的頻繁模式集合作為網(wǎng)絡(luò)的角色演化趨勢。其中根據(jù)Aprioir算法挖掘角色分布序列的方法為:
首先分別對各個時刻的角色分布序列進(jìn)行聚類,得到的所有聚類中心都作為Length-1模式,通過設(shè)計支持度篩選Length-1頻繁模式,并根據(jù)Apriori算法驗證向下封閉屬性,然后計算更長的頻繁模式。
從以上實施例可以看出,本發(fā)明實施例將角色演化異常發(fā)現(xiàn)分為模式提取和異常檢測兩部分,首先根據(jù)Aprioir算法的思想計算所有節(jié)點在角色演化過程出現(xiàn)的頻繁模式作為整個網(wǎng)絡(luò)的趨勢,然后根據(jù)得到的網(wǎng)絡(luò)趨勢檢測REOutliers。
需要說明,上述描述的實施例是本發(fā)明的一部分實施例,而不是全部實施例,也不是對本發(fā)明的限制。基于本發(fā)明的實施例,本領(lǐng)域普通技術(shù)人員在不付出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明的保護(hù)范圍。
下面將實施例一的方法進(jìn)行實驗分析。
實驗分析
在實驗分析部分,主要對P-REOD算法在真實數(shù)據(jù)集上進(jìn)行實驗的結(jié)果,以及有效性分析,具體包括以下過程:
1、數(shù)據(jù)集描述&特征提取
本發(fā)明分別在規(guī)模不同的三個數(shù)據(jù)集上進(jìn)行了實驗,簡單描述如下:
(1)Enron:美國安然公司員工的郵件網(wǎng)絡(luò)。安然公司曾經(jīng)是美國享負(fù)盛名的能源公司,但在2001年間突然破產(chǎn),因而引起眾多研究學(xué)者的興趣。本發(fā)明特選取2001年1月~12月的數(shù)據(jù)構(gòu)建動態(tài)網(wǎng)絡(luò)進(jìn)行分析,每月為一個網(wǎng)絡(luò)快照,其中節(jié)點表示員工,邊表示員工之間的郵件往來。
(2)Facebook-wall(簡稱Facebook):Facebook的用戶墻數(shù)據(jù),每個用戶有自己的墻,其他用戶可以在墻上留言。本發(fā)明選取2008年1月~12月的數(shù)據(jù),每月為一個快照,其中網(wǎng)絡(luò)的節(jié)點表示一個Facebook用戶,邊表示用戶之間的留言關(guān)系。
(3)DBLP:科研合作者網(wǎng)絡(luò),共同發(fā)表論文的作者具有合作關(guān)系。本發(fā)明選取2002年~2011年共10年的數(shù)據(jù)構(gòu)建動態(tài)網(wǎng)絡(luò),每年為一個快照,網(wǎng)絡(luò)節(jié)點表示作者,邊表示作者之間的合作關(guān)系。去除發(fā)表論文總數(shù)小于10篇論文的作者。
實驗發(fā)現(xiàn)對動態(tài)網(wǎng)絡(luò)劃分后的各個快照包含的節(jié)點數(shù)目并不相同,即存在中途出現(xiàn)或消失的節(jié)點,這些節(jié)點由于能匹配的模式太少很可能成為最后的異常點。為了分析需要,本發(fā)明保留了完整的網(wǎng)絡(luò)結(jié)構(gòu),但在計算異常點時只考慮一直存在于網(wǎng)絡(luò)中的節(jié)點集合。三個數(shù)據(jù)集中一直存在的節(jié)點集合大小分別為2114、5111、29747.數(shù)據(jù)集的詳細(xì)信息見表1。
本發(fā)明采用時間衰減的方法計算邊的權(quán)重,即在計算兩個節(jié)點當(dāng)前時刻的權(quán)重時,同時考慮所有歷史時刻的權(quán)重,認(rèn)為離當(dāng)前時刻越遠(yuǎn)影響越小,見式(6)。其中wi表示ti時刻節(jié)點a和b之間關(guān)系的權(quán)重,設(shè)定權(quán)重閾值為w*,過濾所有權(quán)重小于w*的邊。本發(fā)明取λ=1,w*=0.1,
對三個數(shù)據(jù)集分別進(jìn)行特征提取操作,得到節(jié)點特征矩陣,V=<V1,V2,…,VT>,提取的特征個數(shù)無需人工給定,網(wǎng)絡(luò)規(guī)模越大提取的特征數(shù)目越多。
表1 數(shù)據(jù)集詳細(xì)信息
2、角色抽取與角色解釋
雖然文獻(xiàn)3(K.Henderson,B.Gallagher,L.Li,L.Akoglu,T.Eliassi-Rad,H.Tong,and C.Faloutsos.RolX:Role Extraction and Mining in Large Networks.In KDD,2012.)已經(jīng)對角色的合理性做出了有力的解釋和證明,但為了更好地解釋本發(fā)明的REOutlier,本實驗首先擴(kuò)展了文獻(xiàn)3的方法,以Enron數(shù)據(jù)集為例對角色做出解釋(其他兩個數(shù)據(jù)集類似)。選取角色個數(shù)r為4,對Enron數(shù)據(jù)集2001年12個月對應(yīng)的快照分別進(jìn)行角色抽取可以得到節(jié)點角色矩陣G=<G1,G2,…,GT>,其中每一列對應(yīng)一種角色。
為合理解釋得到的4種角色,本發(fā)明擴(kuò)展了文獻(xiàn)3中用常見的節(jié)點度量解釋角色的方法,選用了6種常見度量(節(jié)點的度、帶權(quán)度、介數(shù)、特征向量中心性、帶權(quán)特征向量中心性以及PR值)。首先計算節(jié)點在t時刻6種度量值可得到節(jié)點度量矩陣其中m為度量個數(shù)(本發(fā)明實施例一設(shè)置為6)。然后再次使用非負(fù)矩陣分解求矩陣使得GtEt≈Mt,其中Gt依然為t時刻的節(jié)點角色矩陣。矩陣Et的每一行對應(yīng)一種角色,分別對應(yīng)該角色在6種度量上的取值。根據(jù)以上方法計算Enron數(shù)據(jù)集的角色度量矩陣得到E=<E1,E2,…,ET>,求平均后得到4種角色的平均值,結(jié)果表明4種角色都有各自的明顯特征:R1在6種度量上具有較大取值,R2只在特征向量中心性度量上取值不為0,R3在6種度量上的取值均接近于,R4則均等于0。
3、REOutliers分析
由于缺乏具體應(yīng)用的背景知識,對REOutliers的評估變得較為困難。為了說明本發(fā)明算法的有效性,本發(fā)明首先計算了所有節(jié)點角色分布的平均值作為衡量,然后選取異常分?jǐn)?shù)最大和最小的節(jié)點進(jìn)行對比分析。下面依然以Enron數(shù)據(jù)集為主分析本發(fā)明算法的合理性。
4、Enron數(shù)據(jù)集
選擇minSup為0.1共得到5511個頻繁模式,合并相同時間點的模式得到結(jié)構(gòu)555個。本發(fā)明選取異常分?jǐn)?shù)最大的兩個節(jié)點(17172號以及29659號節(jié)點)進(jìn)行分析,計算所有節(jié)點角色取值的全局平均以及異常值最低的節(jié)點作為對比,分別繪制角色演化圖。通過分析可知,17172與29659兩個節(jié)點的結(jié)構(gòu)角色在2001年12個月的演化過程當(dāng)中確實發(fā)生了異常情況。
由上述內(nèi)容可知,該數(shù)據(jù)集的四種角色R1~R4分別表示中心節(jié)點、具有重要直接鄰居節(jié)點、一般節(jié)點與邊緣節(jié)點四種,因而可以以此為依據(jù)繼續(xù)分析所得異常點的異常結(jié)構(gòu)變化情況。以17172號節(jié)點為例,分析得到該節(jié)點的結(jié)構(gòu)在6月份發(fā)現(xiàn)了一次異常,在6月以前該節(jié)點一直屬于網(wǎng)絡(luò)的中心節(jié)點,6月份突然變?yōu)榫哂兄匾従拥墓?jié)點,在8月份以后則變?yōu)檫吘壒?jié)點。為了進(jìn)一步驗證17172號節(jié)點的異常結(jié)構(gòu)變化,進(jìn)一步分析得到,節(jié)點17172在5月確實是一個處于中心位置的節(jié)點,在6月份時候突然變?yōu)橹挥幸粋€直接鄰居即節(jié)點3286,分析得到節(jié)點3286在6月份時是一個極為重要的節(jié)點,因而驗證了上述分析。事實上安然公司在2001年6~8月確實發(fā)生了更換CEO等異常事件,這也從另一方面證實了本發(fā)明異常點的合理性。
5、Facebook & DBLP數(shù)據(jù)集
在Facebook以及DBLP數(shù)據(jù)集上選取minSup均為0.11,分別得到頻繁模式為6286、4723個,依然選取異常值最高的節(jié)點進(jìn)行分析,以節(jié)點角色的全局平均值和異常值最低節(jié)點作為對對比,繪制節(jié)點角色演化圖。由角色演化圖可知,相比全局平局以及異常值最低的節(jié)點,P-REOD算法得到的異常點確實存在明顯的異常情況。
綜合以上所述,本發(fā)明實施例一所提角色演化異常點能夠刻畫動態(tài)網(wǎng)絡(luò)數(shù)據(jù)集中節(jié)點結(jié)構(gòu)發(fā)生異常的節(jié)點以及發(fā)生異常的時刻,挖掘這樣的異常節(jié)點可以幫助發(fā)現(xiàn)數(shù)據(jù)中隱藏的事件以及特殊節(jié)點,若可以獲得足夠的節(jié)點信息,則可以進(jìn)一步幫助做出決策。