本發(fā)明涉及計(jì)算機(jī)技術(shù)領(lǐng)域,尤其涉及一種大圖數(shù)據(jù)庫(kù)中基于集合相似度的子圖匹配方法。
背景技術(shù):
圖作為一種數(shù)據(jù)結(jié)構(gòu)能夠簡(jiǎn)潔有力地刻畫出普遍事物間的聯(lián)系,因此基于圖的數(shù)據(jù)挖掘與管理技術(shù)無(wú)論在學(xué)術(shù)研究還是工業(yè)應(yīng)用上都享有重要的地位。在很多現(xiàn)實(shí)應(yīng)用例如社會(huì)網(wǎng)絡(luò)、語(yǔ)義網(wǎng)、生物網(wǎng)絡(luò)等中,圖數(shù)據(jù)庫(kù)已經(jīng)被廣泛用作建模和查詢復(fù)雜圖數(shù)據(jù)的重要工具。很多學(xué)者廣泛研究了關(guān)于圖的各種查詢,其中子圖匹配是一種基本的圖查詢類型。子圖匹配的數(shù)學(xué)基礎(chǔ)是圖論中的經(jīng)典問(wèn)題子圖同構(gòu),一個(gè)著名的np問(wèn)題。給出一個(gè)查詢圖q和一個(gè)大圖g,一種典型的子圖匹配查詢將檢索g中那些在圖結(jié)構(gòu)和頂點(diǎn)標(biāo)簽兩方面都準(zhǔn)確匹配q的子圖。然而,在一些圖的應(yīng)用中,每個(gè)頂點(diǎn)往往包含了一系列代表該頂點(diǎn)不同特征屬性的元素,而且頂點(diǎn)標(biāo)簽的準(zhǔn)確匹配常常是難以實(shí)現(xiàn)的。
當(dāng)下并沒(méi)有研究工作對(duì)同構(gòu)和運(yùn)用動(dòng)態(tài)元素權(quán)重的集合相似度的語(yǔ)義下的子圖匹配文題進(jìn)行研究。傳統(tǒng)的加權(quán)集合相似度關(guān)注固定元素權(quán)重,這其實(shí)是動(dòng)態(tài)權(quán)重的集合相似度的一種特殊情形。由于頂點(diǎn)的不同匹配語(yǔ)義,以前的精確或近似子圖匹配技術(shù)并不能直接運(yùn)用于sms2查詢的解決中。運(yùn)用動(dòng)態(tài)加權(quán)集的相似度和結(jié)構(gòu)約束來(lái)有效解決sms2查詢是具有挑戰(zhàn)性的問(wèn)題。有兩個(gè)直接的方法對(duì)現(xiàn)有的算法進(jìn)行修改后解決了sms2查詢問(wèn)題。第一種方法是運(yùn)用已有的子圖同構(gòu)算法進(jìn)行子圖同構(gòu),如文(l.p.cordella,p.foggia,c.sansone,andm.vento,“a(sub)graphisomorphismalgorithmformatchinglargegraphs,”ieeetrans.patternanal.mach.intell.,vol.26,no.10,pp.1367–1372,oct.2004.)中所進(jìn)行的那樣,然后通過(guò)考察每一對(duì)匹配頂點(diǎn)間的加權(quán)集合相似度對(duì)候選子圖進(jìn)行提煉。第二種方法將步驟順序進(jìn)行了顛倒,先通過(guò)計(jì)算加權(quán)集合相似度在數(shù)據(jù)圖中找出與查詢圖中的頂點(diǎn)有相似集的候選頂點(diǎn),這一步在計(jì)算復(fù)雜度上代價(jià)高昂,接下來(lái)再得到匹配的子圖。然而這兩種方法通常會(huì)造成高查詢損耗,尤其是面對(duì)大圖數(shù)據(jù)庫(kù)。這是因?yàn)榈谝环N方法忽略了加權(quán)集合相似度的限制條件,而第二種方法在過(guò)濾候選結(jié)果時(shí)忽略了結(jié)構(gòu)信息。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明要解決的技術(shù)問(wèn)題在于針對(duì)現(xiàn)有技術(shù)中的缺陷,提供一種大圖數(shù)據(jù)庫(kù)中基于集合相似度的子圖匹配方法。
本發(fā)明解決其技術(shù)問(wèn)題所采用的技術(shù)方案是:一種大圖數(shù)據(jù)庫(kù)中基于集合相似度的子圖匹配方法,包括以下步驟:
1)在查詢圖的多個(gè)支配集中選取一個(gè)經(jīng)濟(jì)的支配集,所述經(jīng)濟(jì)的支配集包含最少的支配頂點(diǎn)數(shù),且每個(gè)支配頂點(diǎn)的候選點(diǎn)數(shù)是最少的;
2)集合相似度剪枝:運(yùn)用集合相似度剪枝方法得到查詢頂點(diǎn)的所有候選點(diǎn);
3)基于結(jié)構(gòu)的剪枝;根據(jù)查詢圖q同構(gòu)的結(jié)構(gòu)限制,對(duì)查詢頂點(diǎn)的所有候選點(diǎn)基于結(jié)構(gòu)剪枝,過(guò)濾查詢頂點(diǎn)的候選點(diǎn);
4)基于支配集的子圖匹配:
4.1)將查詢圖q轉(zhuǎn)化為支配查詢圖;
4.2)在數(shù)據(jù)圖g中找出支配查詢圖的所有匹配,即qd和g的子圖間的映射m(qd);
4.3)找出查詢圖q的所有子圖匹配:將每個(gè)支配查詢圖qd的匹配擴(kuò)展為查詢圖q的子圖匹配;
如果當(dāng)前狀態(tài)m(s)覆蓋了q的所有頂點(diǎn),則按照當(dāng)前狀態(tài)m(s)輸出映射m(q);
否則,對(duì)每個(gè)未覆蓋的非支配頂點(diǎn)u′,考慮u′的1-hop和2-hop的鄰近支配頂點(diǎn),然后檢查是否有候選對(duì)(u′,v′)滿足集合相似度的子圖匹配的條件,若是,則該候選對(duì)添加到當(dāng)前狀態(tài)中;遍歷結(jié)束后,按照當(dāng)前狀態(tài)m(s)輸出映射m(q)。
按上述方案,所述步驟1)中選取一個(gè)經(jīng)濟(jì)的支配集包括以下步驟:
1.1)運(yùn)用branchandreduce從未被選擇的查詢頂點(diǎn)中迭代地選擇一個(gè)擁有最少候選點(diǎn)數(shù)的查詢頂點(diǎn)u;
1.2)利用hashsampling方法估算查詢頂點(diǎn)u的候選點(diǎn)數(shù);
1.3)根據(jù)步驟1.1)和1.2)的結(jié)果選出經(jīng)濟(jì)的支配集。
按上述方案,所述步驟2)中集合相似度剪枝包括以下步驟:
2.1)從經(jīng)濟(jì)的支配集包含的頂點(diǎn)集中挖掘密集頻繁模式,基于所有的1-頻繁模式和密集k-頻繁模式構(gòu)建格,其中k≥2;首先需要從數(shù)據(jù)圖g的所有頂點(diǎn)元素集中挖掘頻繁模式,然后將所有頻繁模式組織為一個(gè)格。在格中,每個(gè)連接點(diǎn)p是一個(gè)頻繁模式,它是其自身所有下位點(diǎn)的子集。
2.2)根據(jù)格中的頻繁模式構(gòu)建倒排模式格;遵循以下原則:倒排模式格中的同一層的頻繁模式有相同的規(guī)模,且在k層的規(guī)模為k;
2.3)運(yùn)用三種集合相似度剪枝方法得到查詢頂點(diǎn)的所有候選點(diǎn);對(duì)查詢頂點(diǎn)u,首先運(yùn)用垂直剪枝和橫向剪枝來(lái)過(guò)濾出位置錯(cuò)誤的模式并確定倒排模式格中應(yīng)當(dāng)被掃描的點(diǎn),然后使用廣度優(yōu)先搜索對(duì)其進(jìn)行遍歷,對(duì)每個(gè)被掃描的點(diǎn)p,進(jìn)行反單調(diào)剪枝,獲得最終結(jié)果。
按上述方案,所述步驟2.1)中將所有密集k-頻繁模式p按supp(p)的值倒序排列,并選擇前
按上述方案,所述步驟3基于結(jié)構(gòu)的剪枝包括以下步驟:
3.1)設(shè)計(jì)輕量簽名:為所有查詢頂點(diǎn)和數(shù)據(jù)頂點(diǎn)設(shè)計(jì)輕量簽名標(biāo)記用于過(guò)濾候選點(diǎn)。
3.2)設(shè)計(jì)基于簽名的局部敏感散列哈希函數(shù)lsh:
使用一組局部敏感散列哈希函數(shù)來(lái)hash每個(gè)數(shù)據(jù)簽名sig(v)進(jìn)入簽名桶,使每個(gè)簽名桶中的數(shù)據(jù)簽名的最大hamming距離最小化;
步驟3.3:結(jié)構(gòu)化剪枝:
基于sms2查詢定義,一個(gè)數(shù)據(jù)頂點(diǎn)v可以被剪掉,只要bv(u)和bv(v)的相似度小于閾值τ,或者不存在bv(vj),滿足與bv(ui)的相似度限制,其中vj(j=1,…,n)和ui(i=1,…,m)是分別對(duì)應(yīng)v和u的1-hop鄰近;
位向量bv(u)和bv(v)間的相似度定義為:
其中∧表示位與運(yùn)算,∨表示位或運(yùn)算,a∈bv(u)∧bv(v)意味著對(duì)應(yīng)a的位為1,w(a)則為a的權(quán)重。
對(duì)每個(gè)bv(ui),我們需要確定是否存在bv(vj)使得sim(bv(ui),bv(vj))≥τ。我們估測(cè)bv(ui)和bv∪(v)間的標(biāo)準(zhǔn)相似度上界通過(guò)以下方法:
位向量bv(ui)和bv∪(v)間的標(biāo)準(zhǔn)相似度上界表示為:
按上述方案,所述步驟3)中為所有查詢頂點(diǎn)和數(shù)據(jù)頂點(diǎn)設(shè)計(jì)輕量簽名標(biāo)記分別稱為查詢簽名sig(u)和數(shù)據(jù)簽名sig(v),對(duì)應(yīng)查詢頂點(diǎn)u和數(shù)據(jù)頂點(diǎn)v;具體如下:
查詢簽名sig(u):
給出查詢圖q中的一個(gè)擁有可變鄰近頂點(diǎn)ui(i=1,…,m)的頂點(diǎn)u,其查詢簽名sig(u)由一個(gè)位向量集給出,即sig(u)={bv(u),bv(u1),…,bv(um)},其中bv(u)和bv(ui)是分別為集合s(u)和s(ui)的元素編碼表示的位向量;
數(shù)據(jù)簽名sig(v):
給出查詢圖q中的一個(gè)擁有可變鄰近頂點(diǎn)vi(i=1,…,m)的頂點(diǎn)v,數(shù)據(jù)簽名sig(v)表示為:
按上述方案,步驟4.2)在數(shù)據(jù)圖g中找出支配查詢圖的所有匹配,具體如下:初始化m(qd)當(dāng)下?tīng)顟B(tài)s為空集,根據(jù)數(shù)據(jù)圖g構(gòu)建一個(gè)包含所有可能候選對(duì)(u,v)的候選對(duì)集合pa(s),并將其添加到當(dāng)前狀態(tài)s中,當(dāng)候選對(duì)(u,v)被添加到當(dāng)前映射m(s)中時(shí),校驗(yàn)m(s)是否滿足保持距離原則,若是,則繼續(xù)這個(gè)過(guò)程直到找出一個(gè)qd的子圖匹配,否則搜索停止,最終輸出映射m(s)為m(qd)。
按上述方案,當(dāng)候選對(duì)(u,v)被添加到當(dāng)前映射m(s)中時(shí),校驗(yàn)m(s)是否滿足保持距離原則保持距離原則,所述保持距離原則如下:給出數(shù)據(jù)圖g中支配查詢圖qd的一個(gè)匹配子圖xd,qd和xd分別有n個(gè)頂點(diǎn)u1,…,un和v1,…,vn,其中,考慮qd中的邊(ui,uj),有以下保持距離原則:
(1)如果邊權(quán)重為1,則vi是vj的鄰近;
(2)如果邊權(quán)重為2,則有|n1(vi)∩n1(vj)|>0;
(3)如果邊權(quán)重為3,則有|n1(vi)∩n2(vj)|>0或|n2(vi)∩n1(vj)|>0。
本發(fā)明產(chǎn)生的有益效果是:
(1)本發(fā)明設(shè)計(jì)了一種新穎的有效解決sms2查詢的技術(shù)。一個(gè)倒排的基于格的索引和一種結(jié)構(gòu)化的基于簽名的局部靈敏散列(localitysensitivehashing,簡(jiǎn)稱lsh)都在線下過(guò)程中首先被施行,在線上過(guò)程中,一系列剪枝技術(shù)將被應(yīng)用和整合,從而更好地減小sms2查詢的搜索空間。
(2)本發(fā)明提出了一種運(yùn)用了創(chuàng)新的關(guān)于數(shù)據(jù)頂點(diǎn)的元素集的倒排模式格的集合相似度剪枝技術(shù)來(lái)度量動(dòng)態(tài)加權(quán)的集合相似度。該方法引入一種動(dòng)態(tài)加權(quán)的相似度的上界來(lái)運(yùn)用反單調(diào)原則得到更好的剪枝效果。
(3)本發(fā)明提出了一種結(jié)構(gòu)化的剪枝技術(shù),探索出一種新穎的基于結(jié)構(gòu)化標(biāo)記的數(shù)據(jù)組織結(jié)構(gòu),其中標(biāo)記被設(shè)計(jì)用于捕捉集合與相鄰集的信息。一種聚集支配(aggregatedominance)原則被設(shè)計(jì)出來(lái)用于引導(dǎo)剪枝過(guò)程。
(4)不同于直接的查詢和校驗(yàn)查詢圖中的所有候選頂點(diǎn),我們?cè)O(shè)計(jì)了一種有效的算法來(lái)基于查詢圖的支配集展開(kāi)子圖匹配過(guò)程。當(dāng)補(bǔ)充完剩余頂點(diǎn)后,距離保持原則被設(shè)計(jì)出來(lái)以裁剪掉那些不能與支配頂點(diǎn)保持距離的候選頂點(diǎn)。
(5)最后我們通過(guò)實(shí)驗(yàn)證實(shí)了本發(fā)明可以有效解決大圖數(shù)據(jù)庫(kù)中的sms2查詢問(wèn)題。
附圖說(shuō)明
下面將結(jié)合附圖及實(shí)施例對(duì)本發(fā)明作進(jìn)一步說(shuō)明,附圖中:
圖1是本發(fā)明實(shí)施例的從dblp中找到匹配查詢引證圖的引證論文的示例;其中,圖1b是本發(fā)明實(shí)施例的dblp中的引文圖g;圖1a是本發(fā)明實(shí)施例的查詢圖q;
圖2是本發(fā)明實(shí)施例的倒排模式格;
圖3是本發(fā)明實(shí)施例的集合相似度剪枝示例;其中,圖3a是本發(fā)明實(shí)施例的反單調(diào)剪枝;圖3b是本發(fā)明實(shí)施例的垂直剪枝;圖3c是本發(fā)明實(shí)施例的橫向剪枝;
圖4是本發(fā)明實(shí)施例的鄰近支配頂點(diǎn)的可能拓?fù)浣Y(jié)構(gòu);
圖5是本發(fā)明實(shí)施例的一個(gè)支配查詢圖的示例。
具體實(shí)施方式
為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合實(shí)施例,對(duì)本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說(shuō)明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
實(shí)施例:從dblp中找到需要的論文
dblp計(jì)算機(jī)科學(xué)目錄提供了一個(gè)引文圖g如圖1b,其中頂點(diǎn)代表論文,邊代表論文之間的引證關(guān)系。每篇文章包含一個(gè)關(guān)鍵詞集,其中每個(gè)關(guān)鍵詞被賦予了一個(gè)權(quán)重用于測(cè)度它在文中的重要性。事實(shí)上,一個(gè)研究者會(huì)基于引證關(guān)系和文章內(nèi)容相似度來(lái)從dblp中尋找論文。例如,一名研究人員希望找到同時(shí)被社會(huì)網(wǎng)絡(luò)方面和蛋白質(zhì)相互作用方面的論文引用的子圖匹配方面的論文。此外,這名研究人員需要被社會(huì)網(wǎng)絡(luò)方面文章引用的蛋白質(zhì)相互作用網(wǎng)絡(luò)研究方面的論文。這樣的查詢可以建模構(gòu)成sms2查詢問(wèn)題,其中包含從g中找到匹配查詢圖q(圖1a)的子圖。q中的每篇論文即頂點(diǎn)和其在g中的匹配論文應(yīng)該有相似的關(guān)鍵詞集,而且每個(gè)引證關(guān)系即邊應(yīng)當(dāng)準(zhǔn)確符合研究人員的要求。
實(shí)施例具體的實(shí)施方案如下:
步驟1:支配集的選擇;一個(gè)查詢圖可能有多個(gè)支配集,從而產(chǎn)生sms2查詢的不同表現(xiàn),由此,本發(fā)明將提出一個(gè)支配集選擇算法來(lái)選出查詢圖q的一個(gè)更為經(jīng)濟(jì)的支配集,從而降低解決sms2查詢的開(kāi)支。
步驟2:集合相似度剪枝;本發(fā)明構(gòu)建了一個(gè)創(chuàng)新的倒排模式格用于更好地執(zhí)行基于集合相似度的有效剪枝。
步驟3:基于結(jié)構(gòu)的剪枝;一個(gè)匹配的子圖應(yīng)當(dāng)不僅僅使其頂點(diǎn)與對(duì)應(yīng)查詢頂點(diǎn)相似,還要保證與q同構(gòu)。因此,在集合相似度剪枝完成后,本發(fā)明根據(jù)結(jié)構(gòu)限制,為所有查詢頂點(diǎn)和數(shù)據(jù)頂點(diǎn)設(shè)計(jì)了輕量簽名標(biāo)記用于過(guò)濾候選點(diǎn)。
步驟4:基于支配集的子圖匹配;本發(fā)明提出一種有效的基于支配集的子圖匹配算法即ds-match,運(yùn)用一種支配集選擇方法加以輔助。
本發(fā)明的步驟1支配集的選擇的具體操作流程如下:
一個(gè)經(jīng)濟(jì)的支配集應(yīng)當(dāng)包含最少的支配頂點(diǎn)數(shù),從而保證最小化過(guò)濾開(kāi)支。此外,我們還應(yīng)當(dāng)確保每個(gè)支配頂點(diǎn)的候選點(diǎn)數(shù)是最小的,以減少子圖同構(gòu)過(guò)程中的中間結(jié)果。找出一個(gè)經(jīng)濟(jì)的支配集的問(wèn)題實(shí)際上是一個(gè)最小支配集問(wèn)題(mds)。mds問(wèn)題等價(jià)于最小邊覆蓋問(wèn)題,該問(wèn)題是np復(fù)雜的。因此,我們運(yùn)用一個(gè)效果最優(yōu)的branchandreduce算法,該算法從未被選擇的查詢頂點(diǎn)中迭代地選擇一個(gè)擁有最少候選點(diǎn)數(shù)的頂點(diǎn)u。找出支配集的開(kāi)支很低,因?yàn)椴樵儓D通常很小。
由于我們?cè)趕ms2查詢完成之前不知道一個(gè)查詢頂點(diǎn)u的候選點(diǎn)數(shù),可以利用hashsampling方法來(lái)進(jìn)行快速估算。hashsampling方法可以構(gòu)建sample
其中
由上,便可以選出一個(gè)經(jīng)濟(jì)的支配集。
在圖1中,可以發(fā)現(xiàn)u3有最少的候選點(diǎn)數(shù),因此依據(jù)branchandreduce算法,{u1,u3}被選中作為經(jīng)濟(jì)的支配集。
本發(fā)明的步驟2集合相似度剪枝可以分為如下幾個(gè)子步驟分別執(zhí)行:
步驟2.1:頻繁模式的選擇
用
由于頻繁模式數(shù)量很多,如果在倒排模式格中一次檢索所有的頻繁模式,則格無(wú)法適用memory。如前所述,頻繁模式中元素越多,得到的as上界限制越嚴(yán)格。因此。我們需要選擇包含很多元素的頻繁模式,這樣可以剪掉更多的頻繁模式,查詢時(shí)間也就可以縮短。此外,我們還應(yīng)該設(shè)置每個(gè)頻繁模式的代表?;谝陨蟽?nèi)容,我們從頂點(diǎn)集中挖掘密集頻繁模式。一個(gè)頻繁模式p是密集的,如果不存在模式p’使得
步驟2.2:倒排模式格的構(gòu)建
為了建立一個(gè)倒排模式格,我們首先需要將所有頻繁模式組織為一個(gè)格。在格中,每個(gè)連接點(diǎn)p是一個(gè)頻繁模式,它是其自身所有下位點(diǎn)的子集。將有k個(gè)元素的頻繁模式表示為k-頻繁模式。為了確定索引的復(fù)雜度,1-頻繁模式被歸入格的第一層。對(duì)格中每個(gè)k-頻繁模式p,假定頻繁模式p和p′都被s(v)支持且
總之,令{p1,…,pn}為由s(v)支持的頻繁模式集合,并假定存在由{p1,…,pn}構(gòu)造的k條路徑。路徑是倒排模式格中由從高層向低層的開(kāi)環(huán)連接的點(diǎn)構(gòu)成的。僅將v插入每條路徑最底層處由s(v)支持的頻繁模式中,這樣就可以有效減少倒排序列的空間開(kāi)銷。
圖2是一個(gè)倒排模式格的示例,它有圖1b中的數(shù)據(jù)頂點(diǎn)建立。元素a1,a2,a3,a4,分別對(duì)應(yīng)關(guān)鍵詞“子圖匹配”、“蛋白質(zhì)相互作用”、“社會(huì)網(wǎng)絡(luò)”、“搜尋”。然后v1={a1},v2={a3,a4},v3={a2,a4},v4={a1,a3},v5={a3},v6={a1}。
步驟2.3:剪枝
本發(fā)明將運(yùn)用三種集合相似度剪枝技術(shù)得到查詢頂點(diǎn)的所有候選點(diǎn)。首先介紹一下這三種剪枝技術(shù)的具體操作流程。
第一種:反單調(diào)剪枝
給出查詢頂點(diǎn)u,對(duì)倒排模式格中的每一個(gè)頻繁模式p,如果ub(s(u),p)<τ,則倒排序列l(wèi)(p)和l(p′)中的所有頂點(diǎn)都應(yīng)該被剪掉,其中p′是p的下位點(diǎn)。
第二種:垂直剪枝
垂直剪枝是基于前綴過(guò)濾原則的:如果兩個(gè)規(guī)范化集合是相似的,那么兩個(gè)集合的前綴應(yīng)當(dāng)互相覆蓋,因?yàn)榉駝t的話兩個(gè)集合將沒(méi)有足夠的公共元素。
我們將查詢集s(u)中的所有元素在支配集的選擇過(guò)程中按照權(quán)重的降序排列進(jìn)行規(guī)范化。排在前面的p個(gè)元素則為s(u)的p-前綴。我們找到最大前綴長(zhǎng)度p,從而如果有s(u)和s(v)都不覆蓋p-前綴,則s(v)可以被剪掉,因?yàn)樗鼈儧](méi)有足夠的重疊區(qū)域來(lái)滿足相似度閾值。
為了找出s(u)的p-前綴,每次從s(u)中移動(dòng)元素時(shí),我們檢查剩余元素的集合s‘(u)是否滿足相似度閾值條件。將s(u)的l1-范數(shù)表示為||s(u)||1=∑a∈s(u)w(a)。如果||s’(u)||1<τ×||s(u)||1,則移動(dòng)停止。p的值等于|s’(u)|-1,其中|s’(u)|是s’(u)的元素?cái)?shù)量。對(duì)任意不包含p-前綴元素的集合s(v),有
第三種:橫向剪枝
一個(gè)查詢?cè)丶痵(u)不會(huì)與一個(gè)規(guī)模特別大或特別小的集合的頻繁模式相似。頻繁模式p的規(guī)模|p|即為p中元素的數(shù)量。在倒排模式格中,每個(gè)頻繁模式p是p的倒排序列中數(shù)據(jù)頂點(diǎn)的一個(gè)子集。假定我們可以找到的長(zhǎng)度上界lu(u),如果p的規(guī)模大于lu(u),則p及其倒排序列可以被剪掉。
由于動(dòng)態(tài)元素權(quán)重的緣故,我們需要得到s(u)的長(zhǎng)度間隔。我們通過(guò)按照元素權(quán)重正序向s(u)中加入
處于倒排模式格中的同一層的頻繁模式有相同的規(guī)模,且在k層的規(guī)模為k。因此,得到lu(u)后,可以確定橫向上界。所有在lu(u)層以下的頻繁模式都會(huì)被剪掉。
然后本發(fā)明將利用以上所有的集合相似度剪枝技術(shù)得到查詢頂點(diǎn)的所有候選點(diǎn)。
對(duì)查詢頂點(diǎn)u,我們首先運(yùn)用垂直剪枝和橫向剪枝來(lái)過(guò)濾出位置錯(cuò)誤的模式并確定倒排模式格中應(yīng)當(dāng)被掃描的點(diǎn)。然后使用廣度優(yōu)先搜索對(duì)其進(jìn)行遍歷。對(duì)每個(gè)被掃描的點(diǎn)p,考察是否有ub(s(u),p)<τ,若是,則p及其下位點(diǎn)將會(huì)被剪掉。為了優(yōu)化查詢效果,頻繁模式格駐留在內(nèi)存,而頻繁模式的倒排表駐留在外存上。
圖1a中的查詢頂點(diǎn)u3,及其元素集s(u3)={a2,a4}。假設(shè)w(a1)=o.5,w(a2)=0.4,w(a3)=0.5,w(a4)=0.2,相似度閾值τ=0.6。正如圖3a所展現(xiàn)的,由于ub(s(u3),p6)=0.55<0.6,p6和其所有下位點(diǎn)都應(yīng)當(dāng)被剪掉。同樣的,p1、p3及其下位點(diǎn)也可以被剪掉。這些模式的倒排序列中的所有頂點(diǎn)也都可以被剪掉。
對(duì)查詢頂點(diǎn)s(u3)={a2,a4},我們可以確定其集合的p-前綴為{a2}。正如圖3b所展現(xiàn)的,我們只需要access和其所有下位點(diǎn)。其他頻繁模式的倒排序列里所有的頂點(diǎn)都可以被剪掉。
考慮查詢頂點(diǎn)s(u3)={a2,a4},和
本發(fā)明的步驟3基于結(jié)構(gòu)的剪枝可以分為如下幾個(gè)子步驟分別執(zhí)行:
步驟3.1:設(shè)計(jì)輕量簽名
一個(gè)匹配的子圖應(yīng)當(dāng)不僅僅使其頂點(diǎn)與對(duì)應(yīng)查詢頂點(diǎn)相似,還要保證與q同構(gòu)。本發(fā)明將根據(jù)結(jié)構(gòu)限制,為所有查詢頂點(diǎn)和數(shù)據(jù)頂點(diǎn)設(shè)計(jì)輕量簽名標(biāo)記用于過(guò)濾候選點(diǎn)。
本發(fā)明定義了兩種典型的結(jié)構(gòu)化簽名,稱為查詢sig(u)和數(shù)據(jù)sig(v),分別對(duì)應(yīng)查詢頂點(diǎn)u和數(shù)據(jù)頂點(diǎn)v。
查詢簽名:
給出查詢圖q中的一個(gè)擁有可變鄰近頂點(diǎn)ui(i=1,…,m)的頂點(diǎn)u,其查詢簽名sig(u)由一個(gè)位向量集給出,即sig(u)={bv(u),bv(u1),…,bv(um)},其中bv(u)和bv(ui)是分別為集合s(u)和s(ui)的元素編碼表示的位向量。
數(shù)據(jù)簽名:
給出查詢圖q中的一個(gè)擁有可變鄰近頂點(diǎn)vi(i=1,…,m)的頂點(diǎn)v,數(shù)據(jù)簽名sig(v)表示為:
為了編碼結(jié)構(gòu)化信息,sig(u)/sig(v)應(yīng)當(dāng)包含u/v及其周圍頂點(diǎn)的元素信息。由于查詢圖通常很小,我們通過(guò)編碼每個(gè)鄰近頂點(diǎn)來(lái)生成精確查詢簽名。相對(duì)地,數(shù)據(jù)圖比查詢圖大得多,所以鄰近頂點(diǎn)的聚合可以節(jié)省很多空間。限制數(shù)據(jù)簽名的數(shù)量,從而可以降低剪枝損耗。先將元素集s(u)和s(v)中的元素按照預(yù)先定義的順序進(jìn)行排列?;谂帕泻玫脑丶梦幌蛄縝v(u)對(duì)元素集s(u)進(jìn)行編碼。向量中的每個(gè)分量bv(u)[i]對(duì)應(yīng)一個(gè)元素aj,其中
步驟3.2:設(shè)計(jì)基于簽名的lsh:
為了實(shí)現(xiàn)基于結(jié)構(gòu)化信息上的有效剪枝,我們使用一組局部敏感散列哈希函數(shù)(lshhashfunctions)來(lái)hash每個(gè)數(shù)據(jù)簽名sig(v)進(jìn)入簽名桶,接下來(lái)對(duì)此過(guò)程進(jìn)行定義。
一個(gè)簽名桶是很多個(gè)存儲(chǔ)一組帶有相同哈希值的數(shù)據(jù)簽名的哈希表的集合。由于發(fā)生在相似簽名間發(fā)生碰撞的概率比不相似的要高得多,每個(gè)簽名桶中的數(shù)據(jù)簽名的最大hamming距離需要最小化。此外,我們存儲(chǔ)桶簽名sig(b),該簽名由b里的oring中所有數(shù)據(jù)簽名組成,即有sig(b)=[vbv(vt),vbv∪(vt)],其中t=1,…,n,n是b中所有簽名的數(shù)量。
步驟3.3:結(jié)構(gòu)化剪枝:
基于sms2查詢定義,一個(gè)數(shù)據(jù)頂點(diǎn)v可以被剪掉,只要bv(u)和bv(v)的相似度小于閾值τ,或者不存在bv(vj),滿足與bv(ui)的相似度限制,其中vj(j=1,…,n)和ui(i=1,…,m)是分別對(duì)應(yīng)v和u的1-hop鄰近。
位向量bv(u)和bv(v)間的相似度定義為:
其中∧表示位與運(yùn)算,∨表示位或運(yùn)算,a∈bv(u)∧bv(v)意味著對(duì)應(yīng)a的位為1,w(a)則為a的權(quán)重。
對(duì)每個(gè)bv(ui),我們需要確定是否存在bv(vj)使得sim(bv(ui),bv(vj))≥τ。我們估測(cè)bv(ui)和bv∪(v)間的標(biāo)準(zhǔn)相似度上界通過(guò)以下方法:
位向量bv(ui)和bv∪(v)間的標(biāo)準(zhǔn)相似度上界表示為:
下面給出結(jié)構(gòu)化剪枝依據(jù)的定理和引理和具體操作流程:
aggregatedominance定理:
給出一個(gè)查詢簽名sig(u)和數(shù)據(jù)簽名sig(v),如果有ub′(bv(ui),bv∪(v))<τ,則對(duì)v的每個(gè)1-hop鄰近vj而言,都有sim(bv(ui),bv(vj))<τ。
引理1:給出一個(gè)查詢簽名sig(u)和一個(gè)桶簽名sig(b),假定簽名桶b包含n個(gè)數(shù)據(jù)簽名sig(vt)(t=1,…,n),如果ub′(bv(u),∨bv(vt))<τ或存在u的至少一個(gè)鄰近頂點(diǎn)ui使得ub′(bv(u),∨bv∪(vt))<τ,則b中所有的數(shù)據(jù)簽名都可以被剪掉。
引理2:給出一個(gè)查詢簽名sig(u)和一個(gè)數(shù)據(jù)簽名sig(v),如果有sim(bv(u),bv(v))<τ或存在u的至少一個(gè)鄰近頂點(diǎn)ui(i=1,…,m)使得ub′(bv(ui),bv∪(v))<τ,則sig(v)可以被剪掉。
具體的結(jié)構(gòu)化剪枝流程如下。首先剪掉那些不包含查詢頂點(diǎn)的候選點(diǎn)的簽名桶,然后基于引理1將簽名桶整體剪掉。對(duì)于保留下來(lái)的簽名桶b中的候選點(diǎn)v,檢查sig(u)和sig(v)間的相似度限制,基于引理2剪掉sig(v)。aggregatedominance定理確保了結(jié)構(gòu)化剪枝不會(huì)剪掉合法候選點(diǎn),因此可以得到準(zhǔn)確的結(jié)果。
考慮圖1a中的查詢頂點(diǎn)u1的一個(gè)one-hop鄰近u3,有bv(u3)=0101,以及數(shù)據(jù)頂點(diǎn)v5的1-hopv2和v4,有bv(v2)=0011,bv(v4)=1010。由于bv∪(v)=bv(v2)∨bv(v4)=1011,ub′(bv(u3),bv∪(v))<0.6=τ?;赼ggregatedominance定理,有sim(bv(u3),bv(vj))<τ,其中j=2,4。因此,盡管有s(u1)=s(v5),v5也不是u1的一個(gè)候選頂點(diǎn)。
本發(fā)明的步驟4基于支配集的子圖匹配可以分為如下幾個(gè)子步驟分別執(zhí)行:
步驟4.1:找出支配查詢圖(dqg)
首先給出支配查詢圖滿足的定理。
定理1:假定u是q的支配集ds(q)的一個(gè)支配頂點(diǎn),如果|ds(q)|≥2,則存在至少一個(gè)頂點(diǎn)u'∈ds(q)使得hop(u,u')≤3,其中hop()表示兩頂點(diǎn)間hops數(shù)量的最小值。支配頂點(diǎn)u’被稱為支配頂點(diǎn)u的鄰近。
定理2:給出一個(gè)圖q的一個(gè)頂點(diǎn)u,u的1-hop鄰近集n1(u)和2-hop鄰近集n2(u)被定義為:n1(u)={u′|存在連接u和u′的長(zhǎng)度為1的路徑};n2(u)={u′|存在連接u和u′的長(zhǎng)度為2的路徑}。鄰近支配頂點(diǎn)的可能拓?fù)浣Y(jié)構(gòu)如圖4所示。圖4存在兩個(gè)鄰近支配頂點(diǎn)和間的四種可能的最短路徑拓?fù)洹?/p>
最后我們可以按照以下條件找出支配查詢圖。
給出一個(gè)支配集ds(q),支配查詢圖qd被定義為<v(qd),e(qd)>,且有e(qd)中的邊(ui,uj)成立,當(dāng)且僅當(dāng)以下條件中至少一項(xiàng)成立:
(1)ui是查詢圖q中與uj鄰近的點(diǎn);
(2)|n1(ui)∩n1(uj)|>0;
(3)|n1(ui)∩n2(uj)|>0;
(4)|n2(ui)∩n1(uj)|>0。
在條件1中,邊的權(quán)重為1;在條件2中,邊的權(quán)重為2;在條件3和4中,邊的權(quán)重為3。為了將查詢圖q轉(zhuǎn)化為支配查詢圖,首先要得到q的支配集ds(q),然后為ds(q)中的每對(duì)頂點(diǎn)ui和uj確定是否存在連接兩頂點(diǎn)的邊(ui,uj)和邊(ui,uj)的權(quán)重。
圖5展示了一個(gè)查詢圖q的支配查詢圖qd的示例。q的支配集包括。注意到邊(u1,u3)擁有兩個(gè)權(quán)重“1和2”,原因是在q中u1是u3的鄰近且有|n1(u1)∩n1(u3)|>0。
步驟4.2:找出支配查詢圖的匹配
為了找出支配查詢圖中的匹配,我們提出保持距離原則。
定理3:保持距離(distancepreservation)原則。給出數(shù)據(jù)圖g中支配查詢圖qd的一個(gè)匹配子圖xd,qd和xd分別有n個(gè)頂點(diǎn)u1,…,un和v1,…,vn,其中??紤]qd中的邊(ui,uj),有以下保持距離原則:
(1)如果邊權(quán)重為1,則vi是vj的鄰近;
(2)如果邊權(quán)重為2,則有|n1(vi)∩n1(vj)|>0;
(3)如果邊權(quán)重為3,則有|n1(vi)∩n2(vj)|>0或|n2(vi)∩n1(vj)|>0。
接下來(lái)提出一種基于保持距離原則的支配查詢圖匹配算法用于找出支配查詢圖的所有匹配。一個(gè)子圖匹配記為一種從v(qd)到v(x)的映射關(guān)系m,其中x是qd的一個(gè)匹配子圖。找出這種映射關(guān)系的過(guò)程可以用ssr加以描述。每個(gè)狀態(tài)s都與一個(gè)映射m(s)相聯(lián)系。
算法1:dqg-match
在算法1中,當(dāng)下?tīng)顟B(tài)s初始化為空集。構(gòu)建一個(gè)包含所有可能候選對(duì)(u,v)的候選對(duì)集合pa(s),并將其添加到當(dāng)前狀態(tài)s中,如第五行所示。當(dāng)候選對(duì)(u,v)被添加到當(dāng)前映射m(s)中時(shí),校驗(yàn)m(s)是否滿足保持距離原則,若是,則繼續(xù)這個(gè)過(guò)程直到找出一個(gè)qd的子圖匹配,否則搜索停止。例如,給出支配查詢圖qd,{v2}和{v3}是對(duì)應(yīng)u1和u3的頂點(diǎn),因此映射m為v3{(u1,v2),(u3,v3)}。
步驟4.3:子圖匹配
首先調(diào)用算法1來(lái)找出映射關(guān)系m(qd)。當(dāng)前狀態(tài)s的映射關(guān)系m(s)被初始化為m(qd)。然后,將每個(gè)支配查詢圖qd的匹配擴(kuò)展為查詢圖q的子圖匹配。如果m(s)覆蓋了q的所有頂點(diǎn),則輸出映射m(q)。否則,對(duì)每個(gè)非支配頂點(diǎn)u′∈v(q)-v(qd),考慮u’的1-hop和2-hop的鄰近支配頂點(diǎn)。注意到對(duì)每個(gè)支配頂點(diǎn)ui∈n1(u′)和uj∈n2(u′),候選頂點(diǎn)集c(ui)和c(uj)已經(jīng)在算法1中被找出?;诒3志嚯x原則,u’的每個(gè)候選頂點(diǎn)v’必須是c(ui)和c(uj)中頂點(diǎn)的1-hop和2-hop鄰近。然后檢查是否有候選對(duì)(u′,v′)滿足定義1中的運(yùn)用集合相似度的子圖匹配的條件,若是,則該候選對(duì)可被添加到當(dāng)前狀態(tài)中。循環(huán)這個(gè)過(guò)程直到所有的非支配頂點(diǎn)都被考察結(jié)束。
算法2:ds-match
圖1a中的查詢圖q的非支配頂點(diǎn)為u2,因此其鄰近支配頂點(diǎn)為u1和u3。由于u1和u3的匹配頂點(diǎn)為u2和u3,因而u2的候選頂點(diǎn)為n1(v2)∩n1(v3)=v1。
本發(fā)明研究了運(yùn)用集合相似度的子圖匹配問(wèn)題,該問(wèn)題應(yīng)用十分廣泛。為了解決這個(gè)問(wèn)題,考慮頂點(diǎn)集合相似度和圖拓?fù)?,提出了有效的剪枝技術(shù)。設(shè)計(jì)了一種新穎的倒排模式格和結(jié)構(gòu)化的簽名桶來(lái)輔助進(jìn)行剪枝。最后提出了一種有效的基于支配集的子圖匹配算法來(lái)找出匹配子圖。實(shí)驗(yàn)證明了本發(fā)明方法的有效性和高效性。
應(yīng)當(dāng)理解的是,對(duì)本領(lǐng)域普通技術(shù)人員來(lái)說(shuō),可以根據(jù)上述說(shuō)明加以改進(jìn)或變換,而所有這些改進(jìn)和變換都應(yīng)屬于本發(fā)明所附權(quán)利要求的保護(hù)范圍。