Keys for graphs閱讀筆記

Neil_zk發表於2020-12-25

1、我們提出了一類圖的鍵,我們根據圖形模式定義鍵,以指定識別實體所需的拓撲約束和值繫結。此外,關鍵字可以遞迴定義:為了識別一對實體,我們可能需要決定是否能夠識別其他一些實體,如所示。我們通過子圖同構的圖模式匹配來解釋關鍵字。這使得這樣的鍵比我們熟悉的關係和XML鍵更具表現力。

2、我們研究實體匹配,這是圖的鍵的應用。給定一個圖G和圖的一組鍵Σ,實體匹配就是尋找G中所有可以被Σ中的鍵識別的實體(頂點)對。我們通過修正經典依賴理論中研究的chase [3]來形式化這個問題。當實體匹配對於關係和具有傳統關鍵字的XML是多項式時間的時候,我們證明了它的決策問題對於圖是NP完全的。更糟糕的是,遞迴定義的鍵帶來了新的挑戰。我們證明了實體匹配不具有多項式條紋性質(PFP)。並且不能在對數平行計算回合中解決。儘管如此,我們通過提供並行可擴充套件演算法,表明實體匹配在實踐中是可行的。

3、我們開發了一個用於實體匹配的MapReduce演算法。與子圖同構相反,使用遞迴定義的關鍵字進行實體匹配需要定點計算,並且在每一輪中,對每個實體對進行多重同構檢查。我們證明了該演算法是並行可擴充套件的,即它的最壞情況時間複雜度為,其中t(,)是|G|和|Σ|中的函式,p是使用的處理器數量。隨著p的增加,它保證花費的時間成比例地減少,這是許多並行演算法所不保證的。我們還開發了優化方法來處理遞迴定義的鍵

4、我們在[31]的頂點中心非同步模型中給出了另一種演算法。該演算法不僅並行檢查不同的實體對,而且在檢查每個實體對時,通過非同步訊息傳遞並行檢查不同的對映。它減少了MapReduce的輸入/輸出界限和同步策略(“阻擋”掉隊者)固有的不必要的成本。我們證明了該演算法也是可並行擴充套件的。此外,我們還提出了減少訊息傳遞的優化技術。

5、使用現實生活和合成資料,我們通過實驗評估我們的演算法。儘管難以並行化,但我們發現我們的MapReduce和以頂點為中心的演算法確實是可並行擴充套件的:當處理器數量從4個增加到20個時,它們的平均速度分別是4.8倍和4.9倍。它們相當有效:在具有6億個節點和邊的圖上,對於500個遞迴定義的鍵,它們分別用20個處理器平均花費27秒和1.5秒。此外,我們針對這兩者的優化技術是有效的,分別將效能提高了200%和50%。我們還發現以頂點為中心的方法降低了MapReduce的固有成本,並且效能更好。

1、首先介紹本文的各個符號

1.1圖:

實體集合;值集合;謂詞(標籤)集合;型別集合Θ;中的每個實體e都有唯一的ID和Θ中的一個型別. 圖G是一個三元組t = (s, p, o),其中主體s是中的一個實體;p是中的一個謂詞或標籤;客體o要麼是中的實體,要麼是中的值.同樣能表示為一個有向邊-標記圖(V,E),V是有t(s,p,o)中的s和o組成的節點集合,E是從s到o的被標記為p的邊。

在圖上考慮兩個相等問題:

上的節點標識:e1⇔e2,若e1和e2有相同的ID則說他們指的是同一個實體

上的值表示:d1=d2,如果它們是相同的值

若e1⇔e2或d1=d2則G中e1和e2表示相同的節點

例1、上圖G1和G2是兩個圖的例子,G1和G2都是三元組集合。如三元組(art1, name_of, “The Beatles”)是與(s,p,o)一一對應的,可以寫成句子art1 is name of the Beatles.其中subject art1是型別為artist的實體,object “The Beatles”是一個值,他們倆都被表示為G1中的一個節點,而謂詞name_of則表示為邊。同樣可以寫出(alb1,release_year,”1996”)對應alb1’s release year 1996.(alb1,recorded_by,art1)對應alb1 is recorded by art1.

1.2、圖形模式

圖模型Q(x)的一個三元組,若兩個變數y相等則使用⇔表示其關係,若兩個y*值相等則使用=表示其關係

可以是: 1、實體變數y,對應一個實體; 2、值變數y*,對應一個值; 3、萬用字元_y,對應一個實體;

可以是:1、實體變數y,對應一個實體; 2、值變數y*,對應一個值; 3、萬用字元_y,對應一個實體;4、值d;

