国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于Seq2Seq 模型的SparQL 查詢預(yù)測(cè)?

2021-05-23 13:17楊東華鄒開(kāi)發(fā)王宏志王金寶
軟件學(xué)報(bào) 2021年3期
關(guān)鍵詞:三元組個(gè)數(shù)數(shù)據(jù)庫(kù)

楊東華,鄒開(kāi)發(fā),王宏志,王金寶

1(哈爾濱工業(yè)大學(xué) 分析測(cè)試與計(jì)算中心,黑龍江 哈爾濱 150001)

2(哈爾濱工業(yè)大學(xué) 計(jì)算學(xué)部,黑龍江 哈爾濱 150001)

近年來(lái),支撐人工智能的數(shù)據(jù)管理和分析技術(shù)已成為當(dāng)前大數(shù)據(jù)與人工智能領(lǐng)域的研究熱點(diǎn),在圖數(shù)據(jù)庫(kù)領(lǐng)域也是如此.利用圖數(shù)據(jù)庫(kù)中的數(shù)據(jù)管理與分析技術(shù),可以有效促進(jìn)人工智能領(lǐng)域的發(fā)展.例如:在類似于微信或者Facebook 這樣的社交網(wǎng)絡(luò)中,存在著大量用戶與用戶之間的關(guān)系,適合用圖數(shù)據(jù)模型進(jìn)行存儲(chǔ).在商業(yè)領(lǐng)域,公司控股關(guān)系、法人關(guān)系等也構(gòu)成了一個(gè)龐大的網(wǎng)絡(luò),這些數(shù)據(jù)更適合使用圖數(shù)據(jù)庫(kù)進(jìn)行存儲(chǔ),并借助人工智能,利用數(shù)據(jù)管理與分析技術(shù)為用戶、公司等提供更多的幫助.

查詢預(yù)測(cè)是圖數(shù)據(jù)庫(kù)領(lǐng)域支撐人工智能的技術(shù)之一,結(jié)合各種人工智能方法,利用已有的查詢對(duì)用戶未來(lái)的查詢進(jìn)行預(yù)測(cè),然后進(jìn)行數(shù)據(jù)預(yù)加載,從而提高圖數(shù)據(jù)庫(kù)的響應(yīng)效率.這些方法對(duì)人工智能本身的發(fā)展起到了推動(dòng)作用.

以SparQL 查詢?yōu)槔?目前已有一些研究人員提出了SparQL 查詢預(yù)測(cè)的算法.這些算法往往分為兩類.

? 一類方法如文獻(xiàn)[1?3],從圖數(shù)據(jù)庫(kù)讀取數(shù)據(jù)源的信息,然后根據(jù)這些信息來(lái)對(duì)用戶可能的查詢進(jìn)行預(yù)測(cè).這樣的方法能夠結(jié)合數(shù)據(jù)信息,但也使得算法不具有跨數(shù)據(jù)移植性.當(dāng)更換了其他數(shù)據(jù)源之后,可能會(huì)因?yàn)槟承┬畔⒌娜笔Ф顾惴o(wú)法正確工作;

? 另一類方法則通常從圖數(shù)據(jù)庫(kù)的工作日志中獲取用戶的歷史查詢的信息,并計(jì)算這些歷史查詢間的相似度來(lái)預(yù)測(cè)下一個(gè)可能的相似的SparQL 查詢.雖然具有了跨數(shù)據(jù)移植性,但仍然具有局限性.文獻(xiàn)[4,5]中使用圖模式匹配的算法要求歷史查詢必須存在重復(fù)性,才可以匹配到連續(xù)相似的查詢以創(chuàng)建模板;文獻(xiàn)[6,7]中使用相似度的算法,由于獨(dú)立計(jì)算三元組的相似度導(dǎo)致三元組之間的聯(lián)系沒(méi)有被考慮到,影響了預(yù)測(cè)的準(zhǔn)確率.

使用圖模式匹配的方法僅僅考慮相似的查詢,而不考慮查詢間的聯(lián)系;而利用三元組的相似度進(jìn)行計(jì)算,則將查詢本身進(jìn)行細(xì)化了,沒(méi)有考慮到同一個(gè)查詢內(nèi)三元組間的影響.因此,本文將查詢轉(zhuǎn)化為序列,不同的查詢序列進(jìn)行連接,將查詢內(nèi)部三元組的聯(lián)系以及查詢間的聯(lián)系信息存儲(chǔ)于序列之中,進(jìn)而本文使用Seq2Seq 模型處理這些序列數(shù)據(jù),提出了一種基于Seq2Seq 模型的SparQL 查詢預(yù)測(cè)算法.本文的主要研究重點(diǎn)在于如何將用戶的查詢轉(zhuǎn)化為可計(jì)算的特征向量,合適的特征向量能夠提高Seq2Seq 模型的學(xué)習(xí)效果,以及如何對(duì)模型的結(jié)構(gòu)進(jìn)行優(yōu)化也是需要解決的問(wèn)題.

本文第1 節(jié)主要回顧目前圖數(shù)據(jù)庫(kù)以及SparQL 查詢預(yù)測(cè)的研究成果.第2 節(jié)給出本文所需的背景知識(shí).第3 節(jié)介紹預(yù)測(cè)算法的具體流程.第4 節(jié)則是利用USEWOD 數(shù)據(jù)集對(duì)算法進(jìn)行測(cè)試,并進(jìn)行結(jié)果分析和討論.第5 節(jié)總結(jié)本文的主要工作和對(duì)未來(lái)工作的展望.

1 相關(guān)工作

1.1 圖數(shù)據(jù)庫(kù)

近些年,圖數(shù)據(jù)庫(kù)的發(fā)展迅速,一方面,Neo4j,OriendDB,ArangoDB 等數(shù)據(jù)庫(kù)仍然廣泛使用;另一方面,研究者們也提出了一些新的圖數(shù)據(jù)庫(kù),如TigerGraph[8],SeQuery[9],GraphSE2[10],Graphflow[11]等,它們往往采用了不同的解決方案,從而解決不同的實(shí)際應(yīng)用問(wèn)題.文獻(xiàn)[12]分析了 Neo4j,AllegroGraph,ArangoDB,InfiniteGraph,OrientDB 等流行圖數(shù)據(jù)庫(kù)的特點(diǎn),從存儲(chǔ)結(jié)構(gòu)、易用性、性能等方面對(duì)各個(gè)數(shù)據(jù)庫(kù)做了介紹,并指出了對(duì)于圖數(shù)據(jù)庫(kù)最重要的幾個(gè)特性(靈活的結(jié)構(gòu)、支持的查詢語(yǔ)言、分片、備份、多模型、多架構(gòu)、可擴(kuò)展性、云讀取),并從這幾個(gè)維度為上述圖數(shù)據(jù)庫(kù)進(jìn)行了評(píng)分.文獻(xiàn)[13]則是比較了同一數(shù)據(jù)模型在關(guān)系數(shù)據(jù)庫(kù)和圖數(shù)據(jù)庫(kù)上的存儲(chǔ),證明了圖數(shù)據(jù)庫(kù)在圖查詢和可視化上的優(yōu)勢(shì).

