基于多种转换语义的图数据库查询
1. 摘要
因為圖數(shù)據(jù)庫的復(fù)雜模式和不同的信息描寫敘述方式,對于非專業(yè)用戶來說查詢復(fù)雜的圖數(shù)據(jù)庫是異常困難的。
一個好的圖查詢引擎應(yīng)該支持多種轉(zhuǎn)化——同義詞、縮略詞、簡寫以及本體等等,而且應(yīng)該可以對搜索結(jié)果進(jìn)行一個非常好地排序。
基于此問題本文提出了一種新型的查詢框架來方便用戶查詢,解放了為構(gòu)造查詢圖而抓耳撓腮的用戶群。
2. 應(yīng)用背景
2.1 應(yīng)用
圖數(shù)據(jù)庫也是一種流行的數(shù)據(jù)存儲方式。如知識圖、信息網(wǎng)絡(luò)以及社交網(wǎng)絡(luò)等應(yīng)用的數(shù)據(jù)都存儲在圖數(shù)據(jù)庫中。由于圖數(shù)據(jù)的無模式或者模式太復(fù)雜以及信息的多種描寫敘述方式使得基于圖數(shù)據(jù)的查詢變得很困難。對于一般用戶來說更是望之卻步。
圖2-1 a為圖數(shù)據(jù)庫中的一部分,若查詢大約30歲而且跟“Universityof California Berkley”以及“Mission:Impssible”相關(guān)的演員。易得圖2-1中綠色與黃色部分均為比較好的結(jié)果。圖2-1 b為一個可以表達(dá)查詢語義的查詢,可是現(xiàn)有的圖數(shù)據(jù)庫查詢僅僅能查詢到綠色的部分或者一個都查不到。
原因在于結(jié)點的信息都不匹配。而原有查詢又不支持語義轉(zhuǎn)換或者僅僅支持一種轉(zhuǎn)化。
圖2-1 圖數(shù)據(jù)庫G
該文解決的問題能夠描寫敘述為:給定一個查詢Q以及數(shù)據(jù)庫G,找出圖數(shù)據(jù)庫中全部由Q經(jīng)轉(zhuǎn)換函數(shù)能夠轉(zhuǎn)化的圖。
2.2 抽象定義
給定一個查詢Q、一個圖數(shù)據(jù)庫G以及一系列轉(zhuǎn)化函數(shù)L,求跟Q匹配的最好的k個子圖。當(dāng)中轉(zhuǎn)化函數(shù)L包含表2-1中全部的轉(zhuǎn)化。
表2-1 本文支持的轉(zhuǎn)化函數(shù)
注:本文的方法能夠輕松地增加其他轉(zhuǎn)化函數(shù)來滿足不同的需求
3 已有方法
Spark查詢僅僅需用戶輸入keyword就可以,而無需輸入復(fù)雜的圖結(jié)點關(guān)系就能得到查詢結(jié)果。但其僅僅能提取字符串相似匹配,通過改動能夠使其支持其他轉(zhuǎn)換。
NeMa支持圖結(jié)構(gòu)和字符串相似度匹配(Jaccard)。
4 本文的方法
4.1 離線操作
4.1.1 度量函數(shù)
下述公式中v表示結(jié)點,e表示邊,φ(·)表示匹配,比如φ(v)表示圖數(shù)據(jù)庫G中與查詢圖v中匹配的結(jié)點。若v能夠經(jīng)過第i個轉(zhuǎn)換函數(shù)變?yōu)棣?v),則fi(v,φ(v)) = 1。反之φ(v) = 0。
結(jié)點匹配代價:
? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
邊匹配代價:
? ? ? ? ? ? ? ? ? ? ? ? ? ??
圖匹配函數(shù):
? ? ?
且易得圖匹配函數(shù)P的值越小,與Q匹配的圖φ(Q)的質(zhì)量越高,即查詢結(jié)果應(yīng)該為P值最小的k個子圖。
4.1.2 參數(shù)確定
令W={α1, α2, … ; β1, β2…},則
當(dāng)中T表示訓(xùn)練集。
4.1.3 冷啟動
令啟動的目的在于怎樣生成好的查詢訓(xùn)練集,從而能夠得到好的匹配函數(shù)的參數(shù)。冷啟動步驟:
(1) 從圖數(shù)據(jù)庫中隨機(jī)選擇一些子圖作為查詢模板Q’;
(2) 將查詢模板中的一些結(jié)點和邊用轉(zhuǎn)換函數(shù)進(jìn)行轉(zhuǎn)化得到查詢Q。
(3) 提取和Q精確匹配的子圖Qe;
(4) (Q, Q’)與(Q, Qe)組成訓(xùn)練集。
4.2 在線查詢
一般的圖查詢均屬于NP-hard問題,其能夠歸約為子圖同構(gòu)問題,從而證明該問題是NP-hard的。
因此本文設(shè)計了兩個啟示式用于求解該問題。
4.2.1 啟示式1
將圖匹配的代價累加到一個結(jié)點上,則每一個結(jié)點的匹配得分能夠代表包含該節(jié)點在內(nèi)的圖匹配代價。
每一個結(jié)點計算公式:
當(dāng)中mji(t)(ui)表示第t次迭代uj結(jié)點對節(jié)點ui匹配貢獻(xiàn)的得分。
該公式的直觀理解參考圖4-1。當(dāng)中a、b中左邊均表示數(shù)據(jù)庫,右邊表示查詢圖。
圖4-1 啟示式1的直觀意義
4.2.2 啟示式2
利用啟示式1進(jìn)行計算時須要計算大量的結(jié)點。由結(jié)點匹配代價計算公式可得。對于隨意的查詢結(jié)點v經(jīng)過同樣的轉(zhuǎn)換函數(shù)匹配代價同樣。基于此將經(jīng)過同一個結(jié)點轉(zhuǎn)換的結(jié)點濃縮為一個結(jié)點計算,則能夠有效降低結(jié)點得分的計算個數(shù)。由濃縮結(jié)點組成的圖成為概要圖。若查詢圖中兩個結(jié)點之間存在邊,則連接概要圖中相應(yīng)的結(jié)點,而與圖數(shù)據(jù)庫無關(guān)。當(dāng)中,邊的匹配代價為圖數(shù)據(jù)庫中全部這類邊的匹配代價的上界。
基于這樣的發(fā)現(xiàn)問題的求解步驟為:
(1) 構(gòu)造概要圖;
(2) 在概要圖上利用啟示式1計算;
(3) 利用概要圖中計算出的結(jié)果求原圖中與之相應(yīng)子圖的得分。
循環(huán)運行直到找到k個結(jié)果。
?
以上為我對論文Schemaless and Structureless Graph Querying-vldb2014的個人理解。當(dāng)然當(dāng)中僅僅介紹了論文中的主要內(nèi)容。具體的解說請查看論文解說的ppt,地址http://download.csdn.net/detail/woniu317/7391539。
?
總結(jié)
以上是生活随笔為你收集整理的基于多种转换语义的图数据库查询的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: JavaScript实现网页元素的拖拽效
- 下一篇: 黄东旭:Cloud-Native 的分布