專利名稱:基于數(shù)據(jù)網(wǎng)格的k近鄰查詢方法
技術(shù)領(lǐng)域:
本發(fā)明涉及數(shù)據(jù)庫與網(wǎng)絡(luò)領(lǐng)域,尤其涉及一種基于數(shù)據(jù)網(wǎng)格的k近鄰查詢方法。
背景技術(shù):
隨著網(wǎng)格和多媒體技術(shù)的不斷發(fā)展,特別是近幾年來,Internet上多媒體信息的爆炸性增長,基于內(nèi)容的海量多媒體信息檢索和索引[1]已成為一個(gè)熱門的研究領(lǐng)域。如何利用網(wǎng)格的并行計(jì)算能力來加快基于內(nèi)容的多媒體檢索是一個(gè)很重要的研究課題。
高維索引技術(shù)經(jīng)歷了20多年的研究[11],采用的技術(shù)主要分為三類第一類是基于數(shù)據(jù)和空間分片的樹形索引,如R-tree[12]及其變種[13,14]等。但是這些樹形索引方法只適合維數(shù)較低的情況,隨著維數(shù)的增加,其索引的性能往往劣于順序檢索,并且維數(shù)一旦增加,其查詢覆蓋區(qū)域增長很快,導(dǎo)致查詢速度的急劇下降,產(chǎn)生“維數(shù)災(zāi)難″;第二類是采用近似的方法來表示原始向量,如VA-file[15]和IQ-tree[16]等.該類方法的基本思想是通過對高維點(diǎn)數(shù)據(jù)進(jìn)行壓縮和近似存儲來加速順序查找速度。然而數(shù)據(jù)壓縮和量化帶來的信息丟失使得其首次過濾后的查詢精度并不令人滿意。同時(shí)盡管減少了磁盤的IO次數(shù),但由于需要對位串解碼同時(shí)計(jì)算對查詢點(diǎn)距離的上界和下界,導(dǎo)致很高的CPU運(yùn)算代價(jià);最后一類是通過將高維數(shù)據(jù)轉(zhuǎn)化為一維數(shù)據(jù)來進(jìn)行高維查詢,包括NB-Tree[17]和iDistance[18]等。NB-Tree通過計(jì)算高維空間的每個(gè)點(diǎn)與原點(diǎn)O(0,0...0)的尺度距離,將高維數(shù)據(jù)點(diǎn)映射到一維空間,然后將這些距離值用B+樹建立索引,從而將高維查詢轉(zhuǎn)變?yōu)橐痪S空間的范圍查詢。盡管它能夠快速得到結(jié)果,但是由于它不能有效的縮減查詢空間,特別是當(dāng)維數(shù)很高時(shí),范圍查詢效率急劇惡化。NB-Tree是一種基于單參考點(diǎn)的方法,iDistance是基于多參考點(diǎn)的方法,通過引入多參考點(diǎn)并結(jié)合聚類的方法有效地縮減了高維數(shù)據(jù)空間的搜索范圍,提高了查詢精度,然而其查詢效率很大程度上取決于參考點(diǎn)的選取并且依賴數(shù)據(jù)聚類和分片。同時(shí)由于iDistance在對高維數(shù)據(jù)映射到一維距離時(shí)不可避免存在信息丟失,導(dǎo)致查詢精度不是非常理想。最壞的情況下,查詢空間幾乎會覆蓋整個(gè)高維空間。
以上的高維索引都是針對單機(jī)環(huán)境而提出來的,H.V.Jagadish[19]等人提出在P2P環(huán)境下的多維索引方法——VBI-Tree,但該方法只是針對P2P環(huán)境而設(shè)計(jì),不太適合網(wǎng)格環(huán)境。很少有文獻(xiàn)關(guān)于網(wǎng)格環(huán)境下k-NN查詢的討論。
在數(shù)據(jù)網(wǎng)格研究領(lǐng)域,世界各國都進(jìn)行了廣泛深入的研究,并且已經(jīng)推出了一些實(shí)驗(yàn)系統(tǒng),其中最著名的是歐洲數(shù)據(jù)網(wǎng)格項(xiàng)目[6,7]、美國的國際虛擬數(shù)據(jù)網(wǎng)格實(shí)驗(yàn)室IVDGL項(xiàng)目等。最著名的數(shù)據(jù)網(wǎng)格系統(tǒng)工具是Globus中的數(shù)據(jù)網(wǎng)格支撐模塊和SDSC的SRB系統(tǒng)。到目前為止,數(shù)據(jù)網(wǎng)格環(huán)境下有關(guān)數(shù)據(jù)存儲、訪問和傳輸?shù)拇蠖鄶?shù)工作都是針對分布式文件系統(tǒng)的,而數(shù)據(jù)庫在數(shù)據(jù)網(wǎng)格中扮演著十分重要的角色,數(shù)據(jù)庫管理系統(tǒng)可以為數(shù)據(jù)網(wǎng)格提供許多重要的工具[8],比如管理網(wǎng)格中的元數(shù)據(jù)、支持應(yīng)用程序數(shù)據(jù)的存取和分析。
雖然目前對網(wǎng)格環(huán)境下的傳統(tǒng)數(shù)據(jù)庫查詢進(jìn)行了一定的研究[9,10],但是較少有文獻(xiàn)研究基于數(shù)據(jù)網(wǎng)格的高維k近鄰查詢。在數(shù)據(jù)網(wǎng)格環(huán)境下,由于各結(jié)點(diǎn)高度自治,并且是異構(gòu)的;所處理的數(shù)據(jù)一般都是海量;各結(jié)點(diǎn)之間的連接帶寬不同,其傳輸速度可能會有很大的差異;網(wǎng)絡(luò)環(huán)境不穩(wěn)定,經(jīng)常會出現(xiàn)結(jié)點(diǎn)之間連接不上以及連接中斷的情況,這些都為基于數(shù)據(jù)網(wǎng)格環(huán)境的k-NN查詢操作的研究提出了新的要求。
1 莊越挺,潘云鶴,吳飛編著.《網(wǎng)上多媒體信息分析與檢索》.清華大學(xué)出版社.2002年9月2 Fei Wu,Hong Zhang,Yueting Zhuang.Learning Semantic Correlations for Cross Media Retrieval.In Proc.of ICIP 20063 Fei Wu,Yi Yang,Yueting Zhuang and Yunhe Pan.Understanding Multimedia Document Semantics forCross-Media Retrieval.In Proc.of PCM 2005,pp.993-10044 I.Foster,C Kesselman.The GridBlueprint for a New Computing Infrastructure San Francisco,CAMorganKaufmann,19985 A Chervenak,I Foster,C Kesselman,et al.The data gridTowards an architecture for the distributedmanagement and analysis of large scientific datasets.Journal of Network and Computer Applications,2001,23187-2006 Wolfgang Hoschek,Javier Jaen Martinez,Asad Samar,et al.Data management in an international data gridprojectl In Proc.of the 1st IEEE/ACM Int’l Workshop on Grid Computing.BerlinSpringer Verlag,2000,17-207 B Segal.Grid ComputingThe European data grid project.The 2000 IEEE Nuclear Science Symposium andMedical Imaging Conference,Lyon,F(xiàn)rance.20008 Heinz Stockinger.Distributed database management systems and the data grid.In Proc.The 18th IEEE Sympon Mass Storage Systems and the 9th NASA Goddard Conference on Mass Storage Systems and TechnologiesSan Diego,CA,20019 J.Smith,A.Gounaris,P Watson,et al.Distributed query processing on the grid In Proc of the 3rd Int’lWorkshop on Grid Computing BerlinSpringer-Verlag.pp.279-290,200210 楊東華,李建中,張文平.基于數(shù)據(jù)網(wǎng)格環(huán)境的連接操作算法.計(jì)算機(jī)研究與發(fā)展,Vol.41,No.10,200411 Christian Bhm,Stefan Berchtold,Daniel KeimSearching in High-dimensional SpacesIndex Structures forImproving the Performance of Multimedia Databases.ACM Computing Surveys 33(3),2001.
12 A.Guttman.R-treeA dynamic index structure for spatial searching.In Proc.of the ACM SIGMOD Int.Conf.on Management of Data. 1984. pp.47-54.
13 N.Beckmann.H.-P.Kriegel,R.Schneider,B.Seeger.The R*-treeAn Efficient and Robust Access Methodfor Points and Rectangles.In Proc.ACM SIGMOD Int.Conf.on Management of Data.1990,pp.322-331.
14 S.Berchtold,D.A.Keim and H.P.Kriegel.The X-treeAn index structure for high-dimensional data.In Proc.22th Int.Conf.on Very Large Data Bases,1996,pp.28-37.
15 R.Weber.H.Schek and S.Blott.A quantitative analysis and performance study for similarity-search methodsin high-dimensional spaces.In Proc.24th Int.Conf.on Very Large Data Bases,1998,pp.194-205.
16 S.Berchtold,C.Bohm,H.P.Kriegel,J.Sander and H.V.Jagadish.Independent quantizationAn indexcompression technique for high-dimensional data spaces.In Proc.16th Int.Conf.on Data Engineering,2000,pp.577-588.
17 M J.Fonseca and J A.Jorge.NB-TreeAn Indexing Structure for Content-Based Retrieval in Large Databases.In Proc.of the 8th International Conference on Database Systems for Advanced Applications,Kyoto,Japan,Mar 2003,pp.267-274.
18 H.V.Jagadish,B.C.Ooi,K.L.Tan,C.Yu,R.ZhangiDistanceAn Adaptive B+-tree Based Indexing Methodfor Nearest Neighbor Search.ACM Transactions on Data Base Systems,30,2,364-397,June 2005.
19 H.V.Jagadish,B.C.Ooi,Q.H.Vu,R.Zhang,A.Y.ZhouVBI-TreeA Peer-to-Peer Framework for SupportingMulti-Dimensional Indexing Schemes.In Proc.22nd IEEE International Conference on Data Engineering,2004.
發(fā)明內(nèi)容
本發(fā)明的目的是為了k近鄰查詢的性能,加快基于內(nèi)容的海量多媒體檢索,提供一種基于數(shù)據(jù)網(wǎng)格的k近鄰查詢方法。
本發(fā)明解決技術(shù)問題所采用的技術(shù)方案是1)對查詢核心算法進(jìn)行了模塊化的封裝,在二進(jìn)制代碼級上實(shí)現(xiàn)代碼的動態(tài)重用,通過指定統(tǒng)一的接口,以接口的形式提供協(xié)議構(gòu)件所實(shí)現(xiàn)的服務(wù);2)在數(shù)據(jù)結(jié)點(diǎn)層面對向量數(shù)據(jù)進(jìn)行基于始點(diǎn)距離的數(shù)據(jù)分布,使得每個(gè)數(shù)據(jù)結(jié)點(diǎn)并行地執(zhí)行向量集縮減;3)在數(shù)據(jù)結(jié)點(diǎn)層面對向量集進(jìn)行基于雙重距離尺度的縮減,得到候選向量集;4)采用“打包”方式將若干個(gè)候選向量合并作為一個(gè)消息進(jìn)行傳輸;5)在基于始點(diǎn)距離的數(shù)據(jù)分布、基于雙重距離尺度索引的向量集縮減和“打包”傳輸技術(shù)基礎(chǔ)上,完成網(wǎng)格環(huán)境下的k近鄰查詢,返回查詢結(jié)果。
基于始點(diǎn)距離的數(shù)據(jù)分布的步驟如下輸入Ω高維向量集,α個(gè)數(shù)據(jù)結(jié)點(diǎn);輸出Ω(1 to α)在不同數(shù)據(jù)結(jié)點(diǎn)存放的向量;(1)計(jì)算每個(gè)向量的始點(diǎn)距離并且排序;(2)根據(jù)每個(gè)分片中向量總數(shù)一致的原則將始點(diǎn)距離范圍分成α分片;
(3)對于每個(gè)分片Ω(j)來說(4)分別從每個(gè)始點(diǎn)距離的子范圍中隨機(jī)選擇n/α2個(gè)向量,得到Ω(j);(5)將Ω(j)部署在第j個(gè)數(shù)據(jù)結(jié)點(diǎn);在數(shù)據(jù)結(jié)點(diǎn)層面對向量集進(jìn)行基于雙重距離尺度的縮減步驟如下輸入向量集Ω及查詢超球Θ(Vq,r)輸出被縮減后的候選向量集Ω′(1 to t)(1)對于每個(gè)類超球Θ(Oj,CRj)且j∈[1,T];(2)對第j個(gè)子索引進(jìn)行中心點(diǎn)為Vq半徑為r的范圍查詢,返回結(jié)果Ω′(j);(3)將得到的Ω′(j)輸出到輸出緩沖區(qū)OB1;(4)如果Θ(Oj,CRj)相交于Θ(Vq,r)則(5)繼續(xù)循環(huán);(5)否則如果Θ(Oj,CRj)包含Θ(Vq,r)則(6)結(jié)束循環(huán);采用“打包”方式將若干個(gè)向量合并作為一個(gè)消息進(jìn)行傳輸?shù)牟襟E如下輸入緩存中的高維向量,包的大小P;輸出待發(fā)送的向量;(1)首先將候選向量緩存到內(nèi)存;(2)如果緩存中的向量個(gè)數(shù)達(dá)到“包”大小P,就將該“包”發(fā)送至目標(biāo)結(jié)點(diǎn);(3)否則繼續(xù)等待直到緩存中候選向量個(gè)數(shù)達(dá)到“包”大小。
在基于雙重距離尺度索引的向量集“過濾”和“打包”傳輸技術(shù)基礎(chǔ)上,進(jìn)行網(wǎng)格環(huán)境下的k近鄰查詢步驟如下輸入查詢向量Vq,k輸出查詢結(jié)果Ω″(1)初始化;(2)發(fā)送查詢請求到數(shù)據(jù)結(jié)點(diǎn)Nd;(3)當(dāng)從執(zhí)行結(jié)點(diǎn)返回的結(jié)果向量個(gè)數(shù)‖Ω″‖小于k,開始循環(huán)(4)逐步增加半徑r;(5)利用資源管理機(jī)制在網(wǎng)格中找到若干個(gè)性能較好的結(jié)點(diǎn)作為求精操作的執(zhí)行結(jié)點(diǎn);(6)在數(shù)據(jù)結(jié)點(diǎn)完成向量過濾,得到候選向量Ω′;
(7)把Ω′中的候選向量按照“打包”的方式傳輸?shù)綀?zhí)行結(jié)點(diǎn);(8)在執(zhí)行結(jié)點(diǎn)完成求精縮減得到結(jié)果向量Ω″;(9)將Ω″中的結(jié)果向量以“打包”的方式發(fā)送到查詢結(jié)點(diǎn)Nq;(10)當(dāng)返回結(jié)果向量Ω″個(gè)數(shù)大于k;(11)從結(jié)果向量集Ω″中求得與Vq最遠(yuǎn)的‖Ω″‖-k-1個(gè)向量并且將它們從Ω″中刪除,結(jié)束循環(huán);(12)否則繼續(xù)循環(huán)。
本發(fā)明的有益效果能顯著提高k近鄰查詢的效率,同時(shí)具有很好的代碼可移植性、可擴(kuò)展性及魯棒性,能夠根據(jù)實(shí)際應(yīng)用的需要自適應(yīng)地選擇查詢執(zhí)行結(jié)點(diǎn),從而大大提高系統(tǒng)的性能。
圖1是本發(fā)明的總體體系結(jié)構(gòu)示意圖;圖2是本發(fā)明的總體流程框圖;圖3是類超球的“切分”例子示意圖;圖4是向量縮減例子示意圖;圖5是雙重距離尺度索引的結(jié)構(gòu)示意圖;圖6是k-NN查詢執(zhí)行流程示意圖;圖7是基于內(nèi)容的圖像檢索例子示意圖;圖8是基于形狀的書法字檢索例子示意圖。
具體實(shí)施方法本發(fā)明的基于數(shù)據(jù)網(wǎng)格環(huán)境的高維k-NN查詢的具體實(shí)施的技術(shù)方案及步驟如下(一)基于始點(diǎn)距離的數(shù)據(jù)分布策略為了最大程度提高在數(shù)據(jù)結(jié)點(diǎn)層面上向量縮減處理并行性,本發(fā)明提出對向量數(shù)據(jù)進(jìn)行基于始點(diǎn)距離的數(shù)據(jù)分布,使得對于每次查詢,每個(gè)數(shù)據(jù)結(jié)點(diǎn)都能夠并行地執(zhí)行向量縮減,從而顯著提高查詢執(zhí)行的效率。
該數(shù)據(jù)分布的步驟如下輸入Ω向量集,α個(gè)數(shù)據(jù)結(jié)點(diǎn);輸出Ω(1 to α)在不同數(shù)據(jù)結(jié)點(diǎn)存放的向量;(1)計(jì)算每個(gè)向量的始點(diǎn)距離并且排序;(2)根據(jù)每個(gè)分片中向量總數(shù)一致的原則將始點(diǎn)距離范圍分成α分片;(3)對于每個(gè)分片Ω(j)來說
(4)分別從每個(gè)始點(diǎn)距離的子范圍中隨機(jī)選擇n/α2個(gè)向量,得到Ω(j);(5)將Ω(j)部署在第j個(gè)數(shù)據(jù)結(jié)點(diǎn);(二)基于雙重距離尺度的向量縮減定義1(始點(diǎn)距離).給定一向量Vi(x1,x2,...,xd),其始點(diǎn)距離為它到原點(diǎn)向量Vo(0,0,...,0)的距離,表示為SD(Vi)=d(Vi,Vo)。
定義2(質(zhì)心距離).給定一向量Vi,它的質(zhì)心距離為到其對應(yīng)類Cj的質(zhì)心Oj的距離,表示為CD(Vi)=d(Vi,Oj),其中Vi∈Ci且j∈[1,T]。
本發(fā)明提出基于加權(quán)質(zhì)心距離的方法,該方法通過對類超球作基于始點(diǎn)距離的“切分”來得到索引鍵值。如圖3所示,假設(shè)查詢超球Θ(Vq,r)與類超球Θ(Oj,CRj)相交,首先將該類超球按照其中點(diǎn)的始點(diǎn)距離大小平均“切分”為λ“片”。對于該類超球中第l個(gè)“分片”中的向量來說,滿足(Vi)∈[SD(Oi)-CRj+l×2CRjλ]]>SD(O)-CRj+(l+1)×2CRjλ],]]>其中l(wèi)∈[1,λ]且滿足 則每個(gè)向量對應(yīng)的索引鍵值表示為key(Vi)=l+CD(Vi)/MCD(1)其中由于CD(Vi)可能大于1,需要通過對其分別除以MCD進(jìn)行歸一化,使得其值小于1。對于真實(shí)數(shù)據(jù)來說,MCD取。而對于均勻分布的隨機(jī)數(shù)據(jù)來說,MCD取 。這樣使得每個(gè)點(diǎn)對應(yīng)的加權(quán)質(zhì)心距離的值域不重疊。最后對n個(gè)鍵值建立基于分片的B+樹索引,如圖5所示。
雙重距離尺度索引結(jié)構(gòu)如圖5所示,它由一張哈希表和T個(gè)分片索引構(gòu)成,其中T為聚類個(gè)數(shù)。通過聚類后,每個(gè)類超球中的向量分別采用一棵B+樹建立索引,作為雙重距離尺度的一個(gè)分片索引。T個(gè)類需要建立T棵B+樹,同時(shí)需要生成一張哈希表來根據(jù)向量所在類的編號快速地定位到對應(yīng)的分片索引。一般采用最簡單的一一對應(yīng)的方式來完成哈希映射,即其分片索引的編號由某一向量所在類的編號確定。
雙重距離尺度索引的創(chuàng)建分兩步首先對n個(gè)向量進(jìn)行K平均聚類得到T個(gè)類,然后通過T次循環(huán),用newDMFile()生成子B+樹索引頭文件,接著對于每個(gè)類中的向量,分別計(jì)算其始點(diǎn)和質(zhì)心距離,并且通過轉(zhuǎn)換得到對應(yīng)的鍵值,最后將鍵值插入對應(yīng)的子B+樹索引。盡管得到的這T個(gè)分片索引在物理上是離散存儲,但通過哈希表的統(tǒng)一映射使得其在邏輯上是完整的。該索引存儲于網(wǎng)格中的數(shù)據(jù)結(jié)點(diǎn)。
雙重距離尺度索引的創(chuàng)建步驟如下輸入高維數(shù)據(jù)庫Ω;輸出雙重距離索引bt(1 to T);(1)對n個(gè)向量進(jìn)行K平均聚類得到T個(gè)類;(2)對于每個(gè)類Cj且j∈[1,T](3)用newDMFile()生成子B+樹索引頭文件;(4)對于該類中的向量,分別計(jì)算其始點(diǎn)(SD)和質(zhì)心(CD)距離;(5)按照公式 求得對應(yīng)的鍵值,最后將鍵值插入對應(yīng)的子B+樹索引bt(j);由于向量集存儲在數(shù)據(jù)結(jié)點(diǎn),對于任意一個(gè)查詢,不需要也沒有必要將該向量集中的所有向量都傳輸?shù)綀?zhí)行結(jié)點(diǎn)進(jìn)行距離運(yùn)算。本發(fā)明提出在數(shù)據(jù)結(jié)點(diǎn)通過雙重距離尺度索引快速地對向量集進(jìn)行縮減,從而有效地減少網(wǎng)絡(luò)傳輸所耗費(fèi)的代價(jià),減少通訊開銷。向量縮減過程如圖4所示,以下是該算法輸入向量集Ω及查詢超球Θ(Vq,r)輸出被縮減后的候選向量集Ω′(1 to t)(1)對于每個(gè)類超球Θ(Oj,CRj)且j∈[1,T];(2)對第j個(gè)分片索引進(jìn)行以Vq為中心r力半徑的范圍查詢,得到候選向量Ω′(j);(3)將得到的Ω′(j)輸出到輸出緩沖區(qū)OB1;(4)如果Θ(Oj,CRj)與Θ(Vq,r)相交,則(5)繼續(xù)循環(huán);(6)否則,結(jié)束循環(huán);(三)“打包”傳輸當(dāng)從一個(gè)結(jié)點(diǎn)往另一個(gè)結(jié)點(diǎn)傳輸數(shù)據(jù)時(shí),可以采取向量“打包”(vectorpackage)的方式進(jìn)行數(shù)據(jù)傳輸.該傳輸方式的主要思想是把需要傳輸?shù)南蛄俊按颉背扇舾伞鞍保總€(gè)“包”包含若干個(gè)向量,每次把它當(dāng)成一個(gè)消息進(jìn)行傳輸,而不是把一個(gè)向量當(dāng)成一個(gè)消息進(jìn)行傳輸。
(i)采取向量“打包”的方式進(jìn)行數(shù)據(jù)傳輸,既可以減少每一次數(shù)據(jù)傳輸所要消耗的啟動傳輸?shù)拇鷥r(jià),又可以減少傳輸每個(gè)消息的頭文件所耗費(fèi)的代價(jià)。
(ii)向量“打包”傳輸方式具有很好的魯棒性。如果傳輸失敗,能夠恢復(fù)被中斷的傳輸,即能夠在最后一個(gè)被傳輸?shù)摹鞍钡拈_始位置恢復(fù)傳輸。
(iii)如果結(jié)點(diǎn)間每次傳輸一個(gè)向量,那么網(wǎng)絡(luò)上任意的延遲都會使在接收數(shù)據(jù)的結(jié)點(diǎn)上的操作停止執(zhí)行,采用向量“打包”的傳輸方式,執(zhí)行結(jié)點(diǎn)可以把接收到的“包”中的向量進(jìn)行緩存,當(dāng)下一個(gè)“包”出現(xiàn)網(wǎng)絡(luò)延遲時(shí),就可以對緩存中的向量進(jìn)行操作。
(四)基于數(shù)據(jù)網(wǎng)格的k近鄰查詢算法本發(fā)明針對數(shù)據(jù)網(wǎng)格中存儲海量高維向量數(shù)據(jù)的各結(jié)點(diǎn)之間網(wǎng)絡(luò)帶寬的不同,提出一種基于數(shù)據(jù)網(wǎng)格環(huán)境的高效k近鄰(k-NN)查詢方法。附圖1表示該查詢系統(tǒng)的體系結(jié)構(gòu)。附圖2為查詢流程。由于k-NN查詢是通過嵌套調(diào)用范圍查詢來完成的。當(dāng)用戶向數(shù)據(jù)結(jié)點(diǎn)發(fā)送一個(gè)查詢請求,首先利用基于雙重距離尺度索引對原始向量集進(jìn)行縮減,以減少網(wǎng)絡(luò)傳輸?shù)拇鷥r(jià),再將縮減后的候選向量通過向量“打包”傳輸?shù)姆绞桨l(fā)送到若干個(gè)執(zhí)行結(jié)點(diǎn),在執(zhí)行結(jié)點(diǎn)并行地完成候選向量的求精(距離)運(yùn)算。為了充分利用網(wǎng)格中的資源,突出數(shù)據(jù)網(wǎng)格資源共享的特點(diǎn),該算法把網(wǎng)格中性能較好的若干個(gè)結(jié)點(diǎn)作為高維查詢的執(zhí)行結(jié)點(diǎn)。最后將得到的結(jié)果向量發(fā)送回查詢結(jié)點(diǎn)。這樣完成了一次高維向量的范圍查詢。當(dāng)返回的候選向量個(gè)數(shù)小于k時(shí),再通過增大查詢半徑r的方式再次執(zhí)行基于數(shù)據(jù)網(wǎng)格的范圍查詢,直到條件滿足。
整個(gè)k-NN查詢的完整算法分為3個(gè)階段,如圖6所示;當(dāng)?shù)玫降暮蜻x向量個(gè)數(shù)小于k時(shí)(第3行),再重新增大查詢半徑(第4行),由于通過上述方法得到的候選向量個(gè)數(shù)不一定正好為k個(gè),可能會大于k(第10行)。當(dāng)遇到該情況時(shí),需要進(jìn)行(‖Ω″‖-k-1)次循環(huán)(第11行),依次找到在該結(jié)果向量集Ω″中距離查詢點(diǎn)Vq最遠(yuǎn)的(‖Ω″‖-k-1)個(gè)向量(第12行)并且將它們刪除(第13行)。這樣恰好得到k個(gè)最近鄰向量。以下為查詢步驟輸入查詢向量Vq,k輸出查詢結(jié)果Ω″(1)初始化;(2)發(fā)送查詢請求到數(shù)據(jù)結(jié)點(diǎn)Nd;(3)當(dāng)從執(zhí)行結(jié)點(diǎn)返回的結(jié)果向量Ω″個(gè)數(shù)小于k,開始循環(huán)(4)增加半徑值r;(5)利用資源管理機(jī)制在網(wǎng)格中找到h個(gè)性能較好的結(jié)點(diǎn)作為求精操作的執(zhí)行結(jié)點(diǎn);(6)在數(shù)據(jù)結(jié)點(diǎn)對Ω進(jìn)行縮減,返回候選向量集Ω′;(7)把Ω′中的候選向量按照向量“打包”的方式傳輸?shù)絟個(gè)執(zhí)行結(jié)點(diǎn);(8)在執(zhí)行結(jié)點(diǎn)對Ω′進(jìn)行求精,返回結(jié)果向量Ω″;(9)將Ω″中的結(jié)果向量按照“打包”的方式發(fā)送到查詢結(jié)點(diǎn)Nq;(10)當(dāng)返回結(jié)果向量Ω″個(gè)數(shù)大于k則(11)從結(jié)果向量集Ω″中刪除距Vq最遠(yuǎn)的‖Ω″‖-k-1個(gè)向量,結(jié)束循環(huán);(12)否則繼續(xù)循環(huán);需要說明的是,第6和第7步并行執(zhí)行。因?yàn)橥ㄟ^向量縮減后的候選向量在發(fā)送至執(zhí)行結(jié)點(diǎn)之前是先發(fā)送到數(shù)據(jù)結(jié)點(diǎn)的緩存中,當(dāng)緩存中的向量個(gè)數(shù)達(dá)到傳輸“包”大小時(shí),再將它們“打包”發(fā)送到對應(yīng)的執(zhí)行結(jié)點(diǎn)。同理,第8和第9步也是并行執(zhí)行,也需要將求精后的結(jié)果向量先發(fā)送至執(zhí)行結(jié)點(diǎn)的緩存中,再將它們“打包”發(fā)送到查詢結(jié)點(diǎn)Nq。
該查詢可應(yīng)用于的基于內(nèi)容的海量圖像檢索中,如圖7所示,將當(dāng)用戶從查詢結(jié)點(diǎn)提交一張例子圖片,首先提取特征并將特征“打包”發(fā)送到數(shù)據(jù)結(jié)點(diǎn),在數(shù)據(jù)結(jié)點(diǎn)通過向量集縮減從圖片庫中檢索出與該粒子圖片相似的候選圖片,然后將這些圖片“打包”發(fā)送至執(zhí)行結(jié)點(diǎn)進(jìn)行距離計(jì)算,得到結(jié)果圖片集,并將其發(fā)送到查詢結(jié)點(diǎn)顯示。
類似地,該技術(shù)也可以應(yīng)用基于形狀的海量書法字檢索,如圖8所示,當(dāng)用戶從查詢結(jié)點(diǎn)提交一個(gè)“題”字到數(shù)據(jù)結(jié)點(diǎn),通過在數(shù)據(jù)結(jié)點(diǎn)的書法字集“過濾”、將候選字“打包”發(fā)送至執(zhí)行結(jié)點(diǎn)進(jìn)行距離計(jì)算,最終得到結(jié)果書法字并將其發(fā)送到查詢結(jié)點(diǎn)顯示。
權(quán)利要求
1.一種基于數(shù)據(jù)網(wǎng)格的高維k近鄰查詢方法,其特征在于1)對查詢核心算法進(jìn)行了模塊化的封裝,在二進(jìn)制代碼級上實(shí)現(xiàn)代碼的動態(tài)重用,通過指定統(tǒng)一的接口,以接口的形式提供協(xié)議構(gòu)件所實(shí)現(xiàn)的服務(wù);2)在數(shù)據(jù)結(jié)點(diǎn)層面對向量數(shù)據(jù)進(jìn)行基于始點(diǎn)距離的數(shù)據(jù)分布,使得每個(gè)數(shù)據(jù)結(jié)點(diǎn)并行地執(zhí)行向量集縮減;3)在數(shù)據(jù)結(jié)點(diǎn)層面對向量集進(jìn)行基于雙重距離尺度的縮減,得到候選向量集;4)采用“打包”方式將若干個(gè)候選向量合并作為一個(gè)消息進(jìn)行傳輸;5)在基于始點(diǎn)距離的數(shù)據(jù)分布、基于雙重距離尺度索引的向量集縮減和“打包”傳輸技術(shù)基礎(chǔ)上,完成網(wǎng)格環(huán)境下的k近鄰查詢,返回查詢結(jié)果。
2.根據(jù)權(quán)利要求1所述的一種基于數(shù)據(jù)網(wǎng)格的k近鄰查詢方法,其特征在于所述的基于始點(diǎn)距離的數(shù)據(jù)分布的步驟如下輸入Ω高維向量集,α個(gè)數(shù)據(jù)結(jié)點(diǎn);輸出Ω(1 to α)在不同數(shù)據(jù)結(jié)點(diǎn)存放的向量;(1)計(jì)算每個(gè)向量的始點(diǎn)距離并且排序;(2)根據(jù)每個(gè)分片中向量總數(shù)一致的原則將始點(diǎn)距離范圍分成α分片;(3)對于每個(gè)分片Ω(j)來說(4)分別從每個(gè)始點(diǎn)距離的子范圍中隨機(jī)選擇n/α2個(gè)向量,得到Ω(j);(5)將Ω(j)部署在第j個(gè)數(shù)據(jù)結(jié)點(diǎn);
3.根據(jù)權(quán)利要求1所述的一種基于數(shù)據(jù)網(wǎng)格的k近鄰查詢方法,其特征在于所述的在數(shù)據(jù)結(jié)點(diǎn)層面對向量集進(jìn)行基于雙重距離尺度的縮減步驟如下輸入向量集Ω及查詢超球Θ(Vq,r)輸出被縮減后的候選向量集Ω′(1 to t)(1)對于每個(gè)類超球Θ(Oj,CRj)且j∈[1,T];(2)對第j個(gè)子索引進(jìn)行中心點(diǎn)為Vq半徑為r的范圍查詢,返回結(jié)果Ω′(j);(3)將得到的Ω′(j)輸出到輸出緩沖區(qū)OB1;(4)如果Θ(Oj,CRj)相交于Θ(Vq,r)則(5)繼續(xù)循環(huán);(5)否則如果Θ(Oj,CRj)包含Θ(Vq,r)則(6)結(jié)束循環(huán);
4.根據(jù)權(quán)利要求1所述的一種基于數(shù)據(jù)網(wǎng)格的k近鄰查詢方法,其特征在于,所述采用“打包”方式將若干個(gè)向量合并作為一個(gè)消息進(jìn)行傳輸?shù)牟襟E如下輸入緩存中的高維向量,包的大小P;輸出待發(fā)送的向量;(1)首先將候選向量緩存到內(nèi)存;(2)如果緩存中的向量個(gè)數(shù)達(dá)到“包”大小P,就將該“包”發(fā)送至目標(biāo)結(jié)點(diǎn);(3)否則繼續(xù)等待直到緩存中候選向量個(gè)數(shù)達(dá)到“包”大小。
5.根據(jù)權(quán)利要求1所述的一種基于數(shù)據(jù)網(wǎng)格的k近鄰查詢方法,其特征在于在基于雙重距離尺度索引的向量集“過濾”和“打包”傳輸技術(shù)基礎(chǔ)上,進(jìn)行網(wǎng)格環(huán)境下的k近鄰查詢步驟如下輸入查詢向量Vq,k輸出查詢結(jié)果Ω″(1)初始化;(2)發(fā)送查詢請求到數(shù)據(jù)結(jié)點(diǎn)Nd;(3)當(dāng)從執(zhí)行結(jié)點(diǎn)返回的結(jié)果向量個(gè)數(shù)‖Ω″‖小于k,開始循環(huán)(4)逐步增加半徑r;(5)利用資源管理機(jī)制在網(wǎng)格中找到若干個(gè)性能較好的結(jié)點(diǎn)作為求精操作的執(zhí)行結(jié)點(diǎn);(6)在數(shù)據(jù)結(jié)點(diǎn)完成向量過濾,得到候選向量Ω″;(7)把Ω′中的候選向量按照“打包”的方式傳輸?shù)綀?zhí)行結(jié)點(diǎn);(8)在執(zhí)行結(jié)點(diǎn)完成求精縮減得到結(jié)果向量Ω″;(9)將Ω″中的結(jié)果向量以“打包”的方式發(fā)送到查詢結(jié)點(diǎn)Nq;(10)當(dāng)返回結(jié)果向量Ω″個(gè)數(shù)大于k;(11)從結(jié)果向量集Ω″中求得與Vq最遠(yuǎn)的‖Ω″‖-k-1個(gè)向量并且將它們從Ω″中刪除,結(jié)束循環(huán);(12)否則繼續(xù)循環(huán)。
全文摘要
本發(fā)明公開了一種基于數(shù)據(jù)網(wǎng)格的k近鄰高維查詢方法。該方法通過向量縮減、打包傳輸及流水線并行處理的技術(shù)大大縮短了k近鄰查詢的響應(yīng)時(shí)間。在實(shí)施本方法的過程中,處理距離計(jì)算的執(zhí)行結(jié)點(diǎn)是根據(jù)網(wǎng)格中結(jié)點(diǎn)的狀況動態(tài)設(shè)定的,因此該方法具有良好的可擴(kuò)展性,特別適合海量高維數(shù)據(jù)的k近鄰查詢。同時(shí)由于基于內(nèi)容的檢索本質(zhì)就是高維檢索,因此該發(fā)明可移植到各種媒質(zhì)的基于內(nèi)容的檢索中,具有很好的可移植性,能有效地應(yīng)用于面向Internet的基于內(nèi)容的海量多媒體檢索。
文檔編號G06F17/30GK1953442SQ200610053408
公開日2007年4月25日 申請日期2006年9月14日 優(yōu)先權(quán)日2006年9月14日
發(fā)明者莊越挺, 莊毅, 吳飛 申請人:浙江大學(xué)