圖數(shù)據(jù)庫(kù)的應(yīng)用也變得越來(lái)越廣泛.文獻(xiàn)[14]基于圖數(shù)據(jù)庫(kù)實(shí)現(xiàn)了一種位置圖模型,用于根據(jù)場(chǎng)所描述信息對(duì)其進(jìn)行建模,在這個(gè)基礎(chǔ)上,實(shí)現(xiàn)了地理位置匹配、推理與查詢功能.文獻(xiàn)[15]則基于Neo4j 圖數(shù)據(jù)庫(kù)構(gòu)建了煤礦領(lǐng)域的知識(shí)圖譜,同時(shí),設(shè)計(jì)并開(kāi)發(fā)了煤礦監(jiān)測(cè)監(jiān)控原型系統(tǒng),體現(xiàn)了圖數(shù)據(jù)庫(kù)在知識(shí)圖譜領(lǐng)域的應(yīng)用.文獻(xiàn)[16]則是以Neo4j 作為后端實(shí)現(xiàn)了一個(gè)圖查詢系統(tǒng),并比較了Cypher,Gremlin,Java 作為查詢語(yǔ)言的方案,比較了幾種方案的優(yōu)缺點(diǎn).

1.2 SparQL查詢預(yù)測(cè)

SparQL 查詢預(yù)測(cè)指利用已有的信息對(duì)用戶接下來(lái)可能發(fā)出的SparQL 查詢進(jìn)行預(yù)測(cè),目前主要有兩種方法.(1)根據(jù)RDF 數(shù)據(jù)中的信息對(duì)SparQL 查詢進(jìn)行預(yù)測(cè);(2)根據(jù)用戶的歷史SparQL 查詢進(jìn)行預(yù)測(cè).

第1 類方法相對(duì)傳統(tǒng),文獻(xiàn)[1]使用本體元數(shù)據(jù)的信息進(jìn)行下一步的查詢預(yù)測(cè).相比之下,文獻(xiàn)[2]則提出了一種新的方法,該方法使用一張預(yù)先計(jì)算好的屬性值相似表進(jìn)行查詢預(yù)測(cè).文獻(xiàn)[3]則利用從知識(shí)圖譜構(gòu)建出的語(yǔ)言模型來(lái)實(shí)現(xiàn)查詢預(yù)測(cè).這些方法通常預(yù)先進(jìn)行信息計(jì)算,然后進(jìn)行查詢預(yù)測(cè).但是其共同點(diǎn)是需要從數(shù)據(jù)中獲取信息,這意味著它們構(gòu)建出的方法/模型不是跨數(shù)據(jù)源可用的.因?yàn)椴煌臄?shù)據(jù)源信息不同,也可能存在缺失,因此這些方法存在很大的局限性.

另一類方法則是利用圖數(shù)據(jù)庫(kù)的歷史查詢?nèi)罩緛?lái)做查詢預(yù)測(cè),這樣的方法具有較強(qiáng)的數(shù)據(jù)移植性,因?yàn)樗鼈兺ǔJ峭ㄟ^(guò)分析查詢而不是數(shù)據(jù)本身.文獻(xiàn)[4]檢測(cè)歷史查詢中所存在的重復(fù)模式,然后使用一種自下而上的圖模式匹配算法進(jìn)行查詢模板的創(chuàng)建,從而實(shí)現(xiàn)查詢預(yù)測(cè).文獻(xiàn)[5]則是在此基礎(chǔ)上將這些查詢模板與不同的策略相結(jié)合,來(lái)進(jìn)一步擴(kuò)展可能的查詢,但是并沒(méi)有得到結(jié)論性的結(jié)果.一些方法使用相似性來(lái)進(jìn)行查詢預(yù)測(cè),如文獻(xiàn)[6]使用圖編輯距離來(lái)計(jì)算不同的SparQL 查詢之間的相似性,從而使用相似的查詢構(gòu)建新的查詢;文獻(xiàn)[7]則利用SparQL 的三元組的主語(yǔ)、謂語(yǔ)和賓語(yǔ)間的相似性得到三元組的相似性,進(jìn)而計(jì)算查詢的相似性,從而進(jìn)行查詢預(yù)測(cè).

第2 種方法雖然具有較好的數(shù)據(jù)移植性,但是無(wú)論是基于模板的方法還是基于相似性的方法,都只能使用歷史查詢中的相似查詢,如果查詢呈現(xiàn)周期性的波動(dòng),則很難進(jìn)行預(yù)測(cè).另一方面,SparQL 查詢的長(zhǎng)度是不確定的,而這樣的方法導(dǎo)致新的查詢的長(zhǎng)度必然等于這些相似的歷史查詢,因此這一問(wèn)題也需要解決.

2 背景知識(shí)

本文旨在根據(jù)圖數(shù)據(jù)庫(kù)所存儲(chǔ)的數(shù)據(jù)以及其歷史工作負(fù)載等信息,對(duì)工作負(fù)載、數(shù)據(jù)特征等進(jìn)行有效的統(tǒng)計(jì),并設(shè)計(jì)合理的方案提取出相關(guān)特征;根據(jù)這些特征,進(jìn)行對(duì)用戶可能的查詢的預(yù)測(cè),從而可以對(duì)用戶需要的數(shù)據(jù)進(jìn)行預(yù)加載以及進(jìn)行合適的查詢優(yōu)化.

為了較為方便地提取工作負(fù)載以及進(jìn)行預(yù)測(cè),本文主要研究的數(shù)據(jù)對(duì)象為關(guān)聯(lián)數(shù)據(jù).關(guān)聯(lián)數(shù)據(jù)是語(yǔ)義網(wǎng)的主題之一,描述了通過(guò)可鏈接的URI 方式來(lái)發(fā)布、分析、連接Web 中各類資源的方法.關(guān)聯(lián)數(shù)據(jù)通常以資源描述框架(resource description framework,簡(jiǎn)稱RDF)的形式進(jìn)行描述,而查詢RDF 使用的語(yǔ)言是SparQL(SPARQL protocol and RDF query language).

定義1(SparQL 圖模式).一個(gè)SparQL 查詢通??梢员槐硎緸橐粋€(gè)圖結(jié)構(gòu),定義符號(hào)B為空白節(jié)點(diǎn),I表示國(guó)際化資源標(biāo)識(shí)符(internationalized resource identifier,簡(jiǎn)稱IRI),L表示字面量,V則表示變量,那么一個(gè)SparQL圖的圖模式通??梢匀缦逻f歸定義[17].

