Keyword Search over Knowledge Graphs via Static and Dynamic Hub Labelings

通過靜態和動態的Hub-Labeling在知識圖譜上搜索關鍵詞

聯繫了nju的一個導師,二面讀了篇論文,感覺學術界的算法更多是特殊情況下的搞近似解優化時空複雜度,讀研做這種研究也挺好的,然後nju夏令營沒進。。。只能等九推,難頂。
鏈接:https://doi.org/10.1145/3366423.3380110

摘要

​ 關鍵詞搜索是一種在詢問網絡數據方面很重要的方法。對於圖結構的數據,一個廣泛流傳的關鍵詞的語義是基於羣斯坦納樹的。對於NP-hard問題,存在很大的圖中有合適的質量保證但耗時巨大的算法。在這篇論文中,我們提出有用的近似算法,這個算法有對於計算答案的質量有保障而且耗時很短。我們的算法是依賴HL算法的,一種在圖中對每個點用一串連接它的點的標記的結構,我們用它來計算距離和最短路徑。我們設計了兩個HL:一個常規靜態的使用一個新啓發式去提高下標剪枝標籤的HL,一個新穎的翻轉和統計詢問相關靜態標籤去更有效率處理點集的動態HL。我們的方法能在毫秒的時間內計算百萬級的知識圖譜中可靠的好的近似答案。

注(前置知識):

1.Hub-Labeling,集線器標籤? 算法是一種比lookuptable消耗更少的資源反而能更快找到一張圖兩個點鐘最短路徑,這個方法允許至多兩個聲明和兩個字符串的分析來計算出一張圖中兩個點間的最短路徑。對於一個圖,這種科技要求像收縮層次算法一樣的對於結構中兩個表的預處理。最後這兩個計算表格會有和圖中點數一樣多的行,每一行一個標籤會被計算。一個標籤是一個包含當前點與其他所有以一個在相關的多高級結構上上升搜索能到達的點之間的距離,這些距離的優點是他們呈現了最短路徑。所以對於未來的詢問,最短路徑的搜索會從第一張表格的源點和第二章表格的終點開始,在帶有聯繫的距離信息的共有的點上搜索。只有最小距離之和會被保存進最短路徑結果。

2.Contraction hierarchies,收縮層次?用來求兩點之間的最短路,預處理一個多層的結構,人爲設定一個點的優先級(這個隨便拍,但是排序的好壞影響預處理的效率和搜索的效率),然後按優先級從低到高收縮,拿掉這個點,看會不會影響圖中點對之間的最短路,只要看它鄰接的比它優先級高的點兩兩之間最短路是否經過這個點,如果經過,就新增一條邊存儲它們的最短路,這條邊叫shortcut。用雙向dijkstra來實現。

1.介紹

大概介紹了一下關鍵詞搜索。匹配關鍵詞,提取數據,組織答案。

Problem

斯坦納樹問題,精準涵蓋k個點的最小生成樹問題,關鍵詞可以涵蓋知識圖譜中的點或邊。

challenge

GST問題是NP-hard的,一般的做法耗時很久,現有的基於GST的算法來做關鍵詞搜索不適合一般知識圖譜的規模。

our approach

前面和摘要一樣

•第一個算法是對於所有關鍵詞匹配的點集找一個GST,對於g個關鍵詞,計算出來的GST的總共的邊權重最多是(g-1)*最小值 ((g-1)-approximation algorithm)

•這個近似比例是可以接受的因爲g一般在實踐中很小。這個Hub Labeling(HL)是靜態的常規的離線構造的。在大的知識圖譜上,有一個靜態HL的KeyKG算法會比一般的算法至少快一個數量級,而且近似答案也是在容許的質量範圍內的。

第二個算法KeyKG+在keyKG之上使用了一種新穎類型的HL。這種HL是動態的,當處理一個具體的詢問它在網絡上會通過翻轉和聚集與詢問相關靜態標籤進行重構。這減少了重複的操作,儘管有在線構造的額外時間,但還是效率很高。在DBpedia上進行同樣的計算同樣的結果只用了幾毫秒。

Contributions

1.對於在GST語義上的知識圖譜進行關鍵詞搜索,提出了一個xxx的算法。

2.爲了支持高效地在線計算距離和最短路徑,提出了一種新穎的動態HL,使得算法表現更優秀,我們也提出了一種新的使用一個高效的啓發式的靜態HL。

2.公式化的問題

Knowledge Graph

知識圖譜,就是一個帶權無向圖,不用考慮自環重邊,邊權非負。

