《BLINKS: Ranked Keyword Searches on Graphs》——論文筆記

ABSTRACT

目前關鍵詞查詢的技術缺陷:poor worst-case performance, not taking full advantage of indexes, and high memory requirements.
本文方法:BLINKS, a bi-level indexing and query processing scheme for top-k keyword search on graphs.
BLINKS遵循的搜索策略保證了性能下限,另外二級目錄可幫助進行剪枝和加速查詢。二級目錄是爲了減少目錄的大小,首先將目錄分塊,二級目錄只存儲塊級的信息。

1 Introduction

現在有各種各樣的圖數據。
樹結構或圖結構數據上的關鍵詞搜索流行的原因:

  1. 對用戶友好
  2. 很多圖結構數據沒有schema,很多查詢語言不適用

we focus on implementing efficient ranked keyword searches on schemaless node-labeled graphs.

Challenges 利用了樹的層級結構應用於XML的方法不再適用。另外缺少schema也排除了一些在編譯階段的優化。之前的工作有以下缺點:

  • 現有的許多算法採用啓發式的圖搜索策略,缺乏性能的保證。
  • 現有算法沒有充分利用index。他們只用index確定點集中有沒有包含關鍵字,找子結構連接的節點依靠圖遍歷。但是naive的目錄會導致很高的存儲需求。

Contributions BLINKS (Bi-Leval INdexing for Keyword Search)

  • Better search strategy. 基於cost-balanced expansion——一個新的backward search strategy。增加了參數m(關鍵詞個數)後,效果提升很多。
  • Combining indexing with search. 索引預先計算並保存了一些最短路的信息。不僅爲backward search提速,還支持forward search。BLINKS是第一個在通用圖上廣泛使用索引加速關鍵字搜索的方式。
  • Partitioning-based indexing. 保存所有最短路信息的目錄太大了,BLINKS把圖分爲幾份,二級目錄保存塊級信息。可以在空間和搜索效率上得到平衡。

實驗證明了BLINKS取得了數量級上的領先,以及BLINKS支持複雜的scoring functions。

The rest of the paper is organized as follows. We formally define the problem and describe our scoring function in Section 2. We review existing graph search strategies and propose the new cost-balanced expansion policy in Section 3. To help illustrate how indexing helps search, we present a conceptually simple (but practically infeasible) single-level index and the associated search algorithm in Section 4. In Sections 5 and 6, we introduce our full bi-level index and search algorithm. We discuss optimizations in Section 7 and present results of experiments in Section 8. Finally, we survey the related work in Section 9 and conclude in Section 10.

2 Problem Definition

Data and Query

Definition 1. Given a query q=(w1,...,wm) and a directed graph G , an answer to q is a pair <r,(n1,...,nm)> , where r and ni ’s are nodes (not necessarily distinct) in G satisfying the following properties:
(Coverage) For every i, node ni contains keyword wi .
(Connectivity) For every i, there exists a directed path in G from r to ni .

r 是答案的root,ni ’s 是答案的matches。連通性使得答案必須爲一個根節點能達到所有關鍵詞的子樹。
這裏寫圖片描述
Top-k Query

Definition 2. Given a query and a scoring function S , the (best) score of a node r is the maximum S(T) over all answers T rooted at r (or 0 if there are no such answers). An answer rooted at r with the best score is called a best answer rooted at r . A top-k query returns the k nodes in the graph with the highest best scores, and , for each node returned, the best score and a best answer rooted at the node.

上述定義中返回的k個答案root並不同。原因如下

  • 避免了某個指向很多帶有關鍵詞的子節點的節點作爲根的情況。
  • 這樣會使目錄更加有效。(在第七節會討論)

Scoring Function. 本文主要關注索引和查詢處理,因此並不對scoring function進行深入研究。
本文的得分函數同時考慮了圖結構和內容,並且包含了數據庫和IR社區最先進的測量方法。對於T=<r,(n1,...,nm)> 和查詢(w1,...,wm) 得分函數爲

S(T)=f(S¯r(r)+i=1mS¯n(ni,wi)+i1mS¯p(r,ni))

