《Efficient Batch Processing for Multiple Keyword Queries on Graph Data》——論文筆記

ABSTRACT

目前的關鍵詞查詢只關注單個查詢。對於查詢系統來說,短時間內會接受大批量的關鍵詞查詢,往往不同查詢包含相同的關鍵詞。
因此本文研究圖數據多關鍵詞查詢的批處理。爲多查詢和單個查詢找到最優查詢計劃都是非常複雜的。我們首先提出兩個啓發式的方法使關鍵詞的重疊最大並優先處理規模小的關鍵詞。然後設計了一個同時考慮了數據統計信息和搜索語義的基於cardinality的成本估計模型。

1. INTRODUCTION

在過去的十年中,網絡搜索技術發展迅速。用戶依賴搜索引擎爲了不斷增加的信息分享和其他需求,在此過程中取代了其他的打印,電子和人類信息資源。相似的,數據庫服務提供者希望給用戶提供一個能夠對多種信息進行關鍵詞搜索的接口。現在大部分的關於關鍵詞搜索的研究只關注單個關鍵詞搜索,在實際中不實用。
(接下來舉例說明批搜索處理的重要性)
第三方公司作爲重要的數據用戶爲了優化其業務可能通過批查詢執行數據分析和挖掘潛在數據。對在短時間內接收到的大量查詢在幾分之一秒內返回結果十分重要。目前特定領域的搜索引擎被廣泛使用。通常其潛在數據是高度結構化的,往往被表示成圖結構。對於流行的特定領域搜索引擎,短時間內會接收到大量的查詢,並且這些查詢共享關鍵詞的可能性非常高。因此對批量的關鍵詞應答會顯著提高特定領域搜索引擎的性能。
(介紹相關工作)
本文研究圖數據上關鍵詞搜索的批處理問題,目標是在最小化總時間成本的前提下處理一組關鍵詞查詢。批量查詢處理是數據庫領域的經典問題。Sellis et.al 將SQL查詢拆分成子查詢並且保證批中每個SQL查詢能夠被子查詢應答。但其有時可能會需要維護所有子查詢的中間結果,這樣會導致高昂的空間花銷和額外的IO成本。Roy et. al.通過對比pipeline成本和重用成本對子查詢的中間結果重用和重計算進行了平衡。Jacob and Ives解決了關係數據庫中批量的交互關鍵詞查詢問題,在他們的工作中,關鍵詞搜索語義通過candidate networks定義,需要提前知道關係型數據庫的schema。
(問題的獨特性)
在對不同內容的批查詢和圖數據庫上的單個關鍵詞查詢處理的相關工作調研後,我們發現現有技術無法解決“圖數據上批量關鍵詞查詢”問題。
原因如下:

  1. Meaningful Result Semantics: 因爲r-clique能夠發現給出關鍵詞的最緊密的關係,所以r-clique能很好的定義圖數據上關鍵詞搜索的語義。但沒有研究使用該meaningful result semantics的批查詢處理工作。
  2. Complexity of the Optimal Batch Processing: NP完全問題。因爲每個查詢對應幾個查詢計劃,我們不能枚舉出所有的單個查詢的結合方式來得到最優的查詢計劃。
  3. Not-available Query Historic Information: 我們在執行查詢之前不需要假設知道任何子查詢的結果,因爲此類歷史信息不可獲取。

即便我們簡單的按照預定義的順序處理批查詢並重用中間結果,也不能保證我們能夠最優的處理批查詢。爲解決該問題,我們首先開發了兩個啓發式的方法首先處理規模較小且關鍵詞重合度高的關鍵詞。然後設計了一個cardinality estimation cost model通過考慮圖的連通性和result semantics of r-clique. 基於該成本模型我們通過拓展A 搜索算法得到一個最優的批查詢計劃,併爲A 設計了剪枝規則。

本文貢獻如下:

  • 我們提出並研究了在原始圖數據上進行批關鍵詞查詢的新問題。
  • 證明該問題是NP完全的,並在考慮了批關鍵詞查詢的特點後設計兩個啓發式的規則解答該問題。
  • 爲了最優的執行批查詢,我們設計了一個基於估計的成本模型去評估可能子查詢的計算成本,然後用來計算批查詢的最優計劃。
  • 在DBLP和IMDB數據集上測試。