Graph Terminology

關於圖的屬於,len§表示路徑p的邊權和,dist(u,v)表示u,v的最短路徑長度,不連通則爲無窮大

Keyword Mapping

關鍵詞映射,定義一個函數,把一個關鍵詞集合映射到圖上的點集。如果映射到圖,那就把那條邊中新增一個點w把edge(u,v)變成(u,w),(w,v)。在這篇論文的公式化問題中我們忽略這種映射到邊。

Keyword Query

關鍵詞詢問,對於詢問Q,用hits(ki)表示關鍵詞節點,圖G上詢問Q的答案是一棵GST,對於每個關鍵詞映射的點集,GST至少有其中的一個點,還要滿足權值之和最小。

3.用靜態HL的KeyKG算法

getD表示計算距離,getSP表示計算最短路徑,這兩個函數是依賴HL的

3.1keyKG算法

首先,KeyKG算法貪心的選擇一個彼此距離較近且對於每個關鍵詞映射點集有一個點覆蓋的一個點集記爲U_x,然後貪心地找到一個GST覆蓋U_x,記爲T_u_min

算法過程:

對於K1中的每個點v1,找到Ki中每個離它最近的點vi,記U_v1爲這些點的點集,W_v1爲這些點到v1的距離之和,每一個v1都對應一個W_v1。記K1中的x有最小的W_v1,最後U_x中有所有Ki的至少一個點,這些點是因爲他們彼此更近才被選出來的。因此,一個GST應該會有小的權重。

接下來就是從U_x中的每一個點u開始構造一棵GST T_u,然後從中選擇一個權值和最小的。每一棵GST T_u初始只有一個點u,然後反覆地操作直到T_u覆蓋了U_x,一個點s_min在T_u中一個點t_min在U_X中但不在T_u中,被找到後把getSP(s_min,t_min)加入T_u。這個貪心的拓展應該會生成一個很小權值和的GST。然後找到最小的T_u對應的點u_min,最後返回T_u_min。

近似比率分析:

這裏對介紹部分的那個(g-1)進行了證明,好評。

證明略。。。

3.2靜態HL

直接使用在線求法(dijkstra)耗時很大,離線記錄所有點對間的距離和最短路徑又要求很大的空間。爲了找到實用的時空平衡,我們使用HL,一個離線構造的索引結構

基本概念

對於一張圖,一個靜態的把總點集變成2^V個點集,這些點集就叫hubs(感覺可以放到前面一點的地方介紹?),滿足以下條件,對於聯通的u,v,最短路徑上的任一點h既屬於L(u)又屬於L(v),L(u)就是the label of u,L(u)的hubs是按他們的標識排序的,在L(u)中dist(u,h)也是經過排序的。

getD(u,v)就只要枚舉L(u),L(v)的交集的每個點取最小值就行了

構造的改進

如果label能更小的話,在線計算getD就更快,然而最小化label是NP-hard問題。有大量各種各樣的語義方法對給出的圖構造想當小的labels.減枝後的界標標籤(PLL)是一種流行的方法,它使用Dijkstra算法並高效減枝搜索減少labels,接下來將改進PLL得到更新的labels。

當L_i-1的某個點u比L_i中u這個點的距離更近一些,即dist(v_i-1,u)<dist(v_i,u)的時候,u是沒有必要在L_i中的,但是標準的HL還是會有。

getSP算法是找到h_min後,從u,v分別開始利用pred(now,h_min)一直拓展到hmin並記錄路徑

我們想要更前面的labels支持更多的點對距離計算,原始的PLL啓發式地對點按度數降序排序,原因是高度數的點更可能出線在更多的點對間最短路徑中,我們不這樣做,我們按照betweenness centrality 中間性排序,記作bc(v)。bc(v)爲所有除了v點的點對(s,t)的

(其中經過v的數量)/(s,t之間的最短路徑數量) 這個值之和

如果要準確計算的話需要耗費大量時間,我們將使用一個source sampling based 近似算法,推薦讀 [4] 獲取更多關於這個算法的細節。

索引結構的擴展

對於每個hub:L(w)中的點v_i,我們同時存儲dist(w,v_i)和前繼節點pre(w,v_i)

(這不是早就知道了。。。爲什麼代碼放在那麼前面的位置)

3.3運行時間分析

