肖港松,陳曉云
(福州大學 數學與計算機科學學院,福建 福州 350108)
近年來,針對社會網絡、生物網絡等的挖掘研究越來越多(如社區識別、社區關系發現等)[1],尤其是針對犯罪團伙和恐怖分子活動網絡的研究,引起了世界各國的重視[2]。實際中,網絡往往隨時間而變動,即網絡是動態網絡[3]。挖掘動態網絡中的頻繁模式,即可以發現變化網絡中具有相對“穩定性”的頻繁模式,這些模式在動態網絡中往往也是比較有趣和重要的,這對研究動態網絡很有意義。由于圖具有結構關系,可用來表示事物之間復雜的相互作用關系,是基本的數據結構,因此網絡可用圖來表示,即一個網絡可抽象成一個圖,對網絡的挖掘研究也就轉化為對圖的挖掘研究。
在實際中,一個動態網絡在某個時刻表現出來的整體重要性可能并不一樣,這就需要考慮各個時刻網絡的不同權重,即考慮加權的動態網絡。而挖掘加權動態網絡的頻繁模式,即是挖掘加權圖集的頻繁子圖。
對圖加權主要包括頂點、邊和整個圖的加權。當前,已經提出一些關于加權圖集的頻繁子圖挖掘算法[4-7],如參考文獻[4]、[6]提出的是基于頂點加權的頻繁子圖挖掘,而參考文獻[5]、[7]則是基于邊加權的頻繁子圖挖掘。
網絡在某個時刻的重要性可以對整個圖賦予不同權重來表示,無需考慮網絡內部頂點和邊的權重,有時也很難知道頂點和邊的權重,針對這種整個圖加權的挖掘,關于頂點或邊加權的挖掘算法均不適用于這種挖掘。為此本文提出一種適用于整個圖加權的頻繁模式挖掘算法(簡稱 WGDM)。
一些圖挖掘和動態網絡的基本概念和定義[3-5]:
定義1(標記圖) 一個標記圖可表示為一個四元組G=(V,E,S,L), 其中,V 是頂點集合,E?V×V 是邊集合,S則是標記集合,L:V∪E→S是一個函數,用來分配頂點和邊的標記。
定義 2(子圖同構) 給定兩個圖 G=(V,E,S,L)和圖G′=(V′,E′,S′,L′), 這兩個圖的子圖同構即是一個單射函數 f:V→V′,函數 滿足 :(1)?ν∈V,L(ν)=L′(f(ν));(2)?(u,ν)∈E;(f(u),(f(ν))∈E′且 L((u,ν))=L′(f(u),(f(ν)),也稱此單射函數f為G在G′中的一個嵌入。如果存在從 G~G′的子圖同構, 則稱 G為 G′的子圖,G′為 G的超圖,記為 G?G′。
定義3(動態網絡) 在用圖 G=(V,E)表示的網絡中,頂點集V和邊集E隨時間變化而變化的網絡稱為動態網絡。
下面給出本文對加權圖集、加權動態網絡、加權圖集中子圖的支持度和頻繁子圖的定義。
定義 4(加權圖集) 給定一個圖的集合 D={G1,G2,……,Gn}, 對 D中的圖 G1,G2, ……,Gn分別賦予權重w1,w2,……,wn(權重為非負實數),則稱 D 為加權圖集。
定義5(加權動態網絡) 加權動態網絡即是對不同時刻的網絡賦予權重的動態網絡,權重為一非負實數,由該時刻網絡的重要性來決定權重大小。
定義 6(支持度) 給定加權圖集 D={G1,G2, ……,Gn}和圖模式 g,如果圖集 D中包含圖 g的圖為 Gi1,Gi2,……,Gin,各圖對應的權重分別為 wi1,wi2,……,wik,則圖g的絕對支持度為:

定義 7(頻繁子圖) 給定加權圖集 D={G1,G2,……,Gn}和一個實數閾值min_sup,如果子圖g在加權圖集D中的支持度sup(g,D)≥min_sup,則稱該子圖g為頻繁子圖。
(1)頻繁子圖挖掘的難點之一在于會產生數量龐大的候選子圖,使得搜索空間巨大。本文提出的 WGDM算法具有如下性質,從而可利用該性質來裁剪搜索空間。
性質:給定加權圖集 D={G1,G2,……,Gn},則一個圖模式g的支持度是它所有超圖支持度的上界。

由WGDM的性質可得,如果圖g是非頻繁子圖,則其所有的超圖也不是頻繁子圖,即可裁減掉圖g的所有超圖,如圖1所示。

圖1 剪枝
子圖 g 可擴展的超圖包括 g~e1、g~e2、g~e3。 首先計算子圖g的支持度support(g),若小于最小支持度,則剪掉g的所有超圖。
(2)頻繁子圖挖掘的另外一個難點在于子圖同構檢測[8-9]。參考文獻[9]提出的GASTON算法利用一種內嵌列表(Embedding List)記錄了頂點和邊在圖集中的具體位置,在子圖擴展時可以快速地從內嵌列表中找出可擴展的頂點和邊以及進行同構檢測,較好地解決了子圖同構檢測問題;而且該算法將一個復雜的圖挖掘問題分割成三個比較簡單的子問題,即先列舉出路徑(Path)、再列舉由路徑擴展出的樹 (Non-cyclic Tree)、最后列舉由路徑或樹擴展后的具有循環的圖(Cyclic Graph)。
GASTON算法雖然不能挖掘加權圖集的頻繁子圖,不過其同構檢測的方法與分解成三個子問題的策略很有意義。本文采用其策略方法來進行同構檢測,并將加權圖集挖掘也轉為挖掘路徑、樹和循環圖的三個步驟。
首先計算WGDM算法加權圖集中子圖的支持度,其計算步驟如下:
算法1 計算子圖支持度sup(g,D)
輸入:加權圖集D,子圖 g,內嵌列表。
輸出:子圖 g的支持度 sup(g,D)。
(1)初始化 sup(g,D)=0;
(2)利用內嵌列表(Embedding List)找出 D中包含子圖 g 的所有圖 Gi1,Gi2,……,Gik。
(3) 找出 Gi1,Gi2, ……,Gik各圖對應的權重:wi1,wi2,……,wik。
(4)For j=1,2,…,k do

(5)輸出子圖 g 支持度 sup(g,D)。
計算加權子圖支持度的實例如圖2所示。圖中,動態網絡在 t1、t2、t3時刻形成的無向網絡圖(本文針對的是頂點和邊均有標記的無向加權動態網絡圖),對應的權重分別為 w1、w2、w3。 假設權重 w1=1、w2=2、w3=3,從圖2可看出,路徑圖 P(v1~v2~v3)只出現在 t1和 t3時刻的網絡圖中,所以其絕對支持度為:

圖2 加權動態網絡

結合GASTON算法[9]的策略方法,下面給出挖掘加權圖集中頻繁子圖的算法步驟:
算法2 挖掘頻繁路徑(Path)
輸入:加權圖集D,圖編碼,內嵌列表,最小支持度min_sup,路徑 P。
輸出:頻繁路徑(Path)。
(1)事先由算法1計算加權圖集中所有頂點和邊的支持度,刪除小于min_sup的頂點和邊。
(2)由算法1計算出路徑P的支持度,如果其支持度support(P)<min_sup,則停止擴展,剪掉其所有超圖;否則從內嵌列表選取可擴展的邊l,構造新圖g←l+P。
(3)如果新圖g還是路徑,則轉至步驟(2)。
(4)如果新圖g是樹則轉至算法3。
(5)如果新圖g是具有循環的圖則轉至算法4。
算法3 挖掘頻繁樹(Tree)
輸入:加權圖集D,圖編碼,內嵌列表,最小支持度min_sup,樹 T。
輸出:頻繁樹。
(1)由算法1計算出樹T的支持度,如果其支持度support(G)<min_sup,則停止擴展,剪掉其所有超圖;否則從內嵌列表選取可擴展的邊l,構造新圖g←l+T。
(2)如果新圖g還是樹,則轉至步驟(1)。
(3)如果新圖g是具有循環的圖則轉至算法4。
算法4 挖掘頻繁循環圖(Cyclic Graph)
輸入:加權圖集D,圖編碼,內嵌列表,最小支持度min_sup,圖 G。
輸出:頻繁圖。
(1)由算法1計算出圖G的支持度,如果其支持度support(G)<min_sup,則停止擴展,剪掉其所有超圖。
(2)否則從內嵌列表選取可擴展的邊l,構造新圖g←l+G,轉至步驟(1)。
(3)輸出所有頻繁圖。
從算法 2~算法 4,先找出頻繁路徑,如果該路徑擴展成樹,則轉至找頻繁樹;如果擴展成圖,則轉至尋找頻繁循環圖。在尋找頻繁樹時,如果樹擴展成循環圖則轉至尋找頻繁循環圖;最后找出頻繁循環圖。其實,路徑和樹都是無循環的特殊的圖,所以最后輸出的加權頻繁子圖也包括路徑和樹。
本文測試使用的數據集是有關分子生物活性信息的真實數據集NCI-H23,這個數據集可以從以下網址獲得:http://www.cs.ucsb.edu/~xyan/dataset.htm。
NCI-H23數據集包括具有活性和無活性兩種類別的圖集,其中頂點有60多種標記,邊有2種標記。假設無活性的圖權重為1,而具有活性的圖權重為2。本文選取200個具有活性和200個無活性的圖,然后組成了一個具有400個圖的加權圖集。
算法測試用的PC機使用Intel Pentium(R)2.6GHz CPU和512 MB的內存,操作系統為Red Hat Linux,算法使用C++語言實現,并用g++編譯。實驗結果如圖3所示。

圖3 性能測試
從圖3可以看出,當支持度比較小時,算法挖出到的頻繁子圖數目非常大,如在最小絕對支持度為60時,可挖掘到18 673個頻繁子圖,這比最小絕對支持度為120時挖掘到的675個頻繁子圖多了27倍;運行時間則是隨著最小支持度的增加而減少,在最小絕對支持度為96時,運行時間只需0.69 s,總體上算法具有良好的效率。
結合中國股票市場,利用本文提出的算法挖掘股票市場網絡中的頻繁模式。一般股票價格會隨著時間變化,不同時段股票跌幅或漲幅不一樣。本文抽取20支股票,這些股票來自電子行業、啤酒行業、金融銀行等領域,然后以一個季度為一個時段,統計這些股票在2010年四個季度里的漲跌情況,其中在每個季度里,分四種情況劃分成四種網絡:漲幅超過40%的股票網絡、漲幅在40%以內的股票網絡、跌幅在20%以內的股票網絡以及跌幅超過20%的股票網絡。股票網絡中,頂點表示股票,不同股票,標記也不同,而股票間的關聯就是邊,不同股票的邊標記也不同,同一個網絡中的任意兩支股票均有一條具有標記的邊相連。在實際中,對于漲幅比較高或者跌幅比較大的情況應給予額外關注,為此對漲幅超過40%和跌幅超過20%的網絡加大權重,本文設定這兩種網絡權重為2,而其他兩種網絡則給予1的權重。總共得到9個網絡圖組成的圖集,其中有3個網絡圖屬于漲幅超過40%或者跌幅超過20%,給予的權重為 2,其余6個網絡圖權重為 1。利用本文WGDM算法挖掘這個加權動態網絡圖集的頻繁模式,而用GASTON算法挖掘無加權動態網絡圖集(即所有圖權重都為1),其中設定絕對最小絕對支持度min_sup為4時,可以發現兩種具有5個頂點的頻繁模式如圖4所示。
實際中,相同行業的公司、企業的發展趨勢比較有相同之處,其股價也較有可能同漲同跌。如圖4所示,本文挖掘出的頻繁模式,都是由銀行組成,而GASTON算法挖掘出的頻繁模式由銀行和汽車兩個不同行業組成。所以本文算法的挖掘結果,與實際比較吻合,進一步驗證了本文算法的有效性。

圖4 挖掘的頻繁模式對比
挖掘加權動態網絡的頻繁子圖困難在于產生的候選子圖數量過多,而且子圖同構檢測問題也會影響算法的效率。對此,本文算法利用支持度的反單調性對搜索空間進行裁剪,并采用參考文獻[7]的策略將挖掘圖劃分成挖掘路徑、樹和循環圖的三個子問題,減少了候選子圖數量和子圖同構檢測次數,提高了算法效率。而且將算法應用于實際的股票市場網絡,挖掘結果也驗證了本文算法的有效性。本文算法還可進一步拓展應用到其他網絡的頻繁模式挖掘。
[1]RADICCHIF, CASTELLANO C, CECCONIF, etal.Defining and identifying communities in networks[J].PNAS,2004, 101(9): 2658-2663.
[2]XU J J, CHEN H C.CrimeNet explorer: a framework for criminal network knowledge discovery[J].ACM Transactions on Information Systems, 2005, 23(2).
[3]BERGER-W T Y,SAIA J.A frameworkfor analysis of dynamic social networks[C].KDD’06.Philadelphia: [s.n.],2006:523-528.
[4]耿汝年,董祥軍,須文波.基于全局圖遍歷的加權頻繁模式挖掘算法[J].計算機集成制造系統,2008,14(6):1220-1229.
[5]王映龍,楊珺,周法國,等.加權最大頻繁子圖挖掘算法的研究[J].計算機工程與應用,2009,45(20):31-34.
[6]封軍,鄭誠,鄭曉波,等.基于加權有向圖的權頻繁模式挖掘算法[J].微型機與應用,2010,29(20):4-7.
[7]Jiang Chuntao, COENEN F, ZITO M.Frequent sub-graph minjing on edge weighted graphs[C].DaWak’10 Proceedings of the 12th international conference on Data Warehousing and knowledge discovery, Spinger-Verlag, 2010:77-88.
[8]高琳,覃桂敏,周曉峰.圖數據庫中頻繁模式挖掘算法研究綜述[J].電子學報,2008,36(8):1603-1609.
[9]NIJSSEN S,KOK J N.Aquick start in frequent structure mining can make a difference[C].Proceeding of the 10th ACM SIGKDD International Conference on Knowledge Discovery and Data Mining(KDD-2004).Seattle, WA, USA:Springer-Verlag, 2004: 4571-4577.