中的一個謂詞。Q(x)中的x也是表示一個實體;實體變數和萬用字元都帶有一個型別,如G1中alb1 型別是album,art1型別是artist.

例2、Q4(x)是(x,name_of, name*),( company,name_of, name*), ( company,parent_of, x)和(company, parent_of, x)的結合。x是指定的變數;name*是一個值變數company是一個實體變數;_company是一個company型別的萬用字元。

三元組集合S中Q(x)的valuation是一個對映v,這個對映從Q(x)對映到S,儲存了D中的值和P中的謂詞,並且對映變數y和_y到相同型別的實體。Q(x)中每個三元組都能在S中找到對應的三元組(s,p,o)有或者直接寫成,其中

1、

2、若是變數_y或y則o是實體,若是值d則o=d,若是y*則o是值;

3、實體s和有相同的型別;類似的若是y或_y則o和有相同的型別,明顯若是y*,則不存在型別這麼一說。

1.3圖模式匹配:

存在一個圖G和G中的一個實體e,若G中存在一個三元組S且S中有一個Q(x)的對映v使得v(x)=e則我們說G匹配Q(x),並且v是一個在Q(x)和S之間的雙射。我們稱S為ν下e處G中Q(x)的匹配。當三元組S和Q(x)被描繪為圖的時候,它倆同構。

              

例3、如上圖所示,一個是圖模式Q4(x),一個圖G4,紅線部分表示一個與Q4(x)匹配的子圖S1,綠線表示另一個與Q4(x)匹配的子圖S2。可以看出不管是綠線部分還是紅線部分都與Q4(x)是同構的,而圖模式匹配就是要在圖(G)中找到與模式(Q(x))同構的那些子圖。

S1中v1(com4)=x ; v1(com1)=_company ; v1(com3)=company ; v1(“AT&T”)=name*.

S2中v2(com5)=x ; v2(com2)=_company ; v2(com3)=company ; v2(“AT&T”)=name*.

1.4、圖的鍵:

τ型別實體的一個key是圖形模式Q(x),其中x是τ型別的指定實體變數。

若S1和S2之間的雙射µ可以由ν1和ν2匯出且保持節點身份和值相等,則我們稱S1與S2重合,記作:。且對於滿足:

  1. 是一個y,但不是x,則s1⇔s2,也類似。
  2. 是一個y*,則o1=o2

很明顯,上述例3中S1和S2不是重合的。

若存在匹配S1和匹配S2有,可推出e1⇔e2,則我們說G滿足Q(x)表示為G |= Q(x)。

可以看出例3中G不滿足Q(x),S1為紅線部分,S2位綠線部分,再看:

S1中v1(com4)=x ; v1(com1)=_company ; v1(com3)=company ; v1(“AT&T”)=name*.

S2中v2(com5)=x ; v2(com2)=_company ; v2(com3)=company ; v2(“AT&T”)=name*.

可以看出com1跟com2身份相同,但是他倆不是同一個節點。Com4和com5身份也相同,但是他倆也不是同一個節點。也就是說若G要想滿足Q(x),G中只能存在一個子圖S使得S是匹配Q(x)。像例3這種存在兩個子圖匹配了Q(x),G就不滿足Q(x)了。如果一個鍵Q(x)除x以外只包含了y*,則Q(x)是基於值定義的,否則是基於遞迴定義的

可以看出鍵Q1,Q2,Q4,Q5是基於遞迴的,Q2,Q6是基於值的

還會使用|G|表示G中三元組的數量,用|Q|表示Q(x)中三元組的數量。

表示所有Q(x)中三元組的數量總和,||Σ||表示Q(x)的數量,d(Q, x)表示將Q(x)看成無向圖時,x到節點的最遠距離。

2、實體匹配問題

2.1、實體匹配問題是通過輸入一個keys的集合Σ跟一個圖G,得到輸出chase(G,Σ)。

在遞迴定義的關鍵字存在的情況下,實體匹配很難並行化。

例3中com4和com5很明顯是相同的節點,畢竟其名字,母公司都相同,但是在1.4節中卻,所以在本章以後修改了之前的 chase

S1中v1(com4)=x ; v1(com1)=_company ; v1(com3)=company ; v1(“AT&T”)=name*.

S2中v2(com5)=x ; v2(com2)=_company ; v2(com3)=company ; v2(“AT&T”)=name*.

我們將滿足以下條件的實體對放入Eq中,Eq0中存放相同實體對如(s1,s1)和(s2,s2), 修改之後的chase為:

1、若是一個y,但不是x,則(s1, s2) ∈ Eq(而不是s1⇔ s2),也類似。也就是說放鬆了條件,之前沒有Eq時只能有一個子圖滿足圖形模式,現在可以有多個,例3中的(s1,s2)就屬於Eq,且s1,s2都滿足圖形模式。

2、若是一個y*,則o1=o2

我們在等式中用Σ定義了一個G的chase step ,其中(e1, e2) 是G中不屬於Eq的一對實體,並且在Q(x)中存在匹配S1和S2使得,且Eq’等價於Eq U {(e1,e2)}則存在一個追逐序列 使得

命題1:對於任意keys集合Σ和圖G,不管keys是如何應用的,使用Σ的G中所有終端追蹤序列都有有限且有相同的結果,若則可表示為

使用chase(G,Σ)表示使用Σ的G中的終端追蹤結果 

Σ2包含了Q5(x)跟Q4(x),這個序列可以解釋為從Eq0開始,因為G2滿足Q4所以Eq0加入(com1,com1),(com2,com2),因為G2要滿足G5(x),所以加入(com4,com4),(com5,com5),Eq0={(com1,com1),(com2,com2),(com4,com4),(com5,com5)},即Eq0是由相同的com對組成的,然後每次往裡面加一個(comi,comj),要求這兩個com需要是由Q4(x)匯出的且不屬於之前的那個Eq(即Eq0),即下次因為就加入(com4,com5)得到Eq1={(com4,com4),(com5,com5), (com4,com5)},同理藍線跟橙線部分滿足Q5(x),則Eq2=Eq1 U (com1,com2),所以Eq2={(com4,com4),(com5,com5),(com1,com2),(com4,com5)}

2.2實體匹配的複雜性

定理2:實體匹配是NP-complete

引理3: 即使Σ由單個基於值的key Q(x)組成,並且當圖G是DAG(有向無環圖)時,實體匹配問題仍然是NP-hard的。

2.3遞迴和並行化

如果所有真實事實都有一個證明樹,使得它的葉數在資料大小中是多項式的,那麼資料日誌程式具有多項式邊緣屬性(PFP)。

定理4:實體匹配(1)沒有PFP,(2)不能在對數輪中並行化,即使是在樹上

命題5:在樹上,實體匹配在PTIME中

3、實體匹配演算法

3.1、MapReduce演算法和並行可擴充套件性

定理6:MapReduce中存在一個並行可測量的演算法用於實體匹配

本節介紹一個名為的演算法,以圖G和一個keys集合為輸入,得到chase(G,Σ)。演算法的具體流程如下所示:

傳遞閉包:通俗的講就是如果a->b,b->c,那麼我們就建立一條a->c的邊。將所有能間接相連的點直接相連。 Floyd能在O(n3) 求出一個圖的傳遞閉包。

實體e的d-鄰圖:設d是Σ中鍵Q(x)定義於e的最大半徑;是從e開始再圖G中附近的d跳個節點;通過e的d跳可以得到一個G的子圖,且有Q(x)小於等於子圖,子圖小於等於圖G.

 

演算法結合同構檢查和傳遞閉包計算到相同的MapReduce過程。

以使用一個Eq和一個候選集合L開始,Eq中包含了所有的實體組成的實體對如:(e1,e1);候選集合L中包含了所有的實體對(e1,e2),其中e1和e2有相同的型別,且在上面定義了Σ中的一個鍵Q(x)。

只要Σ中有一個鍵可以識別(e1, e2),就可以說

演算法將檢查時檢查的圖G分別替換成對應的兩個子圖的並集,即,而滿足的等式變為

如果成立,且之前不在Eq裡面,則將新增到Eq裡面,每新增這麼一個實體對,就要計算Eq內的傳遞閉包(TC),如:若都在Eq中,則可以直接新增到Eq中。

每一輪檢查Σ中的一個鍵,直到Eq不再增長,則停止迭代。

 

演算法在MapReduce上的工作方式:

1、使用一個non-MapReduce驅動器,這個驅動器首先識別候選集L中的的實體e,通過廣度優先演算法給所有的實體e找到其對應的d-近鄰圖,再將這些d-近鄰圖和鍵集合Σ 存到磁碟空間裡面,以便共享記憶體,在MapReduce裡面Eq是一個全域性變數,方便各個Mapper更改。使用鍵值對((e1, e2),(Flag))來觸發Mapper上的MapEM

2、MapEM的工作過程:MapEM接受到鍵值對((e1, e2),(Flag)),並使用程式  來檢查(e1, e2)是否屬於Eq或,如果滿足其中一條,則將(e1, (e1, e2,True))和(e2, (e1, e2,True)) 發出作為結果並計算傳遞閉包,若不滿足則只是 (e1,(e1, e2,False))作為結果。 