n是知識圖譜中的點數,g是關鍵詞的個數,1-8行時間是O(n^2 g t_getD),9-18行用一下的技巧,對於在(U_x \ V_T_u)中的每一個點,也就是在U_x但不在V_T_u中的每個點,我們存儲他到T_u中點的最小距離,當加入一個點p進T_u時,我們更新這個點到(U_x \ V_T_u)的剩下的點的存儲距離,我們用這些存儲的最小距離找到最小的(s_min,t_min),所以這部分優化到了O(n * g2)總共的複雜度是O(n2 * g * t_getD + n* g^2 * t_getD + g^3 + g^2*t_getSP);

分析t_getD ,根據公式6,發現這可以用歸併排序解決兩個排序的hub list,二路歸併是O(|L(u)|+|L(v)|)的,比最短路快,在實際情況中這個複雜度遠小於n,所有的L的大小加起來才接近O(n),所以靜態HL的時空平衡做的很好。

分析t_getSP,首先找到h_min是O(n)的,然後就是還原路徑,由於L(y)是有序的,所以可以直接二分朝招,所以複雜度是O(nlogn)的。

那麼總複雜度是O(n3g+n2g2+g3+g^2nlogn),但是由於K1<<n,|V_t_u|<<n,|L(u)|+|L(v)|<<n,所以實際跑起來很快。

4.動態HL的$KeyKG^+ $算法

4.1動態HL

動態HL是一個(g-1)*n的矩陣M,行對應關鍵詞的點集K_2…K_g,每一列就對應那些hub點,M的第i-1行M_i-1,翻轉然後併到K_i中點的靜態labels中。如果點h_j屬於V且至少屬於K_i中一個點的靜態標籤,那麼M_i-1,j就不是null。

M_i-1,j是 所有點的label的並集中的某一個label h_j有着最小的dist(u,h_j),u是屬於K_i中的點。如果M_i-1,j不是null,他的預計算的到h_j的距離就被存在M裏面。

用二維數組存儲M,那麼在常數時間下就可以訪問其中的任意值,M_i-1能從K_i和Labels中構造出來而不需要訪問原圖KG。在計算v_i的時候,M_i-1能夠取代K_i中的點的靜態HL,而且展示它的緊湊性和隨機訪問能力能提高效率。

注意dist(C,A)還是從靜態HL求出來的。

4.2KeyKG+KeyKG^+算法

是KeyKG的拓展,動態HL被構造並用在兩個位置去提高效率並不改變計算結果。

算法步驟:

1.首先構造出M

2.用M_i-1去找到的v_i,添加進 U_v_1中去,還是照原來的方法一樣求出所有的 U_v1和W_v1。注意,如果M_i-1,j不爲null,才能計算dist(v_1,h_j)+dist(M_i-1,j,h_j),這表示最小的v_1和K_i點集中的點組成的點對中距離最小的。

3.還是取最小的W_v_1,對應的根節點爲x

4.第二部分,我們給V_T_u構造M_u’,,對於每個屬於U_x但不在V_T_u中的點t_i,M_u’,能夠找到當前V_T_u中的某個點s_i,且dist(s_i,t_i)最小。

KeyKG+計算結果和KeyKG一樣所以他也是(g-1)近似算法

4.3 運行時間分析

O(n2)構造出M_i-1,第一部分求所有的U_v1和W_v1的複雜度就降到了O(n2g),第二部分求T_u的複雜度降到了(n2g+ng3),這在實際應用中ng3是遠遠小於n2g的,所以實際情況就是O(n^2g)

另外我們考慮keykg+的getSP,由於h_min可以直接表示出來而且可以重複利用,我們可以減少O(n)的尋找h_min的時間。另外由於T_u的構造,對靜態labels的二分搜索總數不是O(gn)而是接近|E_T_u|<=O(n).因此getSP函數從O(g^2nlogn)減少到了O(gnlogn)

總複雜度是

O(n2g+n2g+ng^3+gnlogn) 也就是O(n2g+ng3)

5.實驗

我們實驗的目的是憑經驗調查這些研究的假設(RH)。

RH1:我們的方法跑art[27,38]中運行時間很長時間的KGs能跑出很好的結果

RH2:使用提出的動態HL方法能提高整體效率

RH3:我們的靜態HL比HLs[3,14,39]更小的規模,所以能更快計算距離和最短路徑。

5.1實驗設置

KGs:

MONDIAL小的地理KG,

LinkedMDB中等的電影KG

DBpedia大的百科全書KG

關鍵詞,關鍵詞映射,邊權賦值

5.2基線

現有的KG上的關鍵詞搜索在GST或者類GST的語義上,我們將我們的方法與兩種方法對比

