本發(fā)明涉及計算機數據處理領域,具體涉及一種增量并行式動態(tài)圖的結構異常檢測方法。
背景技術:
圖的異常結構檢測可以發(fā)現金融欺詐行為、網絡入侵和可疑的社交行為。
很多應用領域中數據之間的復雜關系均可以通過圖直觀地表現出來,例如互聯網、社交網絡和生物領域。這些真實應用中的圖數據通常是大規(guī)模的,并且隨著時間推進數據量不斷增加。例如,在社交媒體(博客、微博和微信)和信息共享平臺(youtube和flicker)中,用戶之間持續(xù)的社交行為會產生大量的、持續(xù)的、相互交互的數據,而這些交互可以自然地使用動態(tài)圖來表示——結點表示人、物體或其他實體,邊表示實體之間的聯系。
傳統(tǒng)的算法很難有效對上述大規(guī)模動態(tài)圖進行有效地分析和挖掘。首先,由于圖的規(guī)模龐大,導致圖在計算上的時間過長;其次,我們往往不能獲取圖的全部數據,而只能獲取數據的一部分。例如社交網絡圖,我們通常只能通過爬蟲抓取獲得部分數據。另外,即使有的圖規(guī)模略小一些,但是計算某些圖的重要的度量值需要的處理時間非常長(例如生物細胞科學的實驗)。因此,需要采用并行處理的技術提高圖的處理能力。
目前大部分的研究聚焦在基于圖的數據關系結構分析。目前圖挖掘方法針對特定的數據集處理一類特定的圖,或者把一種具體的圖算法應用到不同的領域。但是,這些算法都不能很好地解決圖挖掘的擴展性問題,尤其是大規(guī)模動態(tài)圖的異常檢測問題。例如facebook擁有8億用戶,用戶每分鐘發(fā)表50萬條評論,超過29萬條狀態(tài)更新。這樣的包含上億結點、每分鐘產生幾十萬邊的圖的分析和異常檢測問題都沒有得到很好的解決。異常行為通常模仿正常的行為模式,所以越接近于正常模式的異常,越難以分辨。因此我們把與正常模式相似的近似模式稱為異常模式。例如在金融領域檢測洗錢行為時,洗錢行為通過模仿正常的金融交易行為逃避檢測,行為模式越像正常的模式,它們越不容易被察覺,越容易蒙混過關。在基于圖的表示中,異常模式通常在正常模式上進行修改,例如添加邊和結點、刪除邊和結點或修改結點屬性信息。目前基于圖的異常檢測稱為gbad(graphbasedanomalydetection),使用一種基于最小描述長度的壓縮方法來尋找正常模式,然后分析與正常模式相近的模式,并計算其異常值,最后判斷這些相近的模式是否為異常模式。雖然這個方法在很多領域被廣泛應用,但是算法的可擴展性問題,尤其是處理百萬級結點的圖的算法效率問題沒有得到很好地解決。大規(guī)模圖隨著時間不斷演化,這也加劇了分析的困難——正常模式隨著時間或者事件觸發(fā)也會發(fā)生變化。也有的算法把gbad并行化,但是它解決的是大規(guī)模增量圖(即圖的邊和結點隨時間不斷增加)的處理,沒有考慮到大規(guī)模動態(tài)圖(圖的邊和結點隨時間不僅增加而且現有的邊和結點不斷刪除)的分析處理。
作為早期的圖異常檢測的研究,cook和nobel在圖上把異常定義為結構的異常。例如在基于正常模式的圖壓縮之后,余下的結構被認為是異常的。akoglu在最近的研究中也處理了大規(guī)模圖的異常檢測問題,但是他們的目標是檢測異常的結點。以上的兩個研究都認為圖是靜態(tài)的。
一種解決大規(guī)模圖的方法是把圖看做邊的數據流,每次處理圖的一個或者多個邊。以前的工作在異常檢測領域提出一些不同的方法來處理圖的邊數據流。其中一種被稱為“semi-streamingmodel”的方法,可以處理不能把所有邊存儲到內存的大規(guī)模圖。例如,feigenbaum等人的工作提出了semi-streaming常量近似算法,來處理無權重和帶權重圖的匹配問題,同時也擴展應用到二分圖。通過考慮semi-streaming模型中經典的圖問題,他們證明了近似方法解決這些問題的有效性。其它的研究則把此方法擴展,來解決不同的圖問題,例如有向圖的最短路徑問題、使用中間的臨時流來解決特定問題等??傊?,這些方法分析可用的內存和訪問整個圖所需訪問硬盤的次數之間的關系,并根據實際情況進行取舍。
其他方法對大規(guī)模圖進行聚類,使用從圖數據流中創(chuàng)建哈希壓縮微簇的技術。在處理大規(guī)模存儲在硬盤上的圖的問題時,將壓縮的微簇設計成基于散列的壓縮,把邊映射到更小的空間。還有一些研究嘗試挖掘動態(tài)圖的頻繁閉合子圖。一種方法稱為adagraphminer,它僅僅維護當前的頻繁閉合子圖,使用具有理論保證的估算技術。實驗驗證了此方法在癌癥的化學分子結構圖的邊數據流的有效性。另外,最近有些研究人員嘗試處理大規(guī)模網絡的稀疏問題,通過動態(tài)切分網絡處理大規(guī)模數據集。有的方法使用reservoirsampling技術壓縮數據流,得到圖的結構概要。這類異常檢測識別不尋常的橋接邊,或連接兩個極少同時出現的子圖的邊。
有些方法檢測圖數據流中的異常,他們的目標是通過分析邊數的統(tǒng)計信息識別異常的子圖簇,而不是發(fā)現圖或圖數據流中結構的異常。另外,一些方法嘗試使用基于整個圖的方法來發(fā)現異常子圖,這類方法沒有解決可擴展性問題。
另外,大多數異常檢測方法使用監(jiān)督的學習方法,需要數據提前打好標簽、做好分類,然后再訓練模型,進行預測。而實際情況是大多數時候不能提前知道異常或者正常的相關信息,從而需要一種無監(jiān)督的方法來檢測那些看起來像正常、合法的模式但實際上結構不同的異常模式。
技術實現要素:
為解決現有技術的不足,本發(fā)明提供了一種增量并行式動態(tài)圖的結構異常檢測方法(簡稱dpads算法),包括如下步驟:
初始化階段:
s1:將所有待處理的圖數據劃分為n*x個子圖;
s2:并行處理第一個子圖集中的n個子圖,也即第1-第n個子圖,每個子圖發(fā)現若干個正常模式;
s3:根據發(fā)現的若干個正常模式判定基準模式;
s4:根據基準模式發(fā)現前n個子圖中每個子圖的可能異常子結構;
s5:從各可能異常子結構中找出最可能的異常子結構,作為最后確定的異常子結構;
迭代處理階段:
s6:將剛剛處理完的子圖集直接增加一個子圖;或舍棄第一個子圖,并按順序向后增加一個子圖,形成一個新的子圖集;
s7:判斷是否需要重新生成正常模式,如果需要,則根據與初始化階段(步驟s2-s5)相同的方法判定新的子圖集中的異常子結構;如果不需要,則根據步驟s8-s10的方法判定新的子圖集中的異常子結構;
s8:從步驟s6中新增加的子圖中分別找出若干個正常模式,并與此輪子圖集中其它子圖的正常模式整合出此輪子圖集的基準模式;
s9:若步驟s8中的基準模式與步驟s6中剛剛處理完的子圖集的基準模式相同,則根據相同的基準模式找到新增加的一個或兩個子圖中的可能異常子結構,并結合此輪子圖集中其它子圖的可能異常子結構找到此輪子圖集中的異常子結構;
s10:若步驟s8中的基準模式與步驟s6中剛剛處理完的子圖集的基準模式不同,則根據步驟s8中基準模式找到此輪子圖集中所有子圖的可能異常子結構,并從所有子圖的可能異常子結構中找到異常子結構;
s11:重復步驟s6-s10,直到處理完最后一個子圖。
其中,所述步驟s2及步驟s8中,正常模式的判定方法為最小描述長度方法,以最小化以下目標函數找到正常模式:
minm(s,g)=min{dl(g|s)+dl(s)}
其中,g表示所處理的子圖,s為正常模式,dl(g|s)為使用正常模式s壓縮后的子圖g的描述長度,dl(s)為正常模式s的描述長度。
其中,所述步驟s4及步驟s9-步驟s10中,所述可能異常子結構的判定方法為:
0<d(sa,e)<td,且0≤p(sa|e,g)≤tp≤1
其中,d(sa,e)為可能異常子結構sa與基準模式e的差異值,td為人為設定的可能異常子結構sa與基準模式e的最大差異,p(sa|e,g)表示子圖g在基準模式e的壓縮下,可能異常子結構sa為異常子結構的概率,其值由貝葉斯公式計算而得,tp為人為設定的可能異常子結構sa為異常子結構最大概率。
其中,所述步驟s5及步驟s9-步驟s10中,所述異常子結構的判定方法為:通過下述公式,找到取值最低的若干個可能異常子結構,作為異常子結構:
score=d(sa,e)*p(sa|e,g)。
其中,所述步驟s6中,若剛剛處理完的子圖集中的子圖個數等于閾值,則將剛剛處理完的子圖集舍棄第一個子圖,并按順序向后增加一個子圖,形成一個新的子圖集;若剛剛處理完的子圖集中的子圖個數小于閾值,則將剛剛處理完的子圖按順序向后增加一個子圖,形成一個新的子圖集。
其中,所述步驟s7中,需要重新生成正常模式的判斷標準為:步驟s6中,新的子圖集中出現了移除邊的情況,且d(sdel,e)≥β/(1+ε)2
其中,β和ε均為人為設定的參數,sdel為包括移除邊數據節(jié)點的正常模式。
本發(fā)明提供的增量并行式動態(tài)圖的結構異常檢測方法,具有可擴展性,能處理動態(tài)圖數據流,運行時間比基于靜態(tài)圖的異常檢測方法降低了一個數量級。在真實網絡安全威脅場景和真實的數據集中,通過使用滑動窗口(時間或者邊的數量)對大規(guī)模圖和圖流數據進行劃分,并行處理所劃分的子圖。
附圖說明
圖1:本發(fā)明的第一實施例的增量并行式動態(tài)圖的結構異常檢測方法檢測流程圖;
圖2:本發(fā)明的第二實施例的增量并行式動態(tài)圖的結構異常檢測方法檢測流程圖;
圖3:本發(fā)明提供的檢測方法的總體運行時間示意圖;
圖4:本發(fā)明的某一檢驗結果中子圖運行時間及異常子結構標注示意圖;
圖5:本發(fā)明提供的檢測方法的準確率和召回率示意圖。
具體實施方式
為了對本發(fā)明的技術方案及有益效果有更進一步的了解,下面配合附圖詳細說明本發(fā)明的技術方案及其產生的有益效果。
本發(fā)明提供的增量并行式動態(tài)圖的結構異常檢測方法,將靜態(tài)圖的異常檢測方法擴展到大規(guī)模動態(tài)圖的異常檢測中。本發(fā)明中,定義了三種基本類型圖的異常:添加、修改和刪除異常。添加異常是正常模式增加了結點或邊。修改異常包含了一個結點或邊的不同標簽。刪除異常的子結構比正常子結構缺少了邊或結點。
增量并行式動態(tài)圖的結構異常檢測方法檢測圖的異常是基于這樣的思想:異常的子結構(或子圖)是正常模式的結構變種(正常模式邊和節(jié)點的增加或者缺失)。我們假設d(g1,g2)表示兩個圖g1和g2之間的結構差異度量,通過計算把圖g1轉化為g2的同構圖的計算量(添加、刪除點與改變一個結點、邊的標簽的變化數量),衡量g1和g2之間的差異。
為了方便理解本發(fā)明的技術方案,現將本發(fā)明所用到的定義解釋如下:
一、最小描述長度原理
在圖g中,正常模式s可由最小描述長度原理(minimumdescriptionlength,mdl)來判定,并最小化以下目標函數:
minm(s,g)=min{dl(g|s)+dl(s)}
其中,g表示所處理的子圖,s為正常模式,dl(g|s)為使用正常模式s壓縮后的子圖g的描述長度,dl(s)為正常模式s的描述長度。
最小描述長度的原則即要求模型的總描述長度最小,正常模式s檢測的mdl原則具有兩個重要的性質:
1、當有兩個模式都能很好地匹配圖g時,mdl原則選擇“最簡單”的模式,即它選擇壓縮率更高的描述,這也反映了奧卡姆剃刀對簡單理論的優(yōu)先選擇。
2、mdl原則是一致的,隨著數據量的不斷增加,它收斂于真正的正常模式。
二、兩個圖g1和g2之間的結構差異度量d(g1,g2)
d(g1,g2)表示把圖g1轉化為g2的同構圖的計算量(添加、刪除點與改變一個結點、邊的標簽的變化數量。如果兩個圖同構,則d(g1,g2)=o。
本發(fā)明提供的增量并行式動態(tài)圖的異常檢測方法,包括初始化階段和迭代處理階段,具體步驟如下:
初始化階段:
s1:將所有待處理的圖數據劃分為n*x個子圖;
s2:并行處理第一個子圖集中的n個子圖,也即第1-第n個子圖,每個子圖發(fā)現若干個正常模式;正常模式的判定方法為最小描述長度方法,其判斷原則已介紹如上,本發(fā)明中,可以人為設定各個子圖的正常模式的數量,如若設為一個,則找出描述長度最小的值對應的正常模式;如若設為兩個,則找出描述長度最小及次小的值對應的正常模式,依次類推;
s3:由于各子圖對應的正常模式可能存在同構,因此需要將發(fā)現的若干個正常模式整合,以判定基準模式;
s4:根據基準模式發(fā)現前n個子圖中每個子圖的可能異常子結構;
s5:從各可能異常子結構中找出最可能的異常子結構,作為最后確定的異常子結構;因此,本發(fā)明中,找到一些基準模式和與其相似的可能異常子結構后,可迭代找到其它的可能異常子結構;首先,使用基準模式對子圖進行壓縮,例如把基準模式替換成一個帶有標簽的結點,然后,在壓縮之后的圖上尋找基準模式和相關的可能異常子結構,這個過程可以進行多次迭代以找到更多的基準模式和可能異常子結構,直到遍歷整個圖;當將整個數據圖進一步壓縮時還能夠進行不同級別的異常檢測;
迭代處理階段:
s6:本發(fā)明設定一個閾值,此閾值表示的每次可處理的最大子圖數量或子圖時間戳,若剛剛處理完的子圖集中的子圖個數等于閾值,則將剛剛處理完的子圖集舍棄第一個子圖,并按順序向后增加一個子圖,形成一個新的子圖集,相當于將子圖集的窗口向后滑動一個單位;若剛剛處理完的子圖集中的子圖個數小于閾值,則將剛剛處理完的子圖集按順序向后增加一個子圖,形成一個新的子圖集;相當于將子圖集的窗口增加一個子圖單位;
s7:由于現有的數據處理方法著重處理靜態(tài)圖或者增量式處理大規(guī)模靜態(tài)圖和數據流圖(即邊和結點不斷增加的情況),沒有考慮到邊和結點隨時間變動不僅會存在增加且會同時存在消除的情況,本發(fā)明中,考慮到動態(tài)圖在數據處理的過程中會存在刪除邊或結點的情況,因此,在每次處理新的子圖集時,需要判斷是否需要重新生成正常模式,如果需要,則根據與步驟s2-s5相同的方法判定新的子圖集中的異常子結構;如果不需要,則根據步驟s8-s10的方法判定新的子圖集中的異常子結構;
本發(fā)明中,需要重新生成正常模式的判斷標準為:步驟s6中,新的子圖集中出現了移除邊的情況,且d(sdel,e)≥β/(1+ε)2
其中,β和ε均為人為設定的參數,sdel為包括移除邊數據節(jié)點的正常模式;
s8:從步驟s6中新增加的子圖中分別找出若干個正常模式,并與此輪子圖集中其它子圖的正常模式整合出此輪子圖集的基準模式;
s9:若步驟s8中的基準模式與步驟s6中剛剛處理完的子圖集的基準模式相同,則根據相同的基準模式找到新增加的一個或兩個子圖中的可能異常子結構,并結合此輪子圖集中其它子圖的可能異常子結構找到此輪子圖集中的異常子結構;
s10:若步驟s8中的基準模式與步驟s6中剛剛處理完的子圖集的基準模式不同,則根據步驟s8中基準模式找到此輪子圖集中所有子圖的可能異常子結構,并從所有子圖的可能異常子結構中找到異常子結構;
s11:重復步驟s6-s10,直到處理完最后一個子圖。
本發(fā)明中,所述步驟s4及步驟s9-步驟s10中,所述可能異常子結構的判定方法為:
0<d(sa,e)<td,且0≤p(sa|e,g)≤tp≤1
其中,d(sa,e)為可能異常子結構sa與基準模式e的差異值,td為人為設定的可能異常子結構sa與基準模式e的最大差異,p(sa|e,g)表示子圖g在基準模式e的壓縮下可能異常子結構sa為異常子結構的概率,其值由貝葉斯公式計算而得,tp為人為設定的可能異常子結構sa為異常子結構最大概率。也即,若子圖中的某個模式同時滿足0<d(sa,e)<td,且0≤p(sa|e,g)≤tp≤1,則可判定該模式為可能異常子結構sa。
由于異常子結構通常在一定范圍內非常接近基準模式,但與基準模式不同,而且分值很小,所以所述步驟s5及步驟s9-步驟s10中,所述異常子結構的判定方法為:通過下述公式,找到取值最低的若干個可能異常子結構,作為異常子結構:
score=d(sa,e)*p(sa|e,g)
也即,score值整合了可能異常子結構sa與基準模式e的差異值以及可能異常子結構sa為異常子結構的概率,可能異常子結構與正常模式的差距越小,其結構越接近,越不容易被檢測出來,為異常子結構的可能性越大,因此,score越低表明sa為異常子結構的可能性越大。本發(fā)明中,可人為設定異常子結構的數量,如若設為一個,則找出最小的score值對應的可能異常子結構sa,即為最后確認的異常子結構;如若設為兩個,則找出最小的和次小的score值對應的可能異常子結構sa,即為最后確認的異常子結構,依次類推。
為更形象具體地了解本發(fā)明的技術方案,下結合附圖詳細說明本發(fā)明的具體實施方式,其中,正常模式、可能異常子結構以及異常子結構的尋找方法已詳述如上,故在具體實施例部分不加以累述。
圖1為本發(fā)明的第一實施例的增量并行式動態(tài)圖的結構異常檢測方法檢測流程圖,如圖1所示,本實施例中,設定閾值為5,具體處理方法為:
s1:將所有待處理的圖數據劃分為2000個子圖。
s2:并行處理第1-第5個子圖,分別發(fā)現若干個正常模式,各子圖的正常模式標記為s1、s2、s3、s4、s5,本實施例中,s1、s2、s3、s4、s5僅用來分別表示第1、2、3、4、5個子圖的正常模式,然而,在實際操作過程中,每個子圖的正常模式可能不止一個,且各個正常模式也未必相同,但為了方便說明,第1個子圖中的正常模式均以s1表示,同樣的,第2-5個子圖分別以s2、s3、s4、s5表示,下文出現的各個子圖的正常模式均表示同樣的含義,本發(fā)明不加以累述。
s3:根據正常模式s1、s2、s3、s4、s5判定前5個子圖的基準模式e。
s4:根據基準模式e發(fā)現前5個子圖中的可能異常子結構sa1、sa2、sa3、sa4、sa5。同于正常模式的表達方式,本實施例中,每個子圖中發(fā)現的可能異常子結構可能不止一個,且每個都不相同,但為了方便說明,第1個子圖中的可能異常子結構均以sa1表示,同樣的,第2-5個子圖中的可能異常子結構分別以sa2、sa3、sa4、sa5表示,下文出現的各個子圖的可能異常子結構均表示同樣的含義,本發(fā)明不加以累述。
s5:從可能異常子結構sa1、sa2、sa3、sa4、sa5中找出最可能的異常子結構,作為最后確定的異常子結構。
s6:由于閾值為5,第一個子圖集已達到閾值,故處理第二個子圖集時,僅將子圖集向后移動一個子圖單位,處理新的子圖集:第2-第6個子圖。
s7:經判斷,第2-第6個子圖中不存在刪除邊或結點的情況,因此,不需要對每個子圖都生成正常模式,僅需要找出新增加的子圖,也即第6個子圖的正常模式s6,同樣的,s6可以表示第6個子圖中多個不同的正常模式。
s8:根據此輪子圖集中的正常模式s2、s3、s4、s5、s6整合出基準模式e’。
s9:e’與e結構相同,根據e/e’找出第6個子圖中的可能異常子結構sa6,并結合sa2、sa3、sa4、sa5找出異常子結構。
s10:繼續(xù)將子圖集向后移動一個子圖單位,處理第3-第7個子圖,經判斷,第3-第7個子圖中出現了刪除邊或結點的情況,且滿足d(sdel,e)≥β/(1+ε)2,故需要針對第3-第7個子圖重新生成正常模式,此時的正常模式分別為s3’、s4’、s5’、s6’、s7。
s11:根據正常模式s3’、s4’、s5’、s6’、s7判斷基準模式e1。
s12:根據基準模式e1發(fā)現第3-第7個子圖中的可能異常子結構sa3’、sa4’、sa5’、sa6’、sa7。
s13:從可能異常子結構sa3’、sa4’、sa5’、sa6’、sa7中找出最可能的異常子結構,作為最后確定的異常子結構。
s14:將子圖集繼續(xù)后移一個單位,處理第4-第8個子圖,按照上述方法,先判斷是否需要重新生成正常模式,然后按照判斷結果重復步驟s2-s5/s10-s13,或者重復步驟s7-s9,依次類推,直至處理完第1996-第2000個子圖,找出整個圖數據庫的異常子結構。
圖2為本發(fā)明的第二實施例的增量并行式動態(tài)圖的結構異常檢測方法檢測流程圖,如圖2所示,本實施例中,設定閾值為6,具體處理方法為:
s1:將所有待處理的圖數據劃分為2000個子圖。
s2:并行處理第1-第5個子圖,分別發(fā)現若干個正常模式,各子圖的正常模式標記為s1、s2、s3、s4、s5。
s3:根據正常模式s1、s2、s3、s4、s5判定前5個子圖的基準模式e。
s4:根據基準模式e發(fā)現前5個子圖中的可能異常子結構sa1、sa2、sa3、sa4、sa5。
s5:從可能異常子結構sa1、sa2、sa3、sa4、sa5中找出最可能的異常子結構,作為最后確定的異常子結構。
s6:由于閾值為6,第一個子圖集沒有達到閾值,故處理第二個子圖集時,將子圖集按順序向后增加一個子圖,處理新的子圖集:第1-第6個子圖。
s7:經判斷,第1-第6個子圖中不存在刪除邊或結點的情況,因此,不需要對每個子圖都生成正常模式,僅需要找出新增加的子圖,也即第6個子圖的正常模式s6。
s8:根據此輪子圖集中的正常模式s1、s2、s3、s4、s5、s6整合出基準模式e’。
s9:e’與e結構不同,則需要根據e’找出此輪子圖集中所有子圖的可能異常子結構sa1’,sa2’、sa3’、sa4’、sa5’、sa6,并結合sa1’,sa2’、sa3’、sa4’、sa5’、sa6找出異常子結構。
s10:由于第二個子圖集已經達到閾值,故處理第三個子圖集時,僅將子圖集向后移動一個子圖單位,處理新的子圖集:第2-第7個子圖。
s11:判斷是否需要重新生成正常模式,然后按照判斷結果重復步驟s2-s5,或者重復步驟s7-s9,依次類推,直至處理完第1995-第2000個子圖,找出整個圖數據庫的異常結構。
為驗證本發(fā)明的有益效果,發(fā)明人在真實的數據集上驗證了本發(fā)明提供的算法的計算效率、準確率以及召回率,具體的,發(fā)明人從斯坦福大學snap項目中選取了三個數據集:無向圖、有向圖以及帶標簽的圖進行算法驗證,數據的詳細信息如表1所示。
表1:數據詳細信息
圖3為本發(fā)明提供的檢測方法的總體運行時間示意圖(縱坐標表示運行時間的對數),如圖所示,本發(fā)明將總體運行時間分為正常模式檢測時間和異常子結構檢測時間,從圖中可以看出,正常模式檢測需要花費大部分的時間,隨著數據的邊的數量的增加,運行的總體時間隨著圖的規(guī)模變大而呈現緩慢增長。
為了進一步驗證本發(fā)明提出的增量式異常檢測方法在圖流數據上的有效性,我們把dpads算法應用到合成數據集上。在此實驗中,我們把原始圖劃分成100個小圖,每個圖包含大約20000條邊。在初始化階段,我們隨機選取20(每個子圖集包含的子圖個數)個小圖。選取20個小圖的目的是為了得到初始化的正常模式和異常子結構,所以任意選取20個小圖。然后并行處理他們,花費了40秒鐘,每個小圖得到3個正常的模式。在處理過程中即使小圖采用順序方式處理,總共花費486秒完成20個小圖的正常模式檢測。然后,對60個正常模式進行分析和整合,確定基準模式e。最后,根據基準模式e檢測異常子結構sa,這一步驟花費156秒完成。在迭代階段,我們也使用閾值20作為處理的窗口(把20個小圖都放到內存中)。然后依照算法進行多次迭代。
實驗結果表明,本發(fā)明的方法可以應用到大規(guī)模動態(tài)圖中。本發(fā)明提出的方法在圖流數據上檢測到的異常子結構與在整個圖上檢測到的異常子結構是一致的,而在流數據上運行完成時間是3017秒(然而,使用現有的方法在整個圖上檢驗時,花費為76356秒)。每個小圖的運行時間如圖4所示,加深的黑菱形為發(fā)現異常子結構的子圖。
另外,數據結構的異常檢測方法的重要指標是準確率和召回率,表2所示為計算準確率和召回率需要基本指標,其中,準確率=a/(a+b),召回率r=a/(a+c),圖5為本發(fā)明提供的檢測方法的準確率和召回率示意圖,從圖5可以看出:本發(fā)明提供的檢測方法,在異常檢測中,準確率p均值達到96%,即檢測到異常子結構中,有96%都是事實上的異常子結構;由于本發(fā)明提供的算法針對動態(tài)圖,首先對圖進行劃分,而且劃分時按照時間或獲取邊的順序,并沒有考慮到圖的連接性和子圖的相關性,加上動態(tài)圖隨時間不斷變化,正常模式也隨之不斷變化,召回率不可能達到100%,但本發(fā)明提供的檢測方法,依然能夠實現高達85%的召回率r均值,即85%的異常子結構都能檢測到。
雖然本發(fā)明已利用上述較佳實施例進行說明,然其并非用以限定本發(fā)明的保護范圍,任何本領域技術人員在不脫離本發(fā)明的精神和范圍之內,相對上述實施例進行各種變動與修改仍屬本發(fā)明所保護的范圍,因此本發(fā)明的保護范圍以權利要求書所界定的為準。