3、ReduceEM的工作過程:ReduceEM接受到鍵值對, 首先對Eq(e)和L(e)進行初始化為∅ ,遍歷鍵值對,將(e1, e2,True) 都併入Eq(e)中,將(e1, e2,False)都併入L(e)中,最終將Eq與Eq(e)合併得到新的Eq,最終遍歷Eq,計算出其傳遞閉包,看傳遞閉包是否屬於Eq,若不屬於則發射((e1,e2),(True)),且將(e1,e2)併入Eq中。

例4、如上圖所示,設keys集合Σ包含了Q2(x)和Q3(x),是Q(x)中的實體,s1,s2是子圖中的實體

第一輪先通過Q2(x)來識別alb1,abl2,alb3. 識別規則為1、為y,則(s1, s2) ∈ Eq; 2、若為y*,則s1=s2;3、若為_y,則s1和s2具有相同的型別;4、若是d,則s1=s2=d。

明顯(G,Σ)|(alb1,alb2),則ReduceEM將(alb1,alb2)併入Eq中,其餘不滿足的留到下一輪。

第二輪通過Q3(x)來識別art1,art2,art3. 明顯(G,Σ)|(art1,art2),則ReduceEM將(art1,art2)併入Eq中,而當Eq停止更新時,則返回最終的結果 chase(G1,Σ1)

 

3.2、一種頂點為中心的演算法

定理10: 在[31]的頂點中心模型中存在用於實體匹配的並行可伸縮演算法。

為什麼已經有了MapReduce演算法還要提出這個演算法:1、維護全域性變數Eq花費太高。2、每一輪中的掉隊者,其可以支撐實體對鏈的過程,遞迴定義的鍵對該鏈施加依賴性

因此提出了此演算法,名為,以圖G跟一個keys集合Σ作為輸入,輸出chase(G,Σ),演算法的步驟如下圖所示:

對於所有的(e1, e2) ∈L,我們檢查是否(G,Σ) |= (e1, e2) ,如果滿足,則將(e1,e2)新增到Eq中。

但是使用非同步訊息傳遞(asynchronous message passing),對於(e1,e2)上定義的所有鍵,它用多個訊息並行檢查鍵中節點的不同例項,以此決定是否(G,Σ) |= (e1, e2)。

當(G,Σ) |= (e1, e2) 時, 通過發訊息的方式通知屬於L且定義在(e1, e2)上的(s1, s2) 。

Eq的傳遞閉包同時通過訊息傳播來計算,該過程繼續進行,直到沒有訊息處於活動狀態,並且不能再更改Eq。

背後的關鍵思想包括驗證(G,Σ)| =(e1,e2)的引導搜尋和基於實體依賴的TC擴充套件,兩者都是通過非同步訊息傳遞實現的。

提出產品圖(Product graph)的概念:圖G除了三元組的表達方式還可以寫成 ,其中V包含了三元組中的s和p,E內則是從s到o的所有帶標籤p的邊的集合。

給定圖G和keys集合Σ,得到產品圖,其中Vp中的每個節點是(a)可以配對的一對(o1,o2)實體或值;或者(b)只有當e與Vp中的另一個實體配對時,才是一對(e,e)實體。

Ep則存放邊((s1, s2), p, (o1, o2)),表示從(s1, s2) 到(o1, o2) 若(a) (s1, p, o1)和(s2, p, o2)都是在G中的;或者(b) (o1, o2)依賴(s1, s2),這裡p是一個特殊的標籤dep;或者(c)o1⇔ o2和o1⇔s1或o1⇔ s2,在這種情況下,p標記為tc

 

4、優化策略

演算法的效能主要被L的長度、d-近鄰的大小以及MapReduce的計算複雜度所支配。我們可以從L的長度和MapReduce的計算複雜度入手來優化整個演算法。

4.1.1 從L的長度入手

引入一個新概念,三元關係,設有鍵Q(x),兩個實體e1,e2以及他們對應的G中的子圖

若滿足以下條件:

(1)

(2)對於中的每一個三元組,都有:

(2.1)若 是y或_y,則s1和s2有相同的型別;若是y*,則s1 = s2;若是d,則s1=s2=d

(2.2)對於Q(x)中的每個三元組,在兩個子圖中分別存在三元組使得 、並且

則我們稱為Q在(e1,e2)的配對關係

 命題9:對於任意對(e1,e2):

(1)若e1和e2不能通過Σ中的鍵配對,則

(2)若(e1,e2)能通過Q(x)配對,則在(e1,e2)中存在一個唯一最大配對關係Q(x)的,並且 能夠在內計算出來

 

 

相關文章