2. PRELIMINARIES AND PROBLEM DEFINITIONS

2.1 Keyword Query on Graph Data

Native graph data. 原始圖數據G(V,E) 包含點集V(G) 和邊集E(G)
vV(G) 可能包含一些文本,可被表示爲v.KS={v.key1,...,v.keyz} . 把有文本的點稱爲content vertex.
eE(G) 是一對點(vi,vj)(vi,vjV) .兩點之間的路徑表示爲dist(vi,vj) ,路徑最短即邊最少。

Query processing for Single keyword query. 給定在圖G上的查詢q={k1,...,km} ,q的結果是G的一系列子圖,每個子圖都用G的r-clique表示爲RC(q,G) 生成。
對於查詢q1{k1,k2,k3,k4} ,讓r=1。如圖1所示q1 的一個結果是{v7,v8,v10}
這裏寫圖片描述
圖2(a)展示了q1 的一個查詢計劃,爲了簡化表示可用圖2(b)表示圖2(a)。查詢計劃有兩個操作符:

  • σki(G) 選擇圖G中匹配關鍵詞ki 的節點。爲使該操作更加高效,我們爲每個關鍵詞建立了節點的倒排列表,所以該操作的花費爲O(1)。查詢計劃的成本主要依賴於連接操作。
  • R 連接兩個r-cliques。
    這裏寫圖片描述

An r-clique is a group of content nodes that cover all the input keywords and the distance between each two nodes is less than or equal to r.
——《Keyword search in graphs:Finding r-cliques.》

2.2 Batched Multiple-Keyword Queries

批處理查詢最naive的解決方法是一個接一個的處理查詢,如圖2(b)和圖2(c)所示,顯然這樣並不高效,理想情況下,我們希望共享一些查詢處理的中間結果以避免重複計算。如圖2(d)中所示,關鍵詞k1k3 和關鍵詞k1k3k4 的中間結果被共享。
Problem definition 給定一個批關鍵詞查詢Q={q1,...,qn} ,目標是構建一個查詢計劃p(Q)opt 使得Q 中的所有子查詢成本最小。這是一個典型的NP完全問題。
問題的重要性:

  • 一個查詢可能有多個查詢計劃,我們不可能枚舉所有查詢的查詢計劃的組合找到最優的結果。
  • RC(K1K2,G)=RC(K1,G)RRC(K2,G)RC(K1K2,G) 的大小並不和RC(K1,G)RC(K2,G) 成比例,因此不易預測 RC(K1K2,G) 的大小。

3. HEURISTIC-BASED APPROACHES

3.1 A Shortest List Eager Approach

首先提出一個方法Basic,其主要思想在於按順序處理批查詢中的每個查詢,對於每個查詢qiQ 從最短的列表開始連接,如Rule1所示。

Rule 1. Given two inverted lists of keywords ki and kj , respectively. RC({ki},G) takes precedence to r-join with the existing intermediate results, if the list of ki is shorter than that of kj .

這裏寫圖片描述
算法1展示了Basic算法的細節,避免處理被處理過的關鍵詞。對每輪迭代,對於被處理過的關鍵詞,它用處理過關鍵詞的最大集合的中間結果。對於未處理的關鍵詞,它與有最小集合的關鍵詞進行join。
顯然該方法優於最簡單的挨個處理的方法。

3.2 A Maximal Overlapping Driven Approach

這裏寫圖片描述
Basic 算法不能充分利用共享的關鍵字。因爲優先處理較爲頻繁出現的共享關鍵詞能夠使更多的查詢獲益,我們提出了算法2。

Definition 1. Sharing factor. Given a batch query Q={q1,...,qn} , for any two queries qi,qjQ(ij) , we use the intersection of qi and qj to express their overlapped keywords, which is called sharing factor of qi and qj , denoted SF(qi,qj) . SF(qi,qj)=qiqj

