Keys for graphs閱讀筆記
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重合,記作:。且對於和滿足:
- 若是一個y,但不是x,則s1⇔s2,也類似。
- 若是一個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)的,並且 能夠在內計算出來
相關文章
- Dependencies for Graphs 閱讀筆記筆記
- 閱讀筆記-MoFlow: An Invertible Flow Model for Generating Molecular Graphs筆記
- 閱讀筆記筆記
- 【閱讀筆記:字典】筆記
- gdbOF閱讀筆記筆記
- 閱讀筆記03筆記
- 閱讀筆記02筆記
- 閱讀筆記8筆記
- 閱讀筆記1筆記
- 閱讀筆記5筆記
- 閱讀筆記4筆記
- 閱讀筆記3筆記
- 閱讀筆記7筆記
- 閱讀筆記2筆記
- 論文閱讀 Inductive Representation Learning on Temporal Graphs
- JDK原始碼閱讀:Object類閱讀筆記JDK原始碼Object筆記
- 《Clean Code》閱讀筆記筆記
- javascript閱讀筆記01JavaScript筆記
- #EffectiveJava筆記#閱讀心得Java筆記
- 閱讀影片方法筆記筆記
- 《快速閱讀術》讀書筆記筆記
- JDK原始碼閱讀(5):HashTable類閱讀筆記JDK原始碼筆記
- JDK原始碼閱讀(4):HashMap類閱讀筆記JDK原始碼HashMap筆記
- JDK原始碼閱讀:String類閱讀筆記JDK原始碼筆記
- MapReduce 論文閱讀筆記筆記
- ArrayList原始碼閱讀筆記原始碼筆記
- CopyOnWriteArrayList原始碼閱讀筆記原始碼筆記
- SiamRPN++閱讀筆記筆記
- Raft: 一點閱讀筆記Raft筆記
- 《思維力量》閱讀筆記筆記
- Flownet 2.0 閱讀筆記筆記
- Koa 原始碼閱讀筆記原始碼筆記
- GoogleNet閱讀筆記Go筆記
- The Data Warehouse Toolkit 閱讀筆記筆記
- 《大圖景》閱讀筆記筆記
- mobx-react閱讀筆記React筆記
- SSD論文閱讀筆記筆記
- memcached 原始碼閱讀筆記原始碼筆記