PrunedDP++是先進的準確算法使用A*算法。

BANKS-2是先進近似算法,使用雙向搜索

我們的靜態HL是排進了PLL,而且使用betweenness centrality對點進行排序的,我們將它與現有的3個HL對比

PLL,按度數排序

RXL,改進了PLL,基於最短路徑樹排序

SHP,最近的方法,基於重要的路徑

5.3我們方法的實現

開源代碼:https://github.com/nju-websoft/KeyKG

我們方法的配置

把動態HL和靜態HL都存進內存,

靜態HLs選擇200個pivots,分別花了37MB,183MB,7704MB

我們方法變種

實現了KeyKG+DKeyKG^+-D ,靜態HL使用MySQL被存儲在硬盤裏

還使用了KeyKG-PLL算法,使用了原始的PLL代替靜態HL

兩個靜態HL的變種使用10pivots和100pivotes的稱爲SHL-10和SH-100。我們使用的默認的就是SHL-200。

5.4衡量指標

對於計算最小的GST,測量答案的質量和運算時間

對於靜態HL的衡量,測量一個點的label的平均大小。

5.5結果和分析

實驗結果證實了RH1,RH2,RH3的事實。

6相關的工作

這一章節我們重新回顧相關的工作和考慮各種各樣在圖數據上進行關鍵詞搜索的方法和HubLabeling的方法

6.1圖數據上的關鍵詞搜索

詢問解釋

有很多關鍵詞搜索的工作室先把關鍵詞詢問轉換成一個結構化的詢問,比如比如對於RDF圖的SPARQL詢問,然後再執行結構化的詢問得到答案,我們是用另一個方式,直接搜索一個最佳的子圖來回答詢問。

基於GST的方法

有BANKS,BANKS2,BLINKS,DPBF,PrunedDP++,這些近似方法的近似率是和KeyKG+一樣的,但是運行時間通常與邊數有關,而KeyKG+只與點數和詢問的關鍵詞的點集數有關,在實際應用中有很好的表現。當然還有一些算法不適合大型的圖,這裏不考慮。

斯坦納樹

GST問題是斯坦納樹的一個版本,斯坦納樹在關鍵詞搜索上的應用的前提是每一個關鍵詞只對應一個點。

基於檢索的方法

爲了適合大圖的詢問,有一種方法預處理然後得到大量的用大小做界限的子圖作爲答案。有些詢問距離很遠,他限制了這些方法的應用產生空的答案,而GSTs是不受結構界限的。

6.2Hub Labeling

準確的HLs

Pruned Landmark Labeling (PLL),Robust eXact Labeling (RXL)。

我們的靜態HL在經驗上勝過關鍵路徑標記的基於Hub Pushing 的HL。那些標記特別點的做法也結合一些啓發式思想。

另外我們還提出了動態HL,重新排列靜態的labels並允許直接的隨機訪問,使得理論上和實際上的效率更好了

近似的和其他的HL

有一些計算近似距離的方法但是他們不合適,因爲使用近似的距離會影響我們算法的近似率。還有一些更搞笑的做法對於路徑網絡,然而KGs沒有road 網絡的空間特性所以這些方法不能使用。

7總結

這篇論文中,我們研究了在GST語義下在KGs上做關鍵詞索索。我們介紹了兩種算法:KeyKG基於靜態HL和KeyKG+基於動態HL,有效地回答基於GST的關鍵詞查詢。我們的實驗表明了KeyKG+比之前的算法快3個數量級而且有可容忍的精度丟失。特別的,在大的KGs比如註明的DBpedia,可靠的好的答案能在毫秒級的時間內計算出來,證明了我們放的實用性。這樣好的表現要歸功於我們的動態HL能翻轉重新編排詢問相關的labels,也要歸功於我們新的靜態HL用betweenness centrality中心性來做啓發式排序比現有的HLs表現更好。 這些HLs的潛在應用明確不會是我們方法的侷限。

至於未來的工作,我們注意到很少求距離的方法支持高效的邊的刪除,在多項式延遲的top-k GSTs的框架中這是基本的操作,所以高效的top-k 關鍵詞搜索在我們的方法裏還是沒有解決的,我們計劃探索這一未來的工作。相比於BANKS2,KeyKG的近似率以後會進一步改進。另外,現在存在一些大的稠密圖導致所有現存的HLs無法使用很小的label。爲了解決這種圖,需要有人去開發其他種類的高效距離求法或者考慮可替代的技術。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章