(1)一個(gè)有效的三元組T∈(IVB)×(IV)×(IVLB)是一個(gè)基本的圖模式(basic graph pattern,簡(jiǎn)稱BGP),三個(gè)元素分別被稱之為主語(yǔ)、謂語(yǔ)和賓語(yǔ);

(2)對(duì)于基本的圖模式BGPi和BGPj,其連接(BGPiandBGPj)也是一個(gè)BGP;

(3)如果Pi和Pj是圖模式,那么(PiandPj),(PiunionPj)以及(PioptionalPj)也是圖模式;

(4)如果Pi是一個(gè)圖模式,而Ri是一個(gè)SparQL 的內(nèi)建表達(dá)式(如lang(?name)=“en”表示限定name變量的語(yǔ)言是英語(yǔ)),那么表達(dá)式(PifilterRi)是一個(gè)圖模式.

可以從數(shù)據(jù)庫(kù)中獲取用戶的若干個(gè)歷史SparQL 查詢,進(jìn)而對(duì)用戶接下來(lái)的查詢進(jìn)行預(yù)測(cè).據(jù)此,給出SparQL 查詢預(yù)測(cè)問(wèn)題的定義.

定義2(SparQL 查詢預(yù)測(cè)問(wèn)題).符號(hào)N表示用戶查詢的個(gè)數(shù),Q1,Q2,…,Qn表示用戶最新發(fā)出的N個(gè)連續(xù)的SparQL 查詢,Q表示用戶接下來(lái)的SparQL 查詢,則SparQL 查詢預(yù)測(cè)問(wèn)題即在給定Q1,Q2,…,Qn的情況下,對(duì)Q進(jìn)行預(yù)測(cè).

此外,本文在研究中使用到了Seq2Seq 模型以及注意力機(jī)制和集束搜索,在此給出介紹.

2.1 Seq2Seq模型

本研究中將 SparQL 查詢轉(zhuǎn)化為序列,因此將問(wèn)題變成了一個(gè)序列到序列的問(wèn)題.而文獻(xiàn)[18]提出的Seq2Seq 模型通常被用以處理序列到序列的任務(wù),Seq2Seq 模型使用兩個(gè)循環(huán)神經(jīng)網(wǎng)絡(luò)(recurrent neural networks,簡(jiǎn)稱RNN)[19]對(duì)序列進(jìn)行處理和輸出,RNN 是一種隱藏層互相連接的神經(jīng)網(wǎng)絡(luò),被廣泛應(yīng)用于處理序列數(shù)據(jù),其計(jì)算流程見(jiàn)公式(1)、公式(2).

σh與σy分別表示隱藏層與輸出層的激活函數(shù),W,U和b均為對(duì)應(yīng)的參數(shù),ht表示t 時(shí)刻的隱藏層狀態(tài),yt表示t時(shí)刻的輸出.

Seq2Seq 模型則使用了兩個(gè)RNN 進(jìn)行處理,分別稱之為編碼器Encoder 與解碼器Decoder.Encoder 讀取輸入信息,將學(xué)習(xí)到的信息存儲(chǔ)于公式(1)中計(jì)算出的隱藏層狀態(tài)ht中;Decoder 則讀取最終時(shí)刻的Encoder 的隱藏層狀態(tài)作為自己的初始隱藏層狀態(tài),并不斷進(jìn)行迭代產(chǎn)生輸出序列,從而完成從序列到序列的任務(wù).

2.2 注意力機(jī)制

注意力機(jī)制希望模型對(duì)輸入具有“注意力”[20].具體地,解碼器應(yīng)當(dāng)在輸出的不同時(shí)間步都對(duì)編碼器的每個(gè)狀態(tài)(對(duì)應(yīng)輸入序列的每個(gè)時(shí)間步)給予不同的權(quán)重,于是在每個(gè)輸出時(shí)刻,都可以通過(guò)這些不同的權(quán)重對(duì)編碼器的隱藏層信息進(jìn)行加權(quán),從而得到一個(gè)隨著時(shí)間步變化的上下文信息,該上下文信息相當(dāng)于模型在當(dāng)前時(shí)間步進(jìn)行輸出時(shí),關(guān)注不同的輸入而得到了不同的信息.將這些上下文信息作為對(duì)應(yīng)時(shí)間步的輸入之一,增強(qiáng)解碼器輸出時(shí)的判斷能力.這些權(quán)重采取隨機(jī)初始化的方式,在Seq2Seq 模型訓(xùn)練時(shí)不停調(diào)整,以獲取更豐富的信息.

2.3 集束搜索

集束搜索(beam search)是一種動(dòng)態(tài)規(guī)劃算法[21].集束搜索只應(yīng)用于Seq2Seq 模型的預(yù)測(cè)時(shí):在當(dāng)前時(shí)間步進(jìn)行輸出時(shí),不再選擇概率最高的結(jié)果進(jìn)行輸出,而是保留概率最高的K個(gè);而在下一個(gè)時(shí)間步進(jìn)行輸出時(shí),在計(jì)算概率時(shí)不再單純計(jì)算輸出某個(gè)元素的概率,而是計(jì)算從第1 個(gè)時(shí)間步到當(dāng)前時(shí)間步的所有輸出形成的輸出序列的聯(lián)合概率,從而可以根據(jù)聯(lián)合概率對(duì)當(dāng)前時(shí)間步的輸出進(jìn)行排序,同樣地,再次保留概率最高的K個(gè)作為當(dāng)前時(shí)間步的輸出給予下一個(gè)時(shí)間步使用.

使用集束搜索機(jī)制,一方面可以降低單個(gè)時(shí)間步預(yù)測(cè)出錯(cuò)時(shí)所帶來(lái)的誤差,因此可能在下一個(gè)時(shí)間步正確的輸出會(huì)獲得更高的概率;另一方面,在每個(gè)時(shí)間步都計(jì)算整體的輸出序列的概率而不是單個(gè)時(shí)間步的輸出元素的概率,更好地考慮了序列元素之間的相關(guān)性.

3 SparQL 查詢預(yù)測(cè)算法

本研究從圖數(shù)據(jù)庫(kù)的工作日志中提取出用戶的SparQL 查詢信息,然后進(jìn)行查詢預(yù)測(cè).這樣做的優(yōu)點(diǎn)是具有跨數(shù)據(jù)的移植性,即使更換了數(shù)據(jù)源仍然適用.已有的這類研究通常使用圖匹配或者相似度的方法,這意味著用戶過(guò)去的歷史查詢需要保持相似,當(dāng)其發(fā)生周期性的變化時(shí),無(wú)論是圖匹配還是相似度,都無(wú)法找到這種周期性的規(guī)律;另一方面,基于相似度的方法通常利用歷史查詢中相似的三元組構(gòu)建預(yù)測(cè)查詢中的三元組,而沒(méi)有利用到三元組之間的信息.