其中S¯p(r,ni)) 表示從root r 到match ni 的距離。
f() 的輸入是三個部分的和,即(1) the answer root. (2) the matches. (3) the paths from the answer root to the matches.
得分函數的兩個properties:
  • Match-distributive semantics.在S(T)的定義中,matches和paths from the answer root to the matches被累加計算,即每個路徑單獨的作用於得分函數,即便有公共邊。這種計算方式偏向於圖2的右側結果。
  • Graph-distance semantics. S¯p(r,ni) 被定義爲從root到matches的最短路徑,這樣吧關鍵詞搜索問題歸約成最短路徑問題。

這裏寫圖片描述
An Assumption for Convenience. 爲了表示簡單,我們忽略掉root和match對得分的貢獻,只考慮path部分,即mi1S¯p(r,ni) 。現在算法歸約成找k個節點,其中每個節點都能達到所有的查詢關鍵詞,而且到這些關鍵詞的距離還要最小。

3 Towards Optimal Graph Search Strategies

Backward Search 在沒有索引提供超過一跳的圖連接信息的情況下,我們可以從包含至少一個關鍵詞的節點開始圖搜索。這種節點可以被inverted-list index輕鬆識別。該方法導致了後向搜索算法:

  1. Ei 代表能夠到達關鍵詞ki 的節點。Ei ——the cluster for k.
  2. Ei 來自OiOi 是直接包含關鍵詞ki 的點集。Oi ——the cluster origin。Oi 的節點——keyword nodes。、
  3. 每一步搜索,我們都根據Ei 的入邊進行擴展。
  4. 判斷root節點是否找到——對於每個Ei 要麼xEi 要麼x有邊連接到Ei

第一個後向關鍵詞搜索算法被Bhalotia等人提出,他們主要使用以下兩種策略:

  • Equi-distance expansion in each cluster: 決定擴展keyword時,訪問哪個節點。找距離Oi 最近的點,爲了增加到the cluster origin距離。
  • Distance-balanced expansion across clusters: 決定哪個關鍵詞被拓展。爲了平衡各個關鍵詞到邊界的距離,每次擴展(u,Ei) 中距離最小的。

下面對上述兩個策略進行優化,首先是equi-distance expansion in each cluster策略。

Theorem 1. An optimal backward search algorithm must follow the strategy of equi-distance expansion in each cluster.

但是這個定理對於第二個策略不成立,如圖三所示。按照第二個策略,我們會訪問所有距離k1小於100的節點,然後再輪到k2。

這裏寫圖片描述

Bidirectional Search Kacholia等人通過啓發式的activation factors確定節點的優先級。雖然在很多情況下有效,但是無法證明其最壞的表現性能,原因在於啓發式的activation factors依賴部分已知圖。
Our Approach 一個具有好的表現性能的簡單搜索策略,主要基於兩點:

  • we propose a new , cost-balanced strategy for controlling expansion across clusters. 可以保證性能
  • 使用目錄支持搜索中的前向跳躍。

Cost-balanced expansion across clusters: the cluster Ei to expand next is the cluster with the smallest cardinality. The algorithm attempts to balance the number of accessed nodes (i.e., the search cost ) for expanding each cluster.

Algorithm A: Equi-distance expansion in each cluster + Cost-balanced xpansion across clusters.
Algorithm P: Equi-distance expansion in each cluster + “magically” knows the right amount of expansion for each cluster.

Theorem 2. The number of nodes accessed by A is no more than m times the number of nodes accessed by P, where m is the number of query keywords.

因爲大部分查詢只包含很少的關鍵詞,所以A的cost通常是最優算法的常數倍。

4 Searching with a Single-Level Index

該方法在小圖上適用,完整的BLINKS在5,6節適用於大圖。

4.1 A Single-Level Index

Motivation and Index Structure 如果使用equi-distance後向擴展,需要得到一個以距離關鍵詞ki 的優先隊列。但其規模可能成倍的增長,另外時間複雜度也很高,找到最優先的節點需要O(logn) 的複雜度。
提高在線性能的常用方法是進行離線計算。我們爲預先計算了節點到每個關鍵詞(指包含關鍵詞的節點)的距離。這個結果集成爲keyword-node lists。每一條有四個field——(dist, node, first, knode)。
另外爲了前向搜索,我們爲每個點u預先計算了u到每個關鍵詞的距離,即node-keyword map
這裏寫圖片描述
但是這樣存儲的話規模太大,keyword-node lists和node-keyword map都有NK 個條目,其中N是節點數,K是關鍵詞的數量。在很多應用中,K和N差不多,因此目錄的空間複雜度很高。
Index Construction 目錄的建立是對N個節點同時進行Dijkstra算法。時間複雜度是O(N2)
另外單級目錄對於只計算root和match的得分函數適用,對於需要計算root到match之間path的得分函數不適用。

