基于歸并聚類的并行化頻繁概率子圖搜索方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及一種基于歸并聚類的并行化頻繁概率子圖挖掘方法,用于實(shí)現(xiàn)大規(guī)模 概率網(wǎng)絡(luò)中頻繁概率子圖的快速挖掘與識(shí)別,屬于計(jì)算機(jī)數(shù)據(jù)挖掘技術(shù)領(lǐng)域。
【背景技術(shù)】
[0002] 隨著信息及互聯(lián)網(wǎng)技術(shù)的不斷涌現(xiàn),產(chǎn)生了大量的網(wǎng)絡(luò)數(shù)據(jù),如社交網(wǎng)絡(luò)、生物網(wǎng) 絡(luò)等,這些網(wǎng)絡(luò)均可以用圖模型來表示。如何高效地實(shí)現(xiàn)圖數(shù)據(jù)集上的數(shù)據(jù)挖掘,已經(jīng)成為 數(shù)據(jù)挖掘研究領(lǐng)域的熱點(diǎn)問題之一。在實(shí)際應(yīng)用中,很多圖數(shù)據(jù)是以概率的形式存在的。例 如,在生物信息學(xué)領(lǐng)域,研究得到的生物網(wǎng)絡(luò)數(shù)據(jù)通常帶有不可避免的實(shí)驗(yàn)誤差或噪聲數(shù) 據(jù);同時(shí),生物進(jìn)化過程本身也是一種動(dòng)態(tài)變化的過程。在社會(huì)網(wǎng)絡(luò)中,人與人的關(guān)系往往 存在一定的不確定性。因此,在這些以圖模型描述的數(shù)據(jù)對(duì)象中,節(jié)點(diǎn)和邊的屬性值通常在 一定值域內(nèi)滿足某種概率分布,邊的存在通過概率進(jìn)行表達(dá)。因?yàn)閳D的不確定性的廣泛存 在,所以針對(duì)概率圖集的數(shù)據(jù)挖掘方法研究具有十分重要的意義。但總的來說,目前這方面 的研究工作還比較少。
[0003] 在圖論領(lǐng)域,傳統(tǒng)的頻繁模式挖掘多是在確定圖數(shù)據(jù)上進(jìn)行的,主要的方法包括 gSpan、Gaston、FFSM、FSG和AGM等。為了減少冗余的子圖,研究人員提出基于SPIN算法來 識(shí)別極大頻繁子圖。此外,研究人員還提出了發(fā)現(xiàn)閉合頻繁子圖模式的CloseGraph算法。 然而,目前已有的許多非概率圖頻繁模式發(fā)現(xiàn)算法,都很難應(yīng)用到概率圖頻繁子圖的識(shí)別 中。在不確定數(shù)據(jù)挖掘領(lǐng)域,與概率圖頻繁子圖識(shí)別相關(guān)的算法也比較少。雖然在概率頻 繁項(xiàng)集識(shí)別方面,已有研究人員提出基于概率數(shù)據(jù)流識(shí)別頻繁項(xiàng)的隨機(jī)算法、裁剪方法和 U-Apriori算法,以及針對(duì)裁剪方法的改進(jìn)算法等。但是,這些針對(duì)概率頻繁項(xiàng)集識(shí)別的方 法也很難擴(kuò)展到概率圖上。
[0004] 針對(duì)上述問題,基于電路模擬的概率子圖挖掘方法具有一定優(yōu)勢(shì)。但是,該方法的 處理過程較為復(fù)雜,尤其在處理對(duì)稱圖時(shí),該方法會(huì)產(chǎn)生多種可能的映射序列,從而需退化 成枚舉頂點(diǎn)映射序列再進(jìn)行鄰接矩陣匹配的計(jì)算,效率愈加低下。此外,當(dāng)采用該方法對(duì)大 量概率子圖進(jìn)行搜索時(shí),如何高效地進(jìn)行聚類是影響該方法執(zhí)行效率的關(guān)鍵,而傳統(tǒng)方法 往往采用簡單層次聚類進(jìn)行頻繁子圖挖掘。但在簡單層次聚類過程中,通常需首先選取所 有子圖類中距離最小的兩個(gè)子圖進(jìn)行合并,再更新所有子圖之間的距離,每次聚類只能減 小一類,因而其時(shí)空復(fù)雜度高達(dá)ο(Π3),這顯然不適合用來處理規(guī)模較大的圖數(shù)據(jù)。綜上,現(xiàn) 有概率子圖搜索方法在處理大規(guī)模概率圖數(shù)據(jù)時(shí)存在很大不足。因此,亟需針對(duì)大規(guī)模概 率圖數(shù)據(jù),設(shè)計(jì)一種能夠充分利用概率圖特性的頻繁概率子圖挖掘方法。
【發(fā)明內(nèi)容】
[0005] 發(fā)明目的:針對(duì)現(xiàn)有技術(shù)中存在的問題與不足,本發(fā)明提供一種基于歸并聚類的 并行化頻繁概率子圖搜索方法,該方法能夠在保證計(jì)算精度的基礎(chǔ)上,有效解決采用簡單 層次聚類處理大規(guī)模概率圖數(shù)據(jù)的時(shí)空復(fù)雜度過高的問題。
[0006] 技術(shù)方案:一種基于歸并聚類的并行化頻繁概率子圖搜索方法,與已有方法不同 的是,首先,該方法在對(duì)節(jié)點(diǎn)電壓序列的計(jì)算時(shí),添加一個(gè)參考節(jié)點(diǎn),并在原圖中每個(gè)節(jié)點(diǎn) 與此參考節(jié)點(diǎn)之間添加一條帶權(quán)邊,對(duì)此參考節(jié)點(diǎn)施加全激勵(lì),從而使原來需要求解2η個(gè) η-1階的線性代數(shù)方程組,變成求解2個(gè)η階的線性方程組(η為圖的頂點(diǎn)數(shù)),可以使效率 大大提高;然后,利用歸并聚類處理大部分概率子圖,加速聚類過程,大大降低計(jì)算的時(shí)空 開銷;最后,為適應(yīng)日益增長的數(shù)據(jù)量及并行化環(huán)境的需求,本發(fā)明還建立了基于Spark并 行框架的實(shí)現(xiàn)結(jié)構(gòu),進(jìn)一步提高了該方法的性能和可擴(kuò)展性。
[0007] 具體可分為四個(gè)步驟:步驟1預(yù)處理概率子圖,首先對(duì)輸入的概率網(wǎng)絡(luò)(概率圖) 進(jìn)行概率子圖劃分,得到指定節(jié)點(diǎn)個(gè)數(shù)的概率子圖集,將概率子圖對(duì)應(yīng)的鄰接矩陣存儲(chǔ)為 HDFS文件,然后加載到彈性分布式數(shù)據(jù)集(Resilient Distributed Datasets, RDD);步驟 2對(duì)每個(gè)Spark計(jì)算節(jié)點(diǎn)中的概率子圖,將其鄰接矩陣轉(zhuǎn)換成對(duì)應(yīng)的伴隨電路,再根據(jù)節(jié)點(diǎn) 電壓法,得到節(jié)點(diǎn)電壓序列;步驟3對(duì)每個(gè)Spark計(jì)算節(jié)點(diǎn)中的概率子圖均進(jìn)行歸并聚類計(jì) 算,得到若干概率子圖同構(gòu)類,直到每個(gè)Spark計(jì)算節(jié)點(diǎn)均收斂,再將結(jié)果匯總,并對(duì)匯總 的概率子圖同構(gòu)類再進(jìn)行一次歸并聚類;步驟4計(jì)算每個(gè)概率子圖同構(gòu)類的子圖數(shù)量,得 出頻率,進(jìn)而得到頻繁概率子圖。
[0008] 在預(yù)處理概率子圖階段,從輸入的概率網(wǎng)絡(luò)(概率圖)中不重復(fù)、不遺漏地識(shí)別出 所有具有給定節(jié)點(diǎn)個(gè)數(shù)的概率子圖,采用基于Spark框架的實(shí)現(xiàn)結(jié)構(gòu),將得到的概率子圖 存儲(chǔ)到HDFS文件系統(tǒng),然后將所有子圖加載到RDD。
[0009] 在將所有概率子圖的鄰接矩陣轉(zhuǎn)換為伴隨電路求節(jié)點(diǎn)電壓序列時(shí),首先將概率子 圖的鄰接矩陣轉(zhuǎn)換成對(duì)應(yīng)的伴隨電路,然后添加一個(gè)參考節(jié)點(diǎn),通過節(jié)點(diǎn)電壓法對(duì)整個(gè)伴 隨電路施加全激勵(lì)得到節(jié)點(diǎn)電壓序列。具體步驟為:
[0010] 1)針對(duì)輸入的概率子圖g(假設(shè)有k個(gè)節(jié)點(diǎn)Vp v2、…、vk),將概率圖g的每一條 邊均用其概率P(即P e (0,1))的倒數(shù)l/p表示電阻值(即當(dāng)邊概率值趨于〇時(shí),該段電 路斷開,表示該段電路對(duì)整個(gè)節(jié)點(diǎn)電壓影響很?。?br>[0011] 2)增加一個(gè)參考節(jié)點(diǎn)vk+1,并在新增的節(jié)點(diǎn)與原圖中每個(gè)節(jié)點(diǎn)之間增加一個(gè)電阻 值為1/2的電阻,得到概率子圖g的伴隨電路N。
[0012] 3)以新增節(jié)點(diǎn)vk+1為參考節(jié)點(diǎn),對(duì)伴隨電路N施加全激勵(lì)(即在節(jié)點(diǎn)v k+1與其他 任意節(jié)點(diǎn)之間施加相同的電流源Is,電流值均選為1A,在vk+1與其余k個(gè)節(jié)點(diǎn)之間的電流均 從節(jié)點(diǎn)vk+1指向其余節(jié)點(diǎn))。
[0013] 4)根據(jù)U/R = I (其中R = 1/P)得出概率子圖g的節(jié)點(diǎn)電壓序列U。
[0014] 采用基于Spark框架的實(shí)現(xiàn)結(jié)構(gòu),對(duì)每個(gè)Spark計(jì)算節(jié)點(diǎn)中的概率子圖均進(jìn)行歸 并聚類計(jì)算,得到若干概率子圖同構(gòu)類,直到每個(gè)計(jì)算節(jié)點(diǎn)均收斂,再將各計(jì)算節(jié)點(diǎn)的結(jié)果 匯總,對(duì)匯總的概率子圖同構(gòu)類再進(jìn)行一次歸并聚類,歸并聚類的具體步驟為:
[0015] 1)聚類初始化:假設(shè)共有η個(gè)概率子圖構(gòu)成概率子圖集G = {gl,g2,…,gn},則先 讓其中每個(gè)概率子圖自成一類,它們作為η個(gè)聚類樹的η個(gè)葉子節(jié)點(diǎn),而概率子圖的標(biāo)號(hào)集 Rg= {1,2,…,η},并設(shè)置閾值參數(shù)ε和Θ。
[0016] 2)歸并聚類:假設(shè)聚類總數(shù)L,而flag用來標(biāo)識(shí)歸并聚類過程中是否有聚合操作, 其初始值為〇 ;對(duì)于從i = 1到i = L/2的概率子圖,計(jì)算&和g i^是否同構(gòu)(采用比較 間隔步長為L/2,每層聚類后將打亂當(dāng)前的圖類序列,以避免在每層聚類時(shí),由于兩兩比較 的類別沒有發(fā)生變化而產(chǎn)生聚類的效果較差的情況)。具體步驟為:
[0017] (a)首先根據(jù)兩個(gè)概率子圖&、&</2的節(jié)點(diǎn)電壓序列U和U',利用歐式距離求出 兩個(gè)概率子圖的距離矩陣D。
[0018] (b)再利用匈牙利算法處理距離矩陣D,得出概率子圖gjPg1+U2的節(jié)點(diǎn)映射關(guān)系, 同時(shí)計(jì)算出兩概率子圖節(jié)點(diǎn)電壓序列的錯(cuò)配值VMval。
[0019] (c)接著根據(jù)節(jié)點(diǎn)映射關(guān)系調(diào)整兩個(gè)概率子圖的鄰接矩陣d和d',然后 計(jì)算調(diào)整后d和cT之間的錯(cuò)配值PMval。
[0020] (d)根據(jù)上述計(jì)算結(jié)果進(jìn)行判斷,若VMval〈 ε且PMval〈 Θ,則將兩概率子圖聚成 一類。同時(shí)修改概率子圖集Rg,修改flag為1。
[0021] 3)重新計(jì)算聚類總數(shù)L,若flag為1則回到步驟2)繼續(xù)計(jì)算,直到flag不再為 1時(shí)停止歸并聚類,并匯總各個(gè)Spark計(jì)算節(jié)點(diǎn)的聚類結(jié)果,然后再進(jìn)行一次歸并聚類。
[0022] 通過統(tǒng)計(jì)每個(gè)概率子圖同構(gòu)類中子圖數(shù)量sum,并利用初始概率子圖集的子圖數(shù) 量n,判斷sum/n與預(yù)設(shè)的頻繁度f之間的關(guān)系,若sum/n>f,則判定其是否為頻繁概率子 圖。
[0023] 有益效果:本發(fā)明與現(xiàn)有技術(shù)相比,具有以下優(yōu)點(diǎn):
[0024] 1.將概率子圖的拓?fù)浣Y(jié)構(gòu)轉(zhuǎn)換為對(duì)應(yīng)的伴隨電路,避免了采用傳統(tǒng)可能世界模型 (possible world model)的枚舉策略,并且通過增加一個(gè)參考節(jié)點(diǎn),極大縮短計(jì)算時(shí)間。
[0025] 2.利用歸并聚類方法,解決傳統(tǒng)的簡單層次聚類中任意兩個(gè)概率子圖兩兩判定方 法復(fù)雜度過高的問題。在保證聚類準(zhǔn)確度的同時(shí),有效降低了時(shí)空復(fù)雜度。
[0026] 3.建立了基于Spark并行框架的實(shí)現(xiàn)結(jié)構(gòu),進(jìn)一步提高頻繁概率子圖搜索方法的 執(zhí)行速度,并增加了方法的可擴(kuò)展能力,使之能夠適應(yīng)大數(shù)據(jù)環(huán)境的應(yīng)用需求。
【附圖說明】
[0027] 圖1為本發(fā)明實(shí)施例中概率子圖g轉(zhuǎn)換成對(duì)應(yīng)伴隨電路N的過程圖;
[0028] 圖2為本發(fā)明實(shí)施例的基于Spark框架的并行化方案圖;
[0029] 圖3為本發(fā)明實(shí)施例的歸并聚類流程圖。
【具體實(shí)施方式】
[0030] 下面結(jié)合具體實(shí)施例,進(jìn)一步闡明本發(fā)明,應(yīng)理解這些實(shí)施例僅用于說明本發(fā)明 而不用于限制本發(fā)明的范圍,在閱讀了本發(fā)明之后,本領(lǐng)域技術(shù)人員對(duì)本發(fā)明的各種等價(jià) 形式的修改均落于本申請(qǐng)所附權(quán)利要求所限定的范圍。
[0031] 本發(fā)明具體實(shí)施時(shí)包括以下幾個(gè)階段:
[0032] 步驟1,對(duì)概率子圖進(jìn)行預(yù)處理。從輸入的概率網(wǎng)絡(luò)(概率圖)中不重復(fù)、不