Rule 2. Given a batch Q and let S be the set of sharing factor w.r.t. Q. For any two sharing factors SFi and SFj in S, RC(SFi,G) takes precedence over RC(SFj,G) if |SFi|freq(SFi)>|SFj|freq(SFj) , where freq(SF) is the frequency of SF in Q.

Rule 2平衡了出現頻率和共享因子長度。

算法首先計算Q中所有查詢的共享因子,在line 5按照規則2找到需要處理的共享因子sf。對共享因子sf找到其子共享因子sfc ,然後計算RC(sf,G) ,進而計算sf的超集,一直到Q中的查詢。然後本輪迭代結束,從未被處理的查詢中,繼續找共享因子。
這裏寫圖片描述

4 COST ESTIMATION FOR QUERY PLANS

最大化overlap並不意味查詢計劃的成本最低。本節提出首先提出查詢計劃的估計方式,然後基於對成本估計生成最佳的查詢計劃。

4.1 Cost of an r-Join

對於任何r-clique pair <rc,rc′′>(rcRC(Ki,G)andrc′′RC(Kj,G)) 。r-join操作從 <rc,rc′′> 中找出點對 <v,v> 其中dist(v,vr) ,預計算所有點對的最短路徑,然後成本o=RC(Ki,G)RRC(Kj,G))

cost(o)=O(ni×nj×|Ki|×|Kj|)

niRC(Ki,G) 的r-clique數量。因此成本與兩個輸入有關。
這裏寫圖片描述

4.2 Estimating Cardinality of an r-Join Result

對於給定的查詢q,有
這裏寫圖片描述
對於倒排列表L(K)中的一個點v,如果對每個vRC(q {k},G 都有dist(v,v)>r 則v對於RC(q,G) 沒有貢獻。那麼這樣的v對於參數r來說就是invalid vertex。我們構建了一個valid inverted list Lrv(k) ,構建過程如下:對所有v 其關鍵詞不包含v,如果v到所有的v 路徑都大於r,則v點invalid。pr(v)vRC(q {k},G) 使得dist(v,v)r 的可能性。則

|RC|(q,G)=pr(v)×|Lrv(k)|×|RC(q {k},G)|

Estimating cardinality of an r-join between two inverted lists for keywords. 對於Q={q1,q2} ,
這裏寫圖片描述

Estimating cardinality of an r-join between an r-clique set and an inverted list for a keyword.
這裏寫圖片描述

5. ESTIMATION-BASED QUERY PLANS

基於查詢計劃的估計成本,我們使用最先進的A 算法找到全局最優的查詢計劃。首先展示如何爲A 算法構建搜索空間,然後介紹如何剪枝。

5.1 Finding Optimal Solution based on Estimated Cost

使用A 算法將問題轉化爲狀態空間搜索問題。
Search space. 批查詢Q={q1,...,qn} 的搜索空間S(Q) 可以表示爲S(Q)={P(q1)×...×P(qn)} 其中P(qi) 是對於qi 的一系列查詢計劃。對於批處理查詢Q的全局查詢計劃形式如下<p1P(q1),...,pnP(qn)>
因此搜索空間中每個狀態si 是一個n元組<pi1,...,pin> 其中pij{NULL} 或者是對第i個查詢的查詢計劃。搜索空間包含起始狀態s0=<NULL,...,NULL> 和幾個最終狀態SF 。狀態的值爲所有查詢的總和:

v(si)=psi,pNULLcost(p)
所以我們的目的是找到最小的v(sf)

爲了算法快速收斂,lower bound 函數lb(si) 提出,旨在剪枝中間結果,決定是否從si1si

lb(si)=v(si1+pre_cost(si))

上式是說從si1si 當對qi 執行查詢計劃p 時至少需要pre_cost(si))

pre_cost(si))=opcost^(o)

這裏寫圖片描述
總結本文算法EstPlan:如果任何狀態sj(ij),lb(si)<v(sj) ,算法繼續是si 狀態,否則跳至sj 狀態。

5.2 Reducing Search Space

這裏寫圖片描述
這裏寫圖片描述

6. EXPERIMENT

Basic——the Shortest List Eager Approach
Overlap——the Maximal Overlapping Driven Approach
EstPlan——A based algorithm

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