4.2 Search Algorithm with Single-Level Index

搜索算法SLINKS,利用單級目錄搜索。該算法的得分函數只和root和match相關,與距離無關。

這裏寫圖片描述
Expanding Backward 用遊標對keyword-node list LKN(wi) 進行遍歷。通過循環的方式,對每個cluster應用cost-balanced expansion。
Expanding Forward 我們使用node-keyword map MNK 。對於每個node,查找到其他關鍵詞之間的距離。
Stopping 使用閾值τprune ——當前第k個最短距離。但是如果當前遊標的距離的和,都要比τprune 大,則程序可以停止(第8行)。
Discussion 與不使用index的工作相比,空間和時間上都有了很大的提升。:

  1. 圖搜索的狀態用遊標而不是優先隊列。
  2. 通過遊標比通過優先隊列找下個節點快很多。
  3. 使用node-keyword map進行前向擴展,能更早地結束算法。

Connection to the Threshold Algorithm TA算法目的在於找到最高分的對象。總分數有m個分數組成,每個屬性有一個分數。對每個屬性存在一個按分數降序排列的對象列表。TA通過並行訪問m個有序列表找到前k個結果。TA在訪問對象的數量上是最優的。
通過單機索引,關鍵字搜索問題可以轉化爲TA。關鍵詞搜索的equi-distance expansion across keywords 對應着TA中的降序排列,cost-balanced expansion across clusters對應着TA中的並行訪問。第3節中,我們證明如果遵循兩個規則,則關鍵字搜索算法最優。

Although we had arrived at this optimality result for general keyword search without assuming indexing, our conclusion coincides with the optimality of the TA algorithm when a single-level index is used.

這裏不懂。。。

5 Bi-Level Indexing in BLINKS

因第4節中的目錄太大,BLINKS採用分治法創建了二級目錄。
Partitioning by Portal Nodes 採用基於點的劃分的原因:

  • separators的數目比基於邊劃分要少。因此存儲分離器的花費少,在搜索過程中穿過更少的分離器,更加高效。
  • 搜索策略認爲節點是擴展的最小單元,因此基於點的劃分使得應用更加容易。

Definition 3. in a node-based partitioning of a graph, we call the node separators portal nodes (or portals for short). A block consists of all nodes in a partition as well as all portals incident to the partition. For a block, a portal can be either “in-portal” or “out-portal” or both.
In-portal: it has at least one incoming edge from another block and at least one outgoing edge in this block.
Out-portal: it has at least one outgoing edge to another block and at least one incoming edge from this block.

這裏寫圖片描述
對於塊b1v5 是一個out-portal。v3 既是in-portal又是out-portal對於塊b1b2 來說。

5.1 Intra-Block Index

對於每個塊b,IB-index包含下列數據結構:

  • Intra-block keyword-node lists: 對於每個關鍵字wLKN(b,w) 代表b中能夠不離開塊b到達w的節點列表,按照距離降序排列。
  • Intra-block node-keyword map: 對於ubMNK(b,u,w) 指能夠不離開塊b從u到w的最短距離。
  • Intra-block portal-node lists: 對於b的每個out-portal p,LPN(b,p) 表示b中能夠不離開塊b到達p的節點,按照距離降序排列。
  • Intra-block node-portal distance map: 對於ubDNP(b,u) 表示從節點u到b中最近的out-portal的最短距離。

Keyword-Node Lists and Node-Keyword Map 和第4節中介紹的基本一致,不過限制範圍在一塊中。然後利用4.1節中的方法構建單級目錄,此時目錄的空間複雜度爲O(NbKb) ,假設Kb=O(Nb) ,則複雜度爲O(N2b) ,實際中要遠遠小於這個值,因爲並不是每個節點和關鍵詞都相連。
Portal-Node Lists and Node-Portal Distance Map LPNLKN 相似。對於一個out-portal node pb ,在LPN(b,p) 中的每個條目包含(dist, node, first),dist指最短距離,node指節點,first指最短路徑上第一個節點。LPN 的主要目的在於支持跨快的後向搜尋。因爲方向主要是後向,所以沒有對於in-portals和nodes的列表。
DNP 主要在搜索算法的下界節點搜索距離中被使用,對剪枝很有用。
LPN 通過對塊中out-portal應用單源最短路徑算法構建。DNP 可以通過最短路徑算法的結果構建。LPN 的大小爲O(NbPb) 。因爲Pb 通常小於Nb ,因此這些列表大小遠遠小於keyword-node lists。DNP 的大小是O(Nb)