本文提出的基于Seq2Seq 模型的SparQL 查詢預(yù)測(cè)算法將定義1 中的圖模式轉(zhuǎn)化為序列,利用Seq2Seq 模型挖掘序列內(nèi)部元素的關(guān)聯(lián)性,保證利用了三元組之間的信息;同時(shí),將若干個(gè)歷史查詢連接為同一個(gè)序列,從而使得模型可以學(xué)習(xí)到查詢間的規(guī)律性,降低了對(duì)于查詢連續(xù)相似的依賴.

想要從序列中學(xué)習(xí)到豐富的信息,那么就需要將文本形式的SparQL 查詢轉(zhuǎn)化為可計(jì)算的特征向量,這部分將在第3.1 節(jié)中介紹;在得到特征向量之后,如何利用Seq2Seq 模型進(jìn)行查詢預(yù)測(cè)以及如何進(jìn)行模型優(yōu)化將在第3.2 節(jié)中介紹.

3.1 特征轉(zhuǎn)化

3.1.1 特征轉(zhuǎn)化的要求

從查詢轉(zhuǎn)化到的特征向量將用于查詢預(yù)測(cè)任務(wù),因此對(duì)特征向量的要求較高,也是本文著重解決的問(wèn)題,具體地,特征轉(zhuǎn)化的要求主要有如下幾點(diǎn).

(1)信息完備性

所得到的特征應(yīng)當(dāng)盡可能地囊括原始數(shù)據(jù),也就是SparQL 圖模式中所蘊(yùn)含的信息,要能夠恰好地表達(dá)出三元組所包含的信息的同時(shí),也要能夠表達(dá)三元組間的聯(lián)系,不可以將三元組獨(dú)立拆分,這也是現(xiàn)有的大多數(shù)方法所不具備的.

(2)還原性

一些提取SparQL 特征向量的工作,如文獻(xiàn)[22],將SparQL 查詢轉(zhuǎn)化為語(yǔ)法樹(shù)的形式,然后通過(guò)將其中的一些關(guān)鍵信息(如UNION 操作的個(gè)數(shù)等)進(jìn)行記錄,然后轉(zhuǎn)化為特征向量.但這樣所得到的特征向量并不具備還原性,即無(wú)法從特征向量還原到SparQL 查詢或者圖模式,那么就無(wú)法進(jìn)行查詢的相關(guān)預(yù)測(cè).因此,對(duì)特征轉(zhuǎn)化的要求包括需要能夠從特征向量轉(zhuǎn)化為SparQL 圖模式,從而判斷查詢預(yù)測(cè)的準(zhǔn)確性等.

(3)泛化能力

查詢預(yù)測(cè)是根據(jù)用戶的歷史查詢?nèi)ヮA(yù)測(cè)用戶下一步的查詢,而事實(shí)上,用戶下一步的查詢中可能會(huì)出現(xiàn)歷史查詢中所沒(méi)有出現(xiàn)過(guò)的變量或其他信息,因此在提取特征時(shí),便不能過(guò)度依賴于三元組字段的內(nèi)容本身,否則當(dāng)用戶發(fā)出新的陌生的SparQL 查詢時(shí)將無(wú)法轉(zhuǎn)化,故泛化能力是指需要能夠預(yù)測(cè)訓(xùn)練時(shí)歷史查詢中所不包含的三元組或變量等信息.

3.1.2 特征轉(zhuǎn)化的設(shè)計(jì)思想

基于第3.1.1 節(jié)中所列出的3 點(diǎn)要求,本文將通過(guò)如下的設(shè)計(jì)思想進(jìn)行特征轉(zhuǎn)化方案的設(shè)計(jì).

(1)將三元組視為整體,查詢視為一個(gè)序列

三元組包括由主語(yǔ)、謂語(yǔ)和賓語(yǔ)構(gòu)成,而這三者之間往往存在一定聯(lián)系,如果將三元組的信息拆分進(jìn)行表示,那么將會(huì)破壞其整體性,無(wú)法較好地表達(dá)其三元組本身的信息,因此需要將三元組視為一個(gè)整體進(jìn)行對(duì)待.其次則是將查詢整體視為序列,從而包含三元組之間的關(guān)聯(lián).如果以符號(hào)T表示三元組,那么一個(gè)SaprQL 查詢的圖模式部分的例子通常類似于:“{{T1T2T3} UNION {{T4T5} AND {T6}} OPTIONAL {T7}}”.從這個(gè)例子中可以看到:除了三元組之外,圖模式中還包括了UNION,AND 和OPTIONAL 這類SparQL 操作符以及括號(hào)等符號(hào).事實(shí)上,無(wú)論是三元組還是這些操作符,都在圖模式中表達(dá)著SparQL 的語(yǔ)義信息,甚至于左右大括號(hào)這類符號(hào)也傳遞著嵌套信息等語(yǔ)義信息.因此,若想要完整的表示SparQL 圖模式,就必須將所有的這些語(yǔ)義信息進(jìn)行盡可能地充分的表達(dá).因此,本文借鑒了自然語(yǔ)言處理領(lǐng)域?qū)τ陬愃菩畔⒌奶幚矸绞?將SparQL 圖模式視為一個(gè)符號(hào)序列,無(wú)論是三元組還是操作符,抑或是括號(hào)等其他符號(hào),均視為該符號(hào)序列中的一部分進(jìn)行單獨(dú)表示,從而將整個(gè)序列的語(yǔ)義信息進(jìn)行充分的表達(dá),也能使三元組之間的聯(lián)系信息存儲(chǔ)在序列之中.

(2)以位置信息表達(dá)三元組

本研究使用一組查詢中“第N個(gè)三元組”的形式定義三元組的編號(hào),即:其在序列中的位置決定了其編號(hào),而不是使用內(nèi)容信息.如果以三元組本身的內(nèi)容進(jìn)行信息表達(dá),那么對(duì)于未知內(nèi)容的三元組,則無(wú)法提前了解其信息,也就無(wú)法進(jìn)行表達(dá)了,故而這種方法將不再具有泛化能力.本文的這種形式判斷三元組在這一組查詢中所出現(xiàn)的次序,以此進(jìn)行三元組的編號(hào),在已經(jīng)使用序列表達(dá)整個(gè)SparQL 圖模式的情況下,對(duì)于相似的序列模式,其所包含的三元組的位置信息也是相似的,即使在用戶的新查詢中包含了訓(xùn)練時(shí)未曾出現(xiàn)過(guò)的三元組,但是其位置信息往往已經(jīng)出現(xiàn)過(guò),從而可以以位置信息匹配曾經(jīng)出現(xiàn)過(guò)的模式.

另一方面,這樣做帶來(lái)的更大好處是可以避免產(chǎn)生內(nèi)容偏好,即不同用戶所發(fā)出的SparQL 查詢?cè)趦?nèi)容上是不同的,而內(nèi)容上的不同并不能稱之為一個(gè)有用的信息,因?yàn)橥煌脩羲l(fā)出的查詢可能形式是相同的,但是內(nèi)容完全不同,使用內(nèi)容表達(dá)會(huì)減少所能學(xué)習(xí)到的信息,而使用位置信息表達(dá)則可以很好地解決這一問(wèn)題.

(3)對(duì)三元組使用等價(jià)類劃分

以三元組“?sub rdf:person_name“kaily”@en”和“?sub rdf:person_name“jack”@en”為例,這兩個(gè)三元組均是為了查詢特定姓名的實(shí)體,其差異僅僅在于謂語(yǔ)不同.事實(shí)上,在大量觀察數(shù)據(jù)記錄后,可以發(fā)現(xiàn)這樣的情況占據(jù)大多數(shù),有時(shí)不同的SparQL 圖模式的差異僅僅在于這類三元組的差異,而字面量的變化對(duì)于模型或者算法的意義是不大的,這并不能成為有效的信息.因此,本文對(duì)三元組進(jìn)行等價(jià)類的劃分以解決該問(wèn)題,這里給出等價(jià)三元組的定義.

定義3(三元組等價(jià)類).對(duì)于三元組A與三元組B,若A與B的主語(yǔ)和謂語(yǔ)字段均相同,而A與B的賓語(yǔ)字段不同,且A與B的賓語(yǔ)字段均為字面量(以字符串表達(dá)的值),則稱A與B是等價(jià)的三元組.

一方面,等價(jià)的三元組可以查詢到所有這一類三元組的信息,從而減少模型或者算法所需要學(xué)習(xí)的冗余信息;另一方面,這樣的處理方式同樣可以降低訓(xùn)練時(shí)未出現(xiàn)的三元組所帶來(lái)的影響,因?yàn)樗鼈兺ǔR部梢员粴w納為某個(gè)等價(jià)類三元組.

3.1.3 特征轉(zhuǎn)化的具體流程

基于第3.1.1 節(jié)中的要求以及第3.1.2 節(jié)中特征轉(zhuǎn)化的設(shè)計(jì)思想,現(xiàn)給出特征轉(zhuǎn)化的具體流程.

對(duì)于一個(gè)SparQL 查詢的圖模式,將其視為一個(gè)序列,序列中的每個(gè)元素均使用One-Hot(即對(duì)于一個(gè)D維向量,使用第K維為1 且其他維均為0 的方式表示數(shù)字K)的形式進(jìn)行表示,因此需要定義該向量的長(zhǎng)度.

使用符號(hào)HIS_LEN表示預(yù)測(cè)時(shí)使用的歷史查詢的個(gè)數(shù),則HIS_LEN+1 個(gè)查詢?yōu)橐唤M數(shù)據(jù)(最后一個(gè)為要預(yù)測(cè)的查詢),并定義在一組SparQL 查詢的圖模式中最多可能出現(xiàn)的三元組的數(shù)量為MAX_TRIPLE,而除了三元組之外,還需要被轉(zhuǎn)化的符號(hào)和操作符總共有7 個(gè),分別為AND、UNION、OPTIONAL、{、}、起始符號(hào)Start和結(jié)束符號(hào)End,其中,Start 和End 分別用于表示一個(gè)序列的起始和結(jié)束,從而方便算法或者模型進(jìn)行預(yù)測(cè).

由此,序列中的每個(gè)元素所對(duì)應(yīng)的是一個(gè)(MAX_TRIPLE+7)維的One-Hot 形式的向量,以上7 個(gè)符號(hào)分別定義為0~6,三元組則按照這組查詢中的“第N個(gè)三元組”的形式以數(shù)字N+7 所對(duì)應(yīng)的One-Hot 向量進(jìn)行表示.算法1 為單個(gè)元素轉(zhuǎn)化的具體流程偽代碼.

算法1.特征轉(zhuǎn)化的流程.

輸入:queries查詢的數(shù)組;

輸出:vectors查詢數(shù)組對(duì)應(yīng)的向量數(shù)組.

算法使用querySet數(shù)組控制等價(jià)的三元組,第10 行~第16 行中,對(duì)于每個(gè)三元組,算法首先尋找是否已經(jīng)存在相同的或者等價(jià)的三元組,如果有則使用其索引,否則才創(chuàng)建新的索引;第6 行~第8 行中,對(duì)于一般符號(hào)的處理,則是直接使用查表法尋找對(duì)應(yīng)的索引,將One-Hot 向量的對(duì)應(yīng)位置置1.假設(shè)查詢序列的平均長(zhǎng)度為m,總共有n個(gè)查詢,算法對(duì)于每個(gè)查詢僅遍歷其序列一次,因此算法的時(shí)間復(fù)雜度為O(nm).

對(duì)于一個(gè)SparQL 圖模式對(duì)應(yīng)的序列中的所有元素,均采取上面的方式進(jìn)行轉(zhuǎn)化,最終可以得到一個(gè)長(zhǎng)度不定的One-Hot 向量序列,作為特征提取階段的最終產(chǎn)出.

3.2 查詢預(yù)測(cè)

查詢預(yù)測(cè)階段使用Seq2Seq 模型對(duì)第3.1 節(jié)中所提取到的特征向量進(jìn)行學(xué)習(xí),但直接將One-Hot 向量序列輸入進(jìn)模型的方法并不合理,因?yàn)镺ne-Hot 向量只能簡(jiǎn)單地表達(dá)類別信息,其維度較低,而低維語(yǔ)義空間所蘊(yùn)含的語(yǔ)義信息顯然不如高維空間豐富.如果能夠?qū)⑦@一低維度的One-Hot 向量映射為一個(gè)高維向量,那么特征向量可以借助高維的語(yǔ)義空間向Seq2Seq 模型提供更加豐富的語(yǔ)義信息.

具體地,定義新的維度為D,D通常要比MAX_TRIPLE大很多,如1 024,太大的數(shù)字可能會(huì)導(dǎo)致內(nèi)存等資源不足,因此需要權(quán)衡.在初始化Seq2Seq 模型時(shí),設(shè)置一個(gè)映射函數(shù),將所有MAX_TRIPLE+7 種向量映射為一個(gè)D維的高維向量.對(duì)于這些高維向量的設(shè)定,采取類似于編碼器隱藏層初始狀態(tài)的處理方式,即對(duì)其進(jìn)行隨機(jī)初始化,因?yàn)槿藶榈刂付ㄟ@樣的維度的內(nèi)容是近似于不可能的,因此這些向量設(shè)定為可訓(xùn)練的.在Seq2Seq 模型的訓(xùn)練過(guò)程中,不斷地根據(jù)反向傳播調(diào)整這些向量,這樣也可以使得那些表示三元組的向量更具位置上的語(yǔ)義性.

通過(guò)特征向量升維,可以大幅提升Seq2Seq 模型能夠從輸入中學(xué)習(xí)到的信息,從而提高模型的預(yù)測(cè)能力.

另一方面,在預(yù)測(cè)用戶的下一步可能發(fā)出的查詢時(shí),通常要使用到不止一個(gè)歷史查詢,而單個(gè)SparQL 圖模式轉(zhuǎn)化得到的序列長(zhǎng)度通常在30~50 左右,這意味著輸入的序列的長(zhǎng)度是較高的.另一方面,輸出時(shí)模型也不應(yīng)當(dāng)考慮到輸入序列的所有內(nèi)容,譬如在輸出某個(gè)三元組時(shí),模型在這一時(shí)刻應(yīng)當(dāng)關(guān)注于輸入序列中同樣是三元組的那些信息而不是操作符等符號(hào),因?yàn)檩斎胄蛄兄械娜M更能在輸出三元組時(shí)表達(dá)更多的信息.因此,本文為Seq2Seq 模型引入了第2.2 節(jié)中的注意力機(jī)制,強(qiáng)調(diào)不同的輸出時(shí)刻對(duì)輸入給予不同的權(quán)重.

此外,為了降低單個(gè)時(shí)間步預(yù)測(cè)出錯(cuò)的影響,利用整體序列的概率替代單個(gè)預(yù)測(cè)的概率.本文在此基礎(chǔ)之上再引入了第2.3 節(jié)中的集束搜索機(jī)制,對(duì)Seq2Seq 模型進(jìn)行優(yōu)化.

以簡(jiǎn)單SparQL 查詢的圖模式“{T1UNIONT2}”為樣例輸入(即只使用一個(gè)歷史查詢),假定輸出為“{T3UNIONT4}”,圖1 表示了該模型的工作流程,其中,〈start〉和〈eos〉分別表示起始符號(hào)Start 與結(jié)束符號(hào)End 對(duì)應(yīng)的One-Hot 向量在使用特征升維后對(duì)應(yīng)的向量.

Fig.1 Process of query prediction using Seq2Seq model圖1 使用Seq2Seq 模型進(jìn)行查詢預(yù)測(cè)的流程

編碼器接受不定長(zhǎng)的輸入,并維護(hù)編碼器狀態(tài).編碼器狀態(tài)即保存了輸入序列中的信息,當(dāng)輸入處理完畢之后,此時(shí)編碼器的狀態(tài)作為解碼器的初始狀態(tài),解碼器讀取狀態(tài)中的信息,并開(kāi)始產(chǎn)生預(yù)測(cè)序列.

現(xiàn)有的基于歷史查詢進(jìn)行預(yù)測(cè)的算法通常對(duì)歷史查詢的要求較高,如果歷史查詢并不連續(xù)相似,則無(wú)法匹配到相應(yīng)的圖模式,也無(wú)法利用查詢間的相似度進(jìn)行判斷.而實(shí)際上,真實(shí)的數(shù)據(jù)中有些用戶的查詢是呈現(xiàn)周期性波動(dòng)的.本文使用Seq2Seq 模型不僅利用到了查詢內(nèi)三元組間的信息,還利用到了不同查詢間的信息,即使歷史查詢并不相似,也可以捕獲到查詢間的聯(lián)系,從而提升了預(yù)測(cè)任務(wù)的準(zhǔn)確率;另一方面,模型可以判斷輸出的停止時(shí)間,因此可以輸出不定長(zhǎng)度的序列.

4 實(shí)驗(yàn)結(jié)果與分析

4.1 USEWOD數(shù)據(jù)集

本文使用了USEWOD2016 數(shù)據(jù)集,該數(shù)據(jù)集存儲(chǔ)了DBPedia 等知識(shí)庫(kù)的SparQL 查詢?nèi)罩?其中記錄了用戶在DBPedia 的SparQL 查詢接口中所發(fā)出的SparQL 查詢以及用戶ID 和發(fā)出查詢的時(shí)間.

圖2 為USEWOD2016 數(shù)據(jù)集中的內(nèi)容示例,圖中共3 項(xiàng)數(shù)據(jù)記錄,每一行的第1 個(gè)字段為用戶的ID,可以看到,這3 條查詢請(qǐng)求均來(lái)自于同一用戶;第2 個(gè)字段則是時(shí)間字段,表明用戶發(fā)出該查詢的具體時(shí)間;時(shí)間字段之后則是用戶通過(guò)Web 客戶端所發(fā)出的SparQL 查詢的HTTP 請(qǐng)求格式,記錄了用戶所發(fā)出的SparQL 查詢的相關(guān)信息.

Fig.2 Example of USEWOD2016 dataset圖2 USEWOD2016 數(shù)據(jù)集示例

4.2 評(píng)價(jià)指標(biāo)

為了更加全面地評(píng)價(jià)算法的預(yù)測(cè)效果,本文定義3 個(gè)指標(biāo)對(duì)預(yù)測(cè)結(jié)果進(jìn)行評(píng)價(jià).

(1)完全預(yù)測(cè)準(zhǔn)確率

該指標(biāo)作為最嚴(yán)格的評(píng)價(jià)指標(biāo),即當(dāng)且僅當(dāng)算法所做出的預(yù)測(cè)與用戶所發(fā)出的真實(shí)預(yù)測(cè)完全相同(序列長(zhǎng)度相同且內(nèi)容相同)時(shí),視為模型的預(yù)測(cè)是完全正確的,完全預(yù)測(cè)準(zhǔn)確率則等于完全預(yù)測(cè)正確的數(shù)據(jù)量與所有數(shù)據(jù)量的比例.

(2)完全緩存命中率

本文進(jìn)行查詢預(yù)測(cè)的目的是為了提前對(duì)數(shù)據(jù)進(jìn)行預(yù)加載,即做預(yù)緩存,那么數(shù)據(jù)的緩存命中率也是重要的評(píng)價(jià)指標(biāo).因此,本文定義:若用戶的查詢中的三元組均被算法預(yù)測(cè)的查詢所覆蓋,則視為完全命中緩存,完全緩存命中率則等于完全命中緩存的數(shù)據(jù)量與所有數(shù)據(jù)量的比例.

(3)平均緩存百分比

即使沒(méi)有完全命中緩存,對(duì)其中一部分?jǐn)?shù)據(jù)進(jìn)行預(yù)加載也能夠提高數(shù)據(jù)庫(kù)對(duì)于用戶所發(fā)出查詢請(qǐng)求的響應(yīng)速度,因此,該評(píng)價(jià)指標(biāo)計(jì)算用戶的查詢中的三元組被算法預(yù)測(cè)的查詢所覆蓋的比例,并在所有數(shù)據(jù)中計(jì)算該比例的平均值.

使用以上3 個(gè)指標(biāo),可以更全面地評(píng)價(jià)算法的預(yù)測(cè)效果.

4.3 實(shí)驗(yàn)設(shè)計(jì)

首先給定本文在實(shí)驗(yàn)中設(shè)定的一些參數(shù),MAX_TRIPLE值設(shè)定為32,因此One-Hot 向量的維度為39,特征向量升維后的維度D為1 024,循環(huán)神經(jīng)網(wǎng)絡(luò)的隱藏狀態(tài)層的維度為1 024,集束搜索的搜索個(gè)數(shù)K為5.除此之外,在一些方面設(shè)計(jì)了對(duì)比實(shí)驗(yàn),具體如下:

(1)歷史查詢個(gè)數(shù),觀察使用的歷史查詢個(gè)數(shù)對(duì)算法結(jié)果的影響;

(2)注意力機(jī)制,觀察注意力機(jī)制的是否使用對(duì)算法結(jié)果的影響;

(3)集束搜索,觀察集束搜索的是否使用對(duì)算法結(jié)果的影響.

4.4 實(shí)驗(yàn)結(jié)果與分析

(1)關(guān)于歷史查詢個(gè)數(shù)的實(shí)驗(yàn)

在關(guān)于歷史查詢個(gè)數(shù)的對(duì)比實(shí)驗(yàn)中,HIS_LEN參數(shù)分別被設(shè)定為1~5,訓(xùn)練數(shù)據(jù)設(shè)定為60 822 組,注意力機(jī)制被使用,不使用集束搜索方法,測(cè)試數(shù)據(jù)設(shè)定為3 000 組,圖3 表明了歷史查詢個(gè)數(shù)對(duì)實(shí)驗(yàn)結(jié)果的影響,其中,橫軸為HIS_LEN參數(shù),縱軸為3 個(gè)評(píng)價(jià)指標(biāo)的數(shù)值,實(shí)線、虛線、點(diǎn)狀線分別對(duì)應(yīng)第5.2 節(jié)中的評(píng)價(jià)指標(biāo)(1)~(3).

Fig.3 Impact of the number of historical queries on results圖3 歷史查詢個(gè)數(shù)對(duì)實(shí)驗(yàn)結(jié)果的影響

可以看到:3 個(gè)評(píng)價(jià)指標(biāo)的變化趨勢(shì)是基本相同的;并且指標(biāo)的評(píng)價(jià)標(biāo)準(zhǔn)越嚴(yán)格的情況下,其數(shù)值則越低.值得注意的是:當(dāng)歷史查詢個(gè)數(shù)的值為3 個(gè)的時(shí)候,準(zhǔn)確率(這里準(zhǔn)確率指代所有指標(biāo))達(dá)到極值;并且當(dāng)歷史查詢個(gè)數(shù)由2 變?yōu)? 時(shí),準(zhǔn)確率的提升小于由1 變?yōu)? 時(shí)的提升;而當(dāng)歷史查詢個(gè)數(shù)變得更多時(shí),準(zhǔn)確率開(kāi)始下降.這是因?yàn)殡m然循環(huán)神經(jīng)網(wǎng)絡(luò)主要是用以處理不定長(zhǎng)的序列數(shù)據(jù),但是其處理長(zhǎng)期依賴的能力也是有限的,較長(zhǎng)的輸入序列仍然會(huì)使得循環(huán)神經(jīng)網(wǎng)絡(luò)的記憶能力降低.當(dāng)歷史查詢個(gè)數(shù)為3 時(shí),Seq2Seq 模型所處理的輸入序列的總長(zhǎng)度可以達(dá)到150,這幾乎已經(jīng)快超出了循環(huán)神經(jīng)網(wǎng)絡(luò)的處理能力,因此當(dāng)歷史查詢個(gè)數(shù)再次增加,輸入序列的總長(zhǎng)度再次增加時(shí),Seq2Seq 模型陷入了欠擬合的狀態(tài),因此準(zhǔn)確率開(kāi)始下降.而當(dāng)歷史查詢個(gè)數(shù)較低時(shí),特別是當(dāng)歷史查詢個(gè)數(shù)只有一個(gè)時(shí),對(duì)于模型來(lái)說(shuō),此時(shí)其是無(wú)法從歷史查詢中判斷該段序列中所存在的模式與規(guī)律的,輸入序列所帶來(lái)的信息太少,因此準(zhǔn)確率要比歷史查詢個(gè)數(shù)較多時(shí)更低一些.因此在本文的實(shí)驗(yàn)中,歷史查詢個(gè)數(shù)為3 是最為合適的值.

(2)關(guān)于注意力機(jī)制的實(shí)驗(yàn)

在關(guān)于注意力機(jī)制的對(duì)比實(shí)驗(yàn)中,HIS_LEN參數(shù)分別被設(shè)定為1~5,訓(xùn)練數(shù)據(jù)設(shè)定為60 822 組,不使用集束搜索方法,測(cè)試數(shù)據(jù)設(shè)定為3 000 組,圖4 表明了注意力機(jī)制對(duì)實(shí)驗(yàn)結(jié)果的影響,其中,橫軸為HIS_LEN參數(shù),縱軸為3 個(gè)評(píng)價(jià)指標(biāo)的數(shù)值,圖4(a)~圖4(c)分別對(duì)應(yīng)第5.2 節(jié)中的評(píng)價(jià)指標(biāo)(1)~(3),實(shí)線為使用注意力機(jī)制,虛線為未使用注意力機(jī)制.

Fig.4 Impact of attention mechanism on results圖4 注意力機(jī)制對(duì)結(jié)果的影響

可以看到,3 組曲線的變化趨勢(shì)與對(duì)比基本是相同的.在不使用注意力機(jī)制的情況下,3 種評(píng)價(jià)指標(biāo)均有不同幅度的下降,表明注意力機(jī)制能夠提升模型的預(yù)測(cè)效果.此外,當(dāng)歷史查詢個(gè)數(shù)較低,尤其是只有一個(gè)的時(shí)候,注意力機(jī)制對(duì)于準(zhǔn)確率的提升并不大.這是因?yàn)榇藭r(shí)輸入中只有一個(gè)歷史查詢,輸入信息較少,注意力機(jī)制并不能發(fā)揮其效果,在不同時(shí)刻關(guān)注不同的輸入,因此對(duì)于模型沒(méi)有太多的提升;而在歷史查詢個(gè)數(shù)較多的時(shí)候,模型準(zhǔn)確率的下降也得到了一定的改善,因?yàn)樽⒁饬C(jī)制可以使得模型從較多的查詢序列中關(guān)注其中更有價(jià)值的信息,從而提升預(yù)測(cè)的效果.

(3)關(guān)于集束搜索的實(shí)驗(yàn)

在關(guān)于集束搜索的對(duì)比實(shí)驗(yàn)中,HIS_LEN參數(shù)分別被設(shè)定為1~5,訓(xùn)練數(shù)據(jù)設(shè)定為60 822 組,注意力機(jī)制被使用,測(cè)試數(shù)據(jù)設(shè)定為3 000 組.圖5 表明了歷史查詢個(gè)數(shù)對(duì)實(shí)驗(yàn)結(jié)果的影響,其中,橫軸為HIS_LEN參數(shù),縱軸為3 個(gè)評(píng)價(jià)指標(biāo)的數(shù)值,圖5(a)~圖5(c)分別對(duì)應(yīng)第5.2 節(jié)中的評(píng)價(jià)指標(biāo)(1)~(3),實(shí)線為使用集束搜索,虛線為未使用集束搜索.

相比注意力機(jī)制,集束搜索對(duì)于模型準(zhǔn)確率的提升更為明顯一些.當(dāng)歷史查詢個(gè)數(shù)增大到3 以上時(shí),準(zhǔn)確率的下降明顯變緩.因?yàn)榧词鼓硞€(gè)時(shí)刻的預(yù)測(cè)是出錯(cuò)的,正確的輸出也可能屬于概率較高的輸出之一而被集束搜索所保留,并在下一時(shí)刻通過(guò)整體的序列的概率再次利用到正確的輸出進(jìn)行判斷.這使得即使模型因?yàn)樾蛄虚L(zhǎng)度的提升降低了記憶能力,但仍然通過(guò)這種機(jī)制羅列出模型學(xué)習(xí)到的各種序列模式,并挑選出概率最高的序列進(jìn)行輸出.因此,集束搜索能夠較好地提升歷史查詢個(gè)數(shù)較多時(shí)候的效果.但歷史查詢個(gè)數(shù)較少時(shí),整體序列的特點(diǎn)并未被模型所過(guò)多地學(xué)習(xí),因此集束搜索機(jī)制也無(wú)法使得這種情況下的正確率變得較高.

Fig.5 Impact of beam search on results圖5 集束搜索對(duì)結(jié)果的影響

綜合以上3 組實(shí)驗(yàn)可以發(fā)現(xiàn):在已有的實(shí)驗(yàn)參數(shù)下,最合適的歷史查詢個(gè)數(shù)為3.注意力機(jī)制與集束搜索均被使用,本文測(cè)定了此設(shè)定下的指標(biāo),完全預(yù)測(cè)準(zhǔn)確率達(dá)到77.3%,完全緩存命中率達(dá)到80.1%,平均緩存百分比達(dá)到82.5%,總體達(dá)到了較為不錯(cuò)的水平.

5 結(jié) 論

本文從RDF 圖數(shù)據(jù)庫(kù)的查詢?nèi)罩局刑崛〕鯯parQL 查詢,并進(jìn)一步將SparQL 查詢提取為SparQL 圖模式,進(jìn)行可還原的特征轉(zhuǎn)化,得到了蘊(yùn)含豐富信息的特征向量.為了能夠從特征向量里充分挖掘序列之間的關(guān)聯(lián)性,本文使用了Seq2Seq 模型進(jìn)行SparQL 圖模式的預(yù)測(cè),Seq2Seq 模型可以處理不定長(zhǎng)的輸入與輸出.在此基礎(chǔ)上,利用注意力機(jī)制與集束搜索對(duì)模型進(jìn)行優(yōu)化,使得模型的完全預(yù)測(cè)準(zhǔn)確率達(dá)到77.3%,完全緩存命中率達(dá)到80.1%,平均緩存百分比達(dá)到82.5%.

本文所使用的方法一方面避免了收集數(shù)據(jù)源的信息,從而使得方法具有跨數(shù)據(jù)移植性,并且利用位置信息代替內(nèi)容信息之后,也使得該方法不會(huì)因?yàn)椴樵兊臄?shù)據(jù)不同而失效,因此具有良好的跨數(shù)據(jù)移植性;另一方面,使用Seq2Seq 模型充分挖掘了數(shù)據(jù)間的關(guān)聯(lián)性與規(guī)律,因此即使用戶的SparQL 查詢呈現(xiàn)周期性變化,也可以進(jìn)行預(yù)測(cè),此外也利用了循環(huán)神經(jīng)網(wǎng)絡(luò)的特性,較好地解決了SparQL 查詢長(zhǎng)度不確定的問(wèn)題.

本文現(xiàn)有的工作中,所進(jìn)行特征轉(zhuǎn)化的主要是SparQL 圖模式中的三元組以及UNION,AND 和OPTIONAL操作符.實(shí)際上,SparQL 查詢中還存在FILTER,LIMIT 等操作符,這些操作符是對(duì)數(shù)據(jù)的進(jìn)一步過(guò)濾,與UNION,AND 等操作符的語(yǔ)義信息不同,且這些操作符以及其攜帶的表達(dá)式信息在轉(zhuǎn)化時(shí)很難保持還原性.因此,未來(lái)的工作將重點(diǎn)研究如何對(duì)這些操作符進(jìn)行特征轉(zhuǎn)化;另一方面,由于將SparQL 圖模式視為了一個(gè)序列,那么序列中括號(hào)等操作符所表達(dá)的嵌套信息就必須被正確呈現(xiàn),這也是未來(lái)研究工作中的重點(diǎn).

此外,除了用于查詢圖數(shù)據(jù)庫(kù)的SparQL,查詢傳統(tǒng)關(guān)系數(shù)據(jù)庫(kù)的SQL 語(yǔ)言也具有與SparQL 類似的特征,如果同樣以位置信息記錄SQL 中的字段信息,同時(shí)將SQL 中的AND,HAVING 等操作符進(jìn)行特征轉(zhuǎn)化,那么本文提到的方法也可以適用于SQL 語(yǔ)言,這也是未來(lái)會(huì)進(jìn)行的工作.

猜你喜歡
三元組個(gè)數(shù)數(shù)據(jù)庫(kù)
怎樣數(shù)出小正方體的個(gè)數(shù)
特征標(biāo)三元組的本原誘導(dǎo)子
等腰三角形個(gè)數(shù)探索
怎樣數(shù)出小木塊的個(gè)數(shù)
關(guān)于余撓三元組的periodic-模
一個(gè)時(shí)態(tài)RDF存儲(chǔ)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
怎樣數(shù)出小正方體的個(gè)數(shù)
數(shù)據(jù)庫(kù)
數(shù)據(jù)庫(kù)
數(shù)據(jù)庫(kù)