5.2 Block Index

兩部分組成:
- Keyword-block lists: 對於每個關鍵詞w,LKB(w) 表示包含該關鍵詞的塊。用作搜索算法在相關塊開始後向搜索。
- Portal-block lists: 對於每個portal p, LPB(p) 表示有p作爲out-portal的塊的列表。用作搜索算法指導跨塊的後向搜索。

Block Index 的構建略去。
空間複雜度:LKBO((N/N¯b)K¯b)
LPBO((N/N¯b)P)

5.3 Graph Partitioning

本節首先討論好的劃分的guidelines,然後描述兩個劃分方法。

Theorem 3. Suppose a graph with N nodes is partitioned into B blocks. Let Nb denote the size of block b, and assume that the number of keywords in b is O(Nb) . The overall size of the two-level index is O(ΣbN2b+BP)

雖然劃分的表現性能很難衡量,兩條指導性規則是通用的:

  • 保證portals的數量(P)儘量小。空間上考慮的話,Theorem3中P是空間複雜度的一項。搜索性能上考慮的話,portals越多跨邊界的搜索越多。
  • 儘量保證塊間平衡。根據Theorem3,ΣbN2bNb 相等時最小。

進一步考慮的話,找到最優的圖劃分是NP完全的。如果用啓發式的規則的話複雜度達到了O(N3.5) ,因此,我們提出兩種算法——都先用邊劃分,然後轉化爲點劃分。

BFS-Based Partitioning 爲了得到一個新的塊,我們從未分配的節點開始執行BFS,我們把未分配的點放到塊中,直到塊達到合適的大小。如果達到了BFS的終點,但塊大小還是太小,我們從另一個未標註的節點,重複上述工作。最後得到一個基於邊的分區。
爲了轉換成基於點的分區,對於連接塊b1,b2 的edge separator (u1,u2) ,把塊邊界移到u1u2 。有如下規則——choosePortal logic:

  • 假設s1 and s2 是對應着u1u2 edges separators的數量。
  • 選擇si+δ|bi| 值更大的點作爲portal,其中δ 是一個可變常量。

choosePortal算法尋求塊大小的平衡和最小化portal的數量。如果si 越大,則去除的edge separator越多。完整的算法如算法2所示。
這裏寫圖片描述

METIS-Based Partitioning 使用基於BFSDE分區方法 缺點在於第一階段可能產生大量的edge separator。本方法旨在最小化edge separators 的數量。整個處理過程仍如算法2所示,不過第二行使用METIS而不是BFS進行邊劃分。
實驗中,兩種方法有各自的優點。

6 Searching with the Bi-Level Index

因爲兩層目錄,不能得到全局的距離信息而帶來的挑戰:

  • 單個遊標不足以應對單個關鍵詞的後向擴展。因爲多個塊可能有共同的關鍵詞。
  • 當遇到in-portal時,後向擴展可能會進入多個塊。
  • 塊內的node-keyword maps存儲的距離信息並不是全局的最短路徑。

這裏寫圖片描述
Backward Expansion with Queues of Cursors 對每個關鍵詞使用遊標隊列(a queue Qi of cursors)。第4行使用keyword-blocklist找到包含wi 的所有塊。第5行爲每個塊內的關鍵詞賦予遊標。
找到當前塊的一個in-portal u時,需要通過portal-block list找到以u爲out-portal的塊(第12行)。對於每個塊b,用一個新的遊標對u進行遍歷(第13行)。
BLINKS搜索過程中可能多次遇到同樣的portal node u,主要有兩種情況:

  1. u能被包含同樣關鍵詞卻不在同樣塊的節點達到。
  2. u可以把包含不同關鍵詞的節點達到。

對於第一種情況,由於我們在第一次從u到關鍵詞wi 訪問的時候,就得到了全局的最短距離。因此我們使用一個bitmap crossed去保存該結果。(第11和14行)。該優化得到的結論如下:

Lemma 1. The number of cursors opened by searchBLINKS for each query keyword is O(P) , where P is the number of portals in the partitioning of the data graph.

因此,即便searchBLINKS不能一個關鍵詞一個遊標,但現在只需要有O(|P|) 就可以,也是遠遠小於不用目錄而使用整個搜索邊界的優先隊列。

Implementing Optimal Backward Search Strategy 第7行的 pickKeyword選擇explored node數量最少的keyword。此處應用了cost-balanced expansion strategy。
對於每個關鍵詞,遊標每次都移到距離最小的項。這裏應用了equi-distance expansion strategy。
Expanding Forward 雖然塊內node-keyword maps的距離信息並不是全局的,但是如果該距離小於u到任何out-portal的距離,就可以認爲是最短距離了。(第26,27行)
Pruning and Stopping 首先how to lower bound a node’s combined distance to the keywords。對於被訪問過但並未確定是答案的u點,我們計算sumLBDist(u)=mj=1LBDistj(u) 作爲到各個關鍵詞的距離lower bounds的和。其中R[u]=<u,dist1,dist2,...,distm> ,因爲並不是每個disti 都已知,但我們讓LBDistj(u)=max{d1,d2}

  • (Bound from search)d1=Qj.top().peekDist(), or  if Qj is empty.
  • (Bound from index)d2=min{MNK(b,u,wj),DNP(b,u)} ,如果u到wi 的最短路徑在塊內,則是MNK(b,u,wj) ,否則至少是DNP(b,u)

如果節點的下限都比τprune 要大,則不會是top k的答案,可被剪枝(第28,29行)。
算法停止條件(第16行):We stop if every unvisited node must have combined distance greater than τprune (same condition as in searchSLINKS), and every visited non-answer node can be pruned.

7 Optimizations and Other Issues

Evaluating Pruning and Stopping Conditions 函數sumLBDist(u)的計算量很大,因爲Qj.top().peekDist() 的quantity在搜索中會經常變化。我們在計算量和剪枝&停止的有效性之間做了平衡。只有在訪問到u點時,才計算sumLBDist(u)。我們還保留了一個優先隊列,去追蹤在所有的備選答案中最小的下界。

Batch Expansion 遊標間頻繁切換數據以及代碼的局部可達性很差限制了性能。因此我們允許一個遊標內一些節點被擴展,放寬了equi-distance expansion strategy。

Recovering Answer Trees 算法中返回的只有根節點,實際中往往需要知道結果樹。keyword-node lists & node-keyword maps的knode字段可以幫助順利找到答案。

Handling the Full Scoring Function 對於得分函數來說,我們只關注了path部分,root和match部分可以忽略。因爲加上root 和match部分的得分剪枝和停止部分的工作也是正確的。因爲得分非負。

Effect of Ranking Semantics
如果得分函數是一個黑盒函數,則沒有辦法進行預計算和存儲而優化。
- Distinct-root semantics. 要求每個節點至多一個答案。我們可以爲每個節點預先計算一些信息並存儲。
- Match-distributive semantics.如果沒有該semantic,則邊的權重不管引出了多少邊,只計算一次,那麼和group Steiner tree problem問題相同。有了該語義我們可以支持多關鍵字查詢,每個關鍵字和節點互相獨立。
- Graph-distance semantics. 因爲該semantic,我們可以把一條root-to-match的路徑分爲多段,併爲每段獨立地進行預計算和存儲。利用該semantic,我們可以使用二級目錄將圖劃分爲幾塊。跨塊的距離信息可以被來自不同塊的路徑組裝在一起。如果沒有該semantic,我們需要預先計算所有的root-to-match paths。

8 Experimental Results

本文算法:BLINKS.
對比算法:the Bidirectional search algorithm.

8.1 DBLP dataset

Graph Generation 首先從DBLP XML數據(http://dblp.uni-trier.de/xml/)產生node-labeled directed graph。原始的XML數據是一個樹,每個paper都是其子樹。我們加了兩種邊:
- 通過引用將論文連接在一起。
- 不同論文的相同作者共享一個節點。
另外,我們還
- 去掉了關鍵詞搜索中每個paper中不感興趣的元素,如url,ee等。
- 去掉了沒有引用其他論文或沒被其他論文引用的論文。

Search Performance
這裏寫圖片描述
這裏寫圖片描述
圖7展示了Bidirectional算法和BLINKS算法的四種配置(|b|=1000,300 ),每一條都表示兩個值,找到任一答案和找到前十個答案的時間。爲了避免時間太長,我們在90秒後強制返回結果。
查詢時間的影響因素:

  • 關鍵詞的數量。決定初始的邊界。
  • 查詢時邊界擴展的大小。查詢時,優先隊列的大小可能急速增長。因此Q6 的Bidirect算法比Q1Q5 時間都長。
  • 何時能停止搜索。這依賴剪枝的有效性。

雖然查詢空間由很多因素決定,但是關鍵詞越多,查詢空間一般越大。雖然基於BFS的一般優於基於METIS的,但也不總是這樣。塊的大小也和性能沒有必然聯繫。
Index Performance
這裏寫圖片描述
塊越大則條目越多,建立索引的時間越長——圖a和圖c的前四條。
基於BFS的方法的特殊是因爲數據集包含a very flat and broad tree以及一些連接的邊,因此BFS的方法很容易得到flat and broad 的塊,而且塊內的路徑比較短。塊內索引的建立主要是在塊內的路徑遊走,因此c圖中可以看到,基於BFS的時間也很少。

8.2 IMDB Dataset

Graph Generation 使用了IMDB數據(http://www.imdb.com)。圖包含68K nodes,248K edges, and 38K distinct keywords。
Search Performance
這裏寫圖片描述
圖9展示了平均的應答時間。這裏基於BFS的不如基於METIS。另外塊越大,性能越好。
Index Performance
這裏寫圖片描述
因爲IMDB圖相對較小,所以圖劃分很快,但圖索引建立很慢,因爲圖的結構比較複雜。
Comparing Figures 8 and 10, we note that the graph topology plays an important role on BLINKS: BFS works fine on simpler graphs, but experiences difficulty on highly-connected graphs.

9 Related Work

最相關的工作——BANKS在第3節有討論。
[10,5,14,20,22]解決XML上的關鍵詞搜索,雖然相似但其問題更加簡單。他們只關注樹結構,有着很多優化的機會。另外連接信息也容易被編碼。
[1,3,17,16,23]關注關係數據庫上的關鍵詞搜索。數據庫可以被視爲labeled graph,其中tuple被認爲是節點,用外鍵連接。但是這樣的圖有着固定的架構,因爲schema限制了節點的連接。

圖上的關鍵詞搜索同時考慮了節點標籤和圖結構,有很多的策略去對答案排序。不同策略關注不同方面。

  • 關注搜索的有效性,即排序函數是否滿足用戶需求。[16,2,13,23]使用了IR-style answer-tree ranking strategies。和本文不同,他們並不考慮搜索的效率,在IR-style的排序中,邊權重往往依賴排序使得難以建立索引
  • 提高搜索效率。一些如BANKS的系統提出方法降低搜索空間。一些方法將答案的得分定義爲邊權重之和,將問題轉化爲group Steiner tree,成爲了一個NP-hard問題,很難精確找到top k個答案。[21]表示在數據複雜度不高的情況下,使用該得分定義可以用多項式進行枚舉。[6]提出基於動態規劃的方法,旨在查詢中關鍵詞較少的情況。BLINKS提出另一種評分機制,避免問題歸約爲group Steiner tree問題,還通過目錄和剪枝降低複雜性。

在距離可以被圖劃分索引到這個意義上,我們的portal概念和[12]中的hub nodes類似。Hub nodes爲了計算任意兩點距離而設計。有一張全局的hub index保存了hub node之間的最短距離。BLINKS中我們並不預先計算這些全局信息,只是通過portal導航找到最佳答案。

10 Conclusion

本文關注圖數據上的關鍵詞搜索。問題如下

  • 難以直接對通用的,schemaless的圖建立索引,目前的方法很依賴運行時的圖遍歷。
  • 缺乏關於圖結構的信息使得搜索中的剪枝十分低效。

爲解決以上問題,我們提出了一個新的得分函數,使得問題適合索引,提出了兩層目錄並用塊大小來控制目錄的複雜度。We also propose the cost-balanced expansion policy for backward search, which provides good theoretical guarantees on search cost. Our search algorithm implements this policy efficiently with the bi-level index, and further integrates forward expansion and more effective pruning.

Future work主要有兩方面:

  • 圖更新,索引也需要更新。BLINKS本地化存儲,更新應該更容易。
  • 動態的選擇改變圖劃分和編排目錄的方式。

1

1

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