專利名稱:使用位矢量索引的多維數(shù)據(jù)對象搜索的制作方法
背景技術(shù):
已經(jīng)提出多個策略用于標(biāo)識并檢索存儲在數(shù)據(jù)庫中的多媒體數(shù)據(jù)對象。這些策略的每個的中心問題是搜索問題,將查詢點和一組數(shù)據(jù)庫中多維(MD)對象比較。例如,具有多個特性(維度)的歌曲的采樣可與存儲在數(shù)據(jù)庫中的多首歌曲比較,以發(fā)現(xiàn)一首或多首具有相同或類似特性的歌曲。搜索的結(jié)果是,或者發(fā)現(xiàn)一個或多個匹配,或者數(shù)據(jù)庫內(nèi)的對象的集內(nèi)沒有匹配。這些搜索問題通常被構(gòu)造成一些高維搜索的形式,其中數(shù)據(jù)和查詢點被映射到相同的高維特征空間。對特定的查詢點,通過在被認(rèn)為匹配的足夠接近查詢點的特征空間內(nèi)尋找數(shù)據(jù)點來發(fā)現(xiàn)匹配。更為具體地,這些近似的匹配問題通常被構(gòu)造成使用某種Lp度量標(biāo)準(zhǔn)的ε(epsilon)距離的查詢,這樣使用的ε顯著小于點之間的平均距離。
用于解決這些問題(例如,最近鄰域、ε距離搜索)的傳統(tǒng)的查詢處理策略,因為與高維度相關(guān)聯(lián)的固有困難而性能很差。當(dāng)為不同的數(shù)據(jù)點使用不同的匹配距離時,這些傳統(tǒng)的查詢處理策略就更有問題了,對復(fù)雜的高維度搜索,如音頻指紋識別等等來說,這證明是非常重要的情況。結(jié)果是,對解決這些問題最直接的方法,線性掃描一般做得比更為復(fù)雜的方法好。不幸的是,盡管簡單的線性掃描對復(fù)雜的高維度掃描而言,比更為復(fù)雜的查詢處理策略一般可獲得更好的性能,然而線性掃描是時間非常密集的過程。
發(fā)明內(nèi)容
這里描述的是方便了多維特征空間內(nèi)的多維數(shù)據(jù)對象的快速搜索的各種系統(tǒng)和方法。根據(jù)一個實施例,在搜索之前,多維特征空間的每個維度被劃分為多個間隔。當(dāng)接收到查詢時,從每個維度中選擇與該查詢點重疊的單個間隔。然后,選擇減少的多維數(shù)據(jù)對象集,該集只包括與已選擇的間隔重疊的那些多維數(shù)據(jù)對象。然后,這個減少的多維數(shù)據(jù)對象集,而非特征空間的多維數(shù)據(jù)對象的整個集被用于確定該查詢點的匹配,因此極大地提高了搜索過程的效率。
圖1說明示例性的數(shù)據(jù)映射和搜索系統(tǒng)。
圖2說明圖1的數(shù)據(jù)映射和搜索系統(tǒng)的示例性的特征空間。
圖3是說明可在準(zhǔn)備進(jìn)行圖2的特征空間的搜索中執(zhí)行的各種操作的示例性的操作流程圖。
圖4是說明可在準(zhǔn)備進(jìn)行圖2的特征空間的搜索中執(zhí)行的各種操作的另一個示例性的操作流程圖。
圖5是說明可在搜索圖2的特征空間中執(zhí)行的各種操作的示例性的操作流程圖。
圖6是說明可在搜索圖2的特征空間中執(zhí)行的各種操作的另一個示例性的操作流程圖。
圖7說明計算系統(tǒng)的一個實施例,其中可以實現(xiàn)圖1的數(shù)據(jù)映射和搜索系統(tǒng)和圖4到圖6的操作流。
具體實施例一般地,這里描述的系統(tǒng)和方法涉及,或可協(xié)力用于搜索多個多維數(shù)據(jù)對象,以確定多維數(shù)據(jù)對象的哪一個或哪一些與給定的查詢點重疊。根據(jù)各個實施例,多維數(shù)據(jù)對象表示為特征空間內(nèi)的超矩形。如果要搜索的多維數(shù)據(jù)對象不是超矩形,則多維數(shù)據(jù)對象首先映射到特征空間內(nèi)的超矩形。為了方便超矩形的快速搜索,特征空間內(nèi)的每個維度首先被劃分為多個預(yù)定的間隔。然后,為每個維度內(nèi)的每個間隔創(chuàng)建位矢量所索引。每個位矢量索引指示特征空間內(nèi)的每個超矩形是否與位矢量相關(guān)聯(lián)的間隔重疊。
當(dāng)接收到查詢點時,從每個維度中選擇與查詢點重疊的單個間隔。然后,與每個已選擇的間隔相關(guān)聯(lián)的位矢量索引邏輯“與”在一起,以形成單個結(jié)果位矢量索引。該結(jié)果位矢量索引標(biāo)識特征空間內(nèi)減少的超矩形集。然后,可使用線性掃描快速搜索該減少的超矩形集,或搜索由減少的集內(nèi)的超矩形約計的多維數(shù)據(jù)對象,以確定該查詢點的一個或一些匹配。
現(xiàn)在轉(zhuǎn)到圖1,這里說明的是示例性的數(shù)據(jù)映射和搜索系統(tǒng)100的一個實施例。如圖所示,搜索系統(tǒng)100包括數(shù)據(jù)存儲器102、映射模塊104、搜索模塊106、形狀近似器模塊108、以及多維特征空間110。包括在數(shù)據(jù)存儲器102中的是多個數(shù)據(jù)項112(D1到Dn)。耦合到多維特征空間110的是第一類型的多個多維數(shù)據(jù)對象114(S1到Sn)和第二類型的多個多維數(shù)據(jù)對象116(R1到Rn)。
根據(jù)一個實施例,多維特征空間110是用于映射、處理、存儲、和/或訪問計算系統(tǒng)或計算進(jìn)程中的多維數(shù)據(jù)點或?qū)ο蟮念愋?。根?jù)這個實施例,多維特征空間110內(nèi)的多維數(shù)據(jù)點是值的矢量。這些矢量的長度等于多維特征空間內(nèi)的維度數(shù)量。這些特征內(nèi)的每個索引的精確的形式和意義根據(jù)多維特征空間的形式而變化。根據(jù)這個實施例,多維數(shù)據(jù)對象114和116是多維數(shù)據(jù)點集。多維數(shù)據(jù)對象114和116可被定義為確定多維數(shù)據(jù)點是否是由多維對象定義的多個數(shù)據(jù)點集成員的函數(shù)或算法。如這里所使用的,當(dāng)定義多維對象的基本函數(shù)或算法處理其類型對應(yīng)于多維特征空間的矢量時,就說多維數(shù)據(jù)對象“耦合到”多維特征空間。
本領(lǐng)域的技術(shù)人員認(rèn)識到,可用幾何學(xué)來定義或描述多維數(shù)據(jù)點和對象。根據(jù)這個幾何學(xué)定義,認(rèn)為多維數(shù)據(jù)點矢量是高維空間的坐標(biāo)。多維數(shù)據(jù)對象時多維數(shù)據(jù)點集,因此可被認(rèn)為時高維空間內(nèi)的形狀或區(qū)域。因此,這里將多維數(shù)據(jù)點或?qū)ο蟆霸诙嗑S特征空間之內(nèi)”或“耦合到”(coupled to)多維特征空間。就是說,多維特征空間“包括”多維數(shù)據(jù)點或?qū)ο蟆?br>
關(guān)于在多維特征空間112內(nèi)搜索,這里,受到搜索的多維數(shù)據(jù)點指查詢點。如果該查詢點是虛構(gòu)多維速據(jù)對象的多個多維數(shù)據(jù)點的集的成員,則說多維數(shù)據(jù)對象與查詢點重疊。通過把多維對象的基本函數(shù)或算法應(yīng)用于查詢點,可確定該集的成員資格。進(jìn)一步,如果多維數(shù)據(jù)對象很可能與查詢點重疊,則多維數(shù)據(jù)對象與查詢點匹配。因此,匹配是重疊的近似。這里使用短語“搜索特征空間”來描述執(zhí)行耦合到多維特征空間的多維數(shù)據(jù)點和對象的匹配和重疊操作。
一般地,搜索模塊106適合于確定數(shù)據(jù)存儲器102中的數(shù)據(jù)項112是否與給定的數(shù)據(jù)點122匹配。然而,正如下面詳細(xì)說明,搜索模塊106不直接在數(shù)據(jù)存儲器102中搜索數(shù)據(jù)項112。相反,數(shù)據(jù)項112首先被映射模塊104映射到特征空間110內(nèi)的多維數(shù)據(jù)對象。然后,搜索模塊106評價查詢點和特征空間110內(nèi)的多維數(shù)據(jù)對象,以確定與查詢點122匹配的多維數(shù)據(jù)對象。
根據(jù)一個實施例,映射模塊104直接把數(shù)據(jù)項112映射到第二類型的多維數(shù)據(jù)對象116。然后,關(guān)于第二類型的多維數(shù)據(jù)對象116,搜索模塊106進(jìn)行搜索。根據(jù)另一個實施例,映射模塊104把數(shù)據(jù)項112映射到第一類型的多維數(shù)據(jù)對象114。在這個實施例中,形狀近似器模塊108然后把第一類型的多維數(shù)據(jù)對象114轉(zhuǎn)換或映射為第二類型的多維數(shù)據(jù)對象116。搜索模塊106然后關(guān)于第二類型的多維數(shù)據(jù)對象116和/或第一類型的多維數(shù)據(jù)對象114進(jìn)行該搜索。
根據(jù)一個實施例,數(shù)據(jù)存儲器102由計算機(jī)可讀介質(zhì)組成或包括它們。例如,而非限制,根據(jù)一個實施例,數(shù)據(jù)存儲器102是具有存儲在計算機(jī)可讀介質(zhì),如磁性或光介質(zhì)上的數(shù)據(jù)對象的數(shù)據(jù)庫。作為這里使用,計算機(jī)可讀介質(zhì)可為能存儲和/或包含數(shù)據(jù)和/或計算機(jī)可執(zhí)行指令、并可由計算系統(tǒng)或計算進(jìn)程訪問的任何可用介質(zhì)。計算機(jī)可讀介質(zhì)可包括,但不限于,易失的和非易失的介質(zhì)、可移動的和不可移動的介質(zhì)、以及調(diào)制數(shù)據(jù)信號。術(shù)語“調(diào)制數(shù)據(jù)信號”指具有一個或多個以在信號中編碼信息的方式設(shè)置或改變其特征的信號。
根據(jù)一個實施例,數(shù)據(jù)存儲器102內(nèi)的每個數(shù)據(jù)項112是數(shù)據(jù)樣本或文件。例如,而非限制,根據(jù)一個實施例,每個數(shù)據(jù)項112是介質(zhì)樣本或文件,如聲頻或視頻樣本或文件。根據(jù)另一個實施例,數(shù)據(jù)項112可為其他類型的采樣或文件。
一般地,映射模塊104適合于把數(shù)據(jù)存儲器內(nèi)的數(shù)據(jù)項112映射到特征空間108內(nèi)的多維數(shù)據(jù)對象。如之前提及,數(shù)據(jù)項112可映射為第一類型的多維數(shù)據(jù)對象114或映射為第二類型的多維數(shù)據(jù)對象116。然而,如以下將更為詳細(xì)描述的,映射模塊104一般把數(shù)據(jù)項112映射到第一類型的多維數(shù)據(jù)對象114。
本領(lǐng)域的技術(shù)人員將認(rèn)識到,多維數(shù)據(jù)對象有許多不同的類型(形狀)和大小。兩種常見類型的多維數(shù)據(jù)對象是超球形和超矩形。其他類型的多維數(shù)據(jù)對象是(并非限制),超橢圓體或多面體。
如以下更為詳細(xì)描述的,根據(jù)這里描述的各種實施例,第一類型的多維數(shù)據(jù)對象114為超球形,而第二類型的多維數(shù)據(jù)對象116為超矩形。因此,為了簡化,第一類型的多維數(shù)據(jù)對象114這里將稱為超球形,而第二類型的多維數(shù)據(jù)對象116這里將稱為超矩形。然而,應(yīng)該理解,這里描述的各種方法和系統(tǒng)可同樣應(yīng)用于第一類型的多維數(shù)據(jù)對象為其他類型的多維數(shù)據(jù)對象變體的場合。
超矩形可被定義為多維特征空間內(nèi)所有點的集,這樣每個點在特征空間內(nèi)的每個維度有值,該值處于每個維度的最小值和最大值之間。超球形可被定義為多維特征空間內(nèi)所有點的集,這樣每個點到一固定點的距離為歐幾里得(Euclidean)距離,該距離小于或等于閾值。該固定點作為超球形的中心是已知的。
轉(zhuǎn)到圖2,這里說明的是包括多個超矩形214到222的特征空間110的概括的示例性表示。為了簡化表示,所示為包括兩個維度的超矩形的2維特征空間。然而,應(yīng)該理解,特征空間110和其中包括的超矩形,可為任何正數(shù)數(shù)量的維度。
如圖2所示,特征空間110有第一維度(dim1)210和第二維度(dim2)212。如之前提及,特征空間110內(nèi)的每個維度能獲得一個范圍的可能值。沿每個維度顯示該范圍的可能值。盡管圖2中只顯示了沿維度210和212的正整數(shù)值,但應(yīng)該認(rèn)識到,每個維度也包括負(fù)數(shù)值和浮點值。同樣地,應(yīng)該認(rèn)識到,盡管圖2只顯示了具有正整數(shù)值范圍的超矩形,但值的范圍延伸至負(fù)數(shù)值的超矩形、只有負(fù)數(shù)值范圍的超矩形、或具有浮點值范圍的超矩形也是可能的。
可使用多個不同的慣例來指定特征空間110內(nèi)的超矩形的大小和位置。圖2說明可用于指定特征空間110內(nèi)的超矩形的大小和位置的一個示例性的慣例。特別是,特征空間110內(nèi)的每個超矩形包括標(biāo)識符(R1、R2……等),以及兩個坐標(biāo)對。如所示,第一個坐標(biāo)對標(biāo)識關(guān)于特征空間110的超矩形的較低左邊角的位置,而第二個坐標(biāo)對指示關(guān)于特征空間110的超矩形的較高的右邊角的位置。例如,特征空間內(nèi)較低的最左邊的超矩形214表示為R1{1,1}-{4,2}。此例中,R1指示超矩形標(biāo)識符,{1,1}指示超矩形214的較低的左邊角,而{4,2}指示超矩形214的較高的右邊角。將認(rèn)識到,從這些有序的坐標(biāo)對,可以確定超矩形R1到R5沿維度一和維度二的屬性的范圍。
現(xiàn)在回到圖1,根據(jù)一個實施例,搜索模塊106、映射模塊104、以及形狀近似器模塊108每個由計算機(jī)可執(zhí)行指令構(gòu)成,或包括計算機(jī)可執(zhí)行指令。根據(jù)一個實施例,這些計算機(jī)可執(zhí)行指令存儲或包含在一種或多種類型的計算機(jī)可讀介質(zhì)中,且由一個或多個計算進(jìn)程或設(shè)備執(zhí)行,如以下關(guān)于圖7所示和所述。
應(yīng)該理解,盡管這里作為包含或包括包含在計算機(jī)可讀介質(zhì)中的計算機(jī)可執(zhí)行指令來描述搜索模塊106、映射模塊104、以及形狀近似器模塊108,但搜索模塊106、映射模塊104、形狀近似器模塊108、及其因此執(zhí)行的任何或所有功能或操作,同樣可全部或部分作為計算設(shè)備內(nèi)的互連的機(jī)器邏輯電路或電路模塊來體現(xiàn)。換個方式說,可以預(yù)期,搜索模塊106、映射模塊104、形狀近似器模塊108、及其操作和功能可作為硬件、軟件、固件、或者硬件、軟件和/或固件的各種結(jié)合來實現(xiàn)。
一般地,如之前所述,形狀近似器模塊108適合于把特征空間110內(nèi)的超球形114映射或轉(zhuǎn)換為超矩形116。由形狀近似器模塊108完成的這種映射的方式可基于要被映射或轉(zhuǎn)換的超球形114的類型而變化。例如,而非限制,根據(jù)一個實施例,每個超球形114被映射到大小完全包圍該超球形的超矩形116。例如,超球形114可被映射到具有維度的超矩形116,這樣,如果超球形114置于超矩形116的中心,則超球形114將完全包含在超矩形116中。因此,應(yīng)該認(rèn)識到,超矩形的整個大小或體積將依賴于要被映射的超矩形的整個大小或體積。
一個實施例中,每個超矩形116將是完全包圍要被映射的超球形114的最小可能的超矩形。在另一個實施例中,如果允許錯誤的負(fù)數(shù)搜索結(jié)果,則每個超矩形116可以比完全包圍要被映射的超球形114的最小可能的超矩形更小。
應(yīng)該理解,盡管作為使用形狀近似器模塊108在特征空間110內(nèi)映射超球形來描述了超矩形116,但根據(jù)另一個實施例,可以使用其他模塊或系統(tǒng)或映射技術(shù)在特征空間110中創(chuàng)建特征空間內(nèi)的超矩形116,或?qū)⑵溆成涞教卣骺臻g110。
一般地,搜索模塊106執(zhí)行特征空間110的搜索,以標(biāo)識與給定的查詢點122重疊的超矩形。假定超矩形是多維數(shù)據(jù)對象,則以上描述了與超矩形重疊和匹配的定義。根據(jù)一個實施例,搜索模塊106執(zhí)行圖3,4,5和/或6說明的操作,現(xiàn)在將作描述。
首先轉(zhuǎn)到圖3,這里說明的是包括操作300的示例性的操作流,該操作將在搜索特征空間110之前由搜索模塊執(zhí)行。根據(jù)一個實施例,一旦特征空間110已經(jīng)被超矩形116組裝,就執(zhí)行操作300。如以下將更為詳細(xì)的描述,操作300創(chuàng)建搜索過程中使用的位矢量索引的集。操作300可在各種時間執(zhí)行。然而,一般地,操作300在每個搜索操作之前不會執(zhí)行。相反,操作300一般在大量超矩形116已經(jīng)被添加到特征空間110或從中移除時執(zhí)行。例如,操作300只在關(guān)于位矢量索引已經(jīng)發(fā)生給定數(shù)量的修改后才執(zhí)行。
如圖3所示,在操作流300的開始,劃分操作310把特征空間110內(nèi)的每個維度劃分為多個不相交間隔。例如,如圖2所示,維度210和212都被劃分為三個不相交的間隔。如所示,維度一210已被劃分為包含維度一210內(nèi)小于4的所有值的間隔一224;包含維度一內(nèi)的4和8之間的所有值的間隔二226;以及包含維度一內(nèi)大于8的所有值的間隔三228。盡管并未明確示出,但維度二以及特征空間110內(nèi)的任何其他維度也以類似方式劃分。
確定間隔的開始點和結(jié)束點的精確方式可以變化,且依賴于如超矩形分布和/或超球形大小等情況。例如,而非限制,根據(jù)一個實施例,當(dāng)想要m個間隔時,在間隔之間選擇m-1個劃分或間隔分隔物。例如,如圖2所示,三個間隔要求選擇兩個間隔分隔物(3-1=2)。根據(jù)這個實施例,每個維度內(nèi)的第一個和最后一個間隔一側(cè)不被限制。例如,如圖2所示,間隔一224一側(cè)被值4所限制,但在另一側(cè)仍不受限制。類似地,間隔一228一側(cè)被值8所限制,但在另一側(cè)仍不受限制。
根據(jù)一個實施例,選擇每個間隔分隔物的位置,以便該位置處于特征空間內(nèi)的其中一個超矩形的值范圍的起點或末端(邊界)中。例如,如圖2所示,間隔一224和間隔二226之間的分隔物230出現(xiàn)在沿維度一210的R1 214的值范圍的末端。類似地,間隔二226和間隔三228之間的分隔物232出現(xiàn)在沿維度一210的R2 216的值范圍的末端。
根據(jù)一個實施例,間隔分隔物的位置確定如下。假設(shè)|S|等于特征空間內(nèi)的超矩形的數(shù)量,m是想要的間隔的數(shù)量,a/b用于表示a除以b的截斷取整,a%b表示a除以b的余數(shù),而k=(2×|S|)%m。
等式(1)FirstIDsj=j(luò)×[(2×|S|/m]+j 1≤j≤k
等式(2)RemainingIDsj=j(luò)×[(2×|S|)/m]+k k+1≤j≤m等式(1)給出了與最小邊界ID相關(guān)并以增序分類的m個分隔物的前k個[j=1到k]分隔物的的ID(其中ID=n是沿該軸的第n個最小的超矩形的邊界)。等式(2)給出了剩余的分隔物的ID。例如,如果FirstIDs1=5,則第一個分隔物是沿該軸的第5個最小的超矩形的邊界。在這個實施例中,是想把大約相等數(shù)量的多維數(shù)據(jù)對象分配給每個間隔,因為這最終導(dǎo)致更有效的搜索。
關(guān)于圖2所示的特征空間和超矩形使用等式(1),可以看到k=(2×5)%3=1。因此,F(xiàn)irstIDs1=1×[(2×5)/3]+1=4。那么,第一個分隔物在第四個矩形的邊界(其中以增序?qū)吔绶诸?。關(guān)于圖2所示的特征空間和超矩形使用等式(2),可以看到RemainingIDs2=2×[(2×5)/3]+1=7。因此,第二個分隔物在第七個矩形的邊界。既然第四個和第七個邊界分別在4和8處,則這里就是放置分隔物的地方。根據(jù)一個實施例,基于查詢點分布的先前知識,使用受限的矩形邊界的集。那么,以和已經(jīng)描述的相同方式來使用該受限的矩形邊界的集。
劃分操作310之后,位矢量索引構(gòu)造操作然后構(gòu)造與每個維度內(nèi)的每個間隔對應(yīng)的位矢量索引。特別是,對每個間隔,創(chuàng)建指定特征空間110內(nèi)的每個超矩形116是否與該間隔重疊的位矢量索引。如果所有或部分超矩形116的值范圍落入由該間隔指定的值范圍,就說超矩形116與某一維中的間隔重疊。例如,關(guān)于圖2,超矩形R1 214、R4 220、R5 222的每一個與間隔一224重疊;超矩形R2 216、R4220、R5 222的每一個與間隔二226重疊;而超矩形R3 218和R5 222的每一個與間隔三228重疊。
根據(jù)一個實施例,每個位矢量索引包括與特征空間內(nèi)的超矩形的數(shù)量相同的位。而且,位矢量索引內(nèi)的每個位與特征空間內(nèi)的單個超矩形相關(guān)聯(lián)。根據(jù)另一個實施例,位矢量可包括比超矩形更大數(shù)量的位。例如,在一個實施例中,當(dāng)從特征空間內(nèi)移除超矩形時,與其相關(guān)聯(lián)的位可簡單設(shè)定為“0”,而非從位矢量索引中移除。
位矢量索引中的每個位指示與它相關(guān)聯(lián)的超矩形是否和與位矢量索引相關(guān)聯(lián)的間隔重疊。例如,值為“1”的位可能指示它相關(guān)聯(lián)的超矩形和與位矢量索引相關(guān)聯(lián)的間隔重疊,而值為“0”的位可能指示它相關(guān)聯(lián)的超矩形和與位矢量索引相關(guān)聯(lián)的間隔不重疊。例如,關(guān)于圖2,與間隔一224相關(guān)聯(lián)的第一位矢量索引包括五個位,且可寫作[10011],其中第一個位(1)指示R1與間隔一重疊,第二個位(0)指示R2與間隔一不重疊,第三個位(0)指示R3與間隔一不重疊,第四個位(1)指示R4與間隔一重疊,而第五個位(1)指示R5與間隔一重疊。使用這種慣例,與間隔二226相關(guān)聯(lián)的位矢量索引為
,而與間隔三228相關(guān)聯(lián)的位矢量索引為
。
現(xiàn)在轉(zhuǎn)到圖4,這里說明的是包括操作的詳細(xì)的示例性操作流400,這些操作可用于為特征空間110構(gòu)造位矢量索引。應(yīng)該認(rèn)識到,操作流400適合于為特征空間110內(nèi)任何數(shù)量的維度和任何數(shù)量的維度間隔處理位矢量索引的構(gòu)造。
如所示,在操作流400的開始,維度設(shè)定操作410設(shè)定或初始化維度變量(dim)為值1。維度設(shè)定操作410之后,劃分維度操作410把維度“維度(dim)”劃分為間隔,如上所述。將會認(rèn)識到,既然當(dāng)前維度變量dim設(shè)定為1,則劃分維度操作412將劃分給定特征空間的第一個維度。劃分維度操作412之后,設(shè)定間隔操作414設(shè)定或初始化間隔變量intvl為值1。接著,設(shè)定超矩形操作416設(shè)定或初始化超矩形變量rect為值1。
設(shè)定超矩形操作416之后,設(shè)定位操作418在由維度變量dim指定的維度內(nèi),確定由超矩形變量rect指定的超矩形是否與由間隔變量intvl指定的間隔重疊。如果在指定的維度內(nèi),確定指定的超矩形與指定的間隔重疊,則設(shè)定位操作418在與指定的維度內(nèi)指定的間隔關(guān)聯(lián)的位矢量索引內(nèi)設(shè)定與位矢量索引內(nèi)指定的超矩形相關(guān)聯(lián)的位為1。然而,如果在指定的維度內(nèi),且確定指定的超矩形與指定的間隔不重疊,則設(shè)定位操作418在與指定的維度內(nèi)指定的間隔關(guān)聯(lián)的位矢量索引內(nèi)設(shè)定與位矢量索引內(nèi)指定的超矩形相關(guān)聯(lián)的位為0。
接著,增量超矩形操作420遞增超矩形變量rect。矩形數(shù)量確定操作422然后確定超矩形變量rect是否等于特征空間內(nèi)的超矩形的數(shù)量加1。如果超矩形變量rect不等于特征空間內(nèi)的超矩形的數(shù)量加1,則操作流400返回設(shè)定位操作418。然而,如果超矩形變量rect等于特征空間內(nèi)的超矩形的數(shù)量加1,則操作流400繼續(xù)到遞增間隔操作424,其中間隔變量intvl遞增。
遞增間隔操作424之后,間隔確定操作426確定間隔變量intvl是否等于由維度變量dim指定的維度內(nèi)的間隔的數(shù)量加1。如果間隔變量intvl不等于由維度變量dim指定的維度內(nèi)的間隔的數(shù)量加1,則操作流返回到設(shè)定超矩形操作416。然而,如果間隔變量intvl等于由維度變量dim指定的維度內(nèi)的間隔的數(shù)量加1,則操作流繼續(xù)到增量維度操作428,其中維度變量dim遞增。
遞增維度操作428之后,維度確定操作430確定維度變量dim是否等于特征空間內(nèi)的維度數(shù)量加1。如果維度變量dim不等于特征空間內(nèi)的維度數(shù)量加1,則操作流400返回到劃分維度操作412。然而,如果維度變量dim等于特征空間內(nèi)的維度數(shù)量加1,則操作流400結(jié)束。
現(xiàn)在轉(zhuǎn)到圖5,這里說明的是可用于搜索特征空間110的示例性的操作流500。更為具體地,操作流500可用于在已經(jīng)為特征空間110內(nèi)的每個間隔創(chuàng)建位矢量索引之后,如上所述地根據(jù)操作流300和/或400,或者通過一些其他操作搜索特征空間110。如所示,在操作流500的開始,接收查詢操作514接收查詢項。接著,映射查詢操作515把該查詢項映射到多維特征空間的查詢點。
映射查詢操作515之后,間隔選擇操作516從與查詢點重疊的每個維度中選擇間隔。如果維度內(nèi)的查詢點的值處于由該間隔指定的值范圍內(nèi),就說維度內(nèi)的間隔與查詢點重疊。接著,“與”操作518把與間隔選擇操作516中選擇的間隔對應(yīng)的所有位矢量索引邏輯“與”。位矢量索引的這種邏輯“與”產(chǎn)生單個結(jié)果位矢量索引,該結(jié)果位矢量索引指定了與接收到的查詢點匹配的超矩形的集。將認(rèn)識到,由結(jié)果位矢量索引指定的超矩形的集大多數(shù)情況下將明顯小于特征空間110內(nèi)的所有超矩形的集。
“與”操作518之后,匹配操作520比較接收到的查詢點和由結(jié)果位矢量索引中的1索引的每個超矩形,以確定與接收到的查詢點重疊的超矩形。在從相關(guān)聯(lián)的多維數(shù)據(jù)對象中映射每個超矩形的情況下,并非比較接收到的查詢點和由結(jié)果位矢量索引指定的每個超矩形,而是可以直接比較接收到的查詢點和多維數(shù)據(jù)對象,該多維數(shù)據(jù)對象與由結(jié)果位矢量索引中的1索引的超矩形相關(guān)聯(lián)。
現(xiàn)在轉(zhuǎn)到圖6,這里說明的是包括可用于搜索特征空間110的操作的另一個更為詳細(xì)的示例性的操作流600。作為操作流,操作流600可在已經(jīng)為特征空間110內(nèi)的每個間隔創(chuàng)建位矢量索引之后,如上所述地根據(jù)操作流300和/或400,或者由一些其他操作實施。如所示,在操作流600的開始,接收查詢操作610接收查詢點。在已經(jīng)接收查詢點之后,設(shè)定維度操作612設(shè)定維度變量dim等于1。接著,確定間隔操作614確定由包括查詢點的維度變量dim指定的維度內(nèi)的間隔。換種方式說,確定間隔操作614確定由與查詢點重疊的維度變量dim指定的維度內(nèi)的間隔。選擇位矢量索引操作616然后選擇與在確定間隔操作614中確定的間隔對應(yīng)的位矢量索引。
選擇位矢量索引操作616之后,維度確定操作618確定維度變量dim是否等于1。如果維度變量dim等于1,則設(shè)定結(jié)果位矢量索引操作620設(shè)定結(jié)果位矢量索引等于在選擇位矢量索引操作616中選擇的位矢量索引,且操作流繼續(xù)到維度變量遞增操作624。然而,如果維度確定操作618確定維度變量dim不等于1,則操作流600繼續(xù)到“與”操作622,其中在選擇位矢量索引操作616中選擇的位矢量索引與結(jié)果位矢量索引邏輯“與”,或“與”入結(jié)果位矢量索引。接著,維度變量遞增操作624遞增維度變量dim。
維度變量遞增操作624之后,維度確定操作626確定維度變量dim是否等于特征空間內(nèi)的維度數(shù)量。如果維度變量dim不等于特征空間內(nèi)的維度數(shù)量,則操作流600返回到確定間隔操作614。然而,如果維度變量dim等于特征空間內(nèi)的維度數(shù)量,則操作流繼續(xù)到發(fā)現(xiàn)超矩形操作628,其中發(fā)現(xiàn)了對應(yīng)于結(jié)果位矢量索引中的每個“1”的超矩形。接著,比較數(shù)據(jù)對象操作630比較接收到的查詢點和與發(fā)現(xiàn)超矩形操作628發(fā)現(xiàn)的超矩形相關(guān)聯(lián)的所有多維數(shù)據(jù)對象。返回數(shù)據(jù)對象操作630然后返同與接收到的查詢點匹配的所有多維數(shù)據(jù)對象,且操作流600結(jié)束。
圖7說明操作環(huán)境710的一個實施例,其中可以實現(xiàn)這里描述的各種系統(tǒng)、方法、以及數(shù)據(jù)結(jié)構(gòu)。圖7的示例性的操作環(huán)境710包括以計算機(jī)720形式的通用計算設(shè)備,它包括處理單元721\系統(tǒng)存儲器722、以及可操作地連接各種系統(tǒng)組件,包括把系統(tǒng)存儲器連接到處理單元721的系統(tǒng)總線723。這里可只有一個或更多處理單元721,這樣計算機(jī)720的處理器包含單個中央處理單元(CPU)、或者多個處理單元(一般稱為并行處理環(huán)境)。計算機(jī)720可為傳統(tǒng)的計算機(jī)、分布式計算機(jī)、或任何其他類型的計算機(jī)。
系統(tǒng)總線723可為幾種類型的總線結(jié)構(gòu)的任何一種,包括存儲器總線或存儲器控制器、外圍總線、以及使用任何一種總線結(jié)構(gòu)的局部總線。系統(tǒng)存儲器可簡單地稱為內(nèi)存,且包括只讀存儲器(ROM)724和隨機(jī)存取存儲器(RAM)725?;据斎?輸出系統(tǒng)(BIOS)726一般存儲在ROM 724內(nèi),它包括如啟動時幫助在計算機(jī)720內(nèi)的元件間傳輸信息的基本例程。計算機(jī)720還包括用于從硬盤讀取和向其中寫入的硬盤驅(qū)動器727(未示出)、用于從可移動的磁盤729讀取或向其中寫入的磁盤驅(qū)動器728、以及用于向如CD ROM或其它光學(xué)介質(zhì)的可移動的光盤731讀寫的光盤驅(qū)動器730。
硬盤驅(qū)動器727、磁盤驅(qū)動器728和光盤驅(qū)動器730分別由硬盤驅(qū)動器接口732、磁盤驅(qū)動器接口733和光盤驅(qū)動器接口734連接到系統(tǒng)總線723。這些驅(qū)動器及其相關(guān)聯(lián)的計算機(jī)可讀介質(zhì)提供了計算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊以及其他用于計算機(jī)720的數(shù)據(jù)的非易失的存儲。本領(lǐng)域的技術(shù)人員應(yīng)該認(rèn)識到,能夠存儲由計算機(jī)訪問的數(shù)據(jù)的任何類型的計算機(jī)可讀介質(zhì),如磁性盒式磁帶、閃存卡、數(shù)字視頻盤、柏努利(Bernoulli)磁帶、隨機(jī)存取存儲器(RAM)、只讀存儲器(ROM)等等,都可用于示例性的操作環(huán)境。
包括操作系統(tǒng)735、一個或多個應(yīng)用程序736、其他程序模塊737、以及程序數(shù)據(jù)738的多個程序模塊可存儲在硬盤、磁盤729、光盤731、ROM724、RAM725中。用戶可通過輸入設(shè)備,如鍵盤40和定點設(shè)備742向計算機(jī)720輸入命令和信息。其它輸入設(shè)備(未示出)可包括話筒、操作桿、游戲墊、圓盤式衛(wèi)星天線、掃描儀等等。這些以及其它輸入設(shè)備通常通過連接到系統(tǒng)總線的串口接口746,連接到處理單元721,但是也可以通過其它接口連接,如并行端口、游戲端口或通用串行總線(USB)。監(jiān)視器747或其它類型的顯示設(shè)備也通過接口,如視頻適配器748連接到系統(tǒng)總線723。除了監(jiān)視器以外,計算機(jī)一般包括其他外圍輸出設(shè)備(未示出),如揚聲器和打印機(jī)。
計算機(jī)720可以工作在使用到一個或多個如遠(yuǎn)程計算機(jī)749的遠(yuǎn)程計算機(jī)的邏輯連接的網(wǎng)絡(luò)化環(huán)境中。這些邏輯連接可通過連接到計算機(jī)720的通信設(shè)備或計算機(jī)720的一部分、或者其他方式來實現(xiàn)。遠(yuǎn)程計算機(jī)749可以是個人計算機(jī)、服務(wù)器、路由器、網(wǎng)絡(luò)PC、客戶機(jī)、對等設(shè)備或其他公共網(wǎng)絡(luò)節(jié)點,且一般包括與計算機(jī)720相關(guān)的許多或所有上述元件,盡管圖7中僅說明了存儲器存儲設(shè)備750。圖7所示的邏輯連接包括局域網(wǎng)(LAN)751以及廣域網(wǎng)(WAN)752。這種網(wǎng)絡(luò)環(huán)境常見于辦公室網(wǎng)絡(luò)、企業(yè)范圍的計算機(jī)網(wǎng)絡(luò)、內(nèi)聯(lián)網(wǎng)以及因特網(wǎng),它可以是所有類型的網(wǎng)絡(luò)。
當(dāng)用于LAN網(wǎng)絡(luò)環(huán)境時,計算機(jī)720通過網(wǎng)絡(luò)接口或適配器753連接到局域網(wǎng)751,網(wǎng)絡(luò)接口或適配器753是一種類型的通信設(shè)備。當(dāng)用于WAN網(wǎng)絡(luò)環(huán)境時,計算機(jī)720一般包括調(diào)制解調(diào)器754,這是一種類型的通信設(shè)備,或包括用于在廣域網(wǎng)752上建立通信的任何其他類型的通信設(shè)備。調(diào)制解調(diào)器754可為內(nèi)置或外置,它通過串口接口746連接到系統(tǒng)總線723。在網(wǎng)絡(luò)化的環(huán)境中,所述與個人計算機(jī)720有關(guān)的程序模塊,或其一部分可存儲在遠(yuǎn)程存儲設(shè)備內(nèi)。應(yīng)該認(rèn)識到。所示的網(wǎng)絡(luò)連接是示例性的,并且用于在計算機(jī)間建立通信的其他手段和通信設(shè)備也可以使用。
已經(jīng)提出了可以使用、或者可協(xié)力使用超矩形和位矢量索引的各種搜索方法的各種系統(tǒng)和方法。這些系統(tǒng)、方法和數(shù)據(jù)結(jié)構(gòu)已經(jīng)作為結(jié)合附加的權(quán)利要求中敘述的各種元素或操作來描述。然而,應(yīng)該理解,前面的描述并不意圖限制本專利的范圍。相反,可以預(yù)期,類似于一種已經(jīng)描述的,結(jié)合其他現(xiàn)有的或?qū)淼募夹g(shù),本發(fā)明所要求的系統(tǒng)、方法以及數(shù)據(jù)結(jié)構(gòu)也可以其他方式來具體化,以包括不同的操作或元素、或者操作或元素的結(jié)合來體現(xiàn)。
權(quán)利要求
1.一種方法,它包含把多維特征空間內(nèi)的每個維度劃分為多個間隔;在每個維度內(nèi)標(biāo)識與查詢點重疊的間隔;發(fā)現(xiàn)與多維特征空間耦合的與已標(biāo)識的所有間隔匹配的一個或多個多維數(shù)據(jù)對象;以及評價與所有已標(biāo)識的間隔匹配的第一多維數(shù)據(jù)對象,以確定第一多維數(shù)據(jù)對象是否與該查詢點重疊。
2.如權(quán)利要求1所述的方法,其特征在于,每個多維數(shù)據(jù)對象包含超矩形。
3.如權(quán)利要求1所述的方法,其特征在于,每個多維數(shù)據(jù)對象與數(shù)據(jù)項相關(guān)聯(lián)。
4.如權(quán)利要求3所述的方法,其特征在于,每個數(shù)據(jù)項包含媒體數(shù)據(jù)項。
5.如權(quán)利要求1所述的方法,其特征在于,每個多維數(shù)據(jù)對象包含超球形。
6.如權(quán)利要求5所述的方法,其特征在于,每個超球形與數(shù)據(jù)項相關(guān)聯(lián)。
7.如權(quán)利要求1所述的方法,其特征在于,所述發(fā)現(xiàn)連與已標(biāo)識的所有間隔匹配的多維特征空間耦合的一個或多個多維數(shù)據(jù)對象的動作包含為每個間隔形成相關(guān)聯(lián)的數(shù)據(jù)結(jié)構(gòu),該數(shù)據(jù)結(jié)構(gòu)指示與該間隔匹配的多維數(shù)據(jù)對象;以及處理與已標(biāo)識的間隔相關(guān)聯(lián)的每個數(shù)據(jù)結(jié)構(gòu),以產(chǎn)生多維數(shù)據(jù)對象的集,該集內(nèi)的每個多維數(shù)據(jù)對象與每一個已標(biāo)識的間隔匹配。
8.如權(quán)利要求7所述的方法,其特征在于,每個數(shù)據(jù)結(jié)構(gòu)包含位矢量索引。
9.如權(quán)利要求8所述的方法,其特征在于,每個位矢量索引包含多個位,并且其中位矢量內(nèi)的每個位與單個多維數(shù)據(jù)對象對應(yīng)。
10.如權(quán)利要求9所述的方法,其特征在于,超矩形與每個多維數(shù)據(jù)對象相關(guān)聯(lián),并且其中位矢量索引內(nèi)的每個位指示對應(yīng)的超矩形是否與相應(yīng)的間隔重疊。
11.如權(quán)利要求8所述的方法,其特征在于,所述處理動作包含把與所有已選擇的間隔相關(guān)聯(lián)的位矢量索引進(jìn)行邏輯“與”。
12.如權(quán)利要求1所述的方法,其特征在于,每個多維數(shù)據(jù)對象與和多維特征空間耦合的超矩形相關(guān)聯(lián),并且其中所述發(fā)現(xiàn)與已標(biāo)識的所有間隔匹配的多維特征空間耦合的一個或多個多維數(shù)據(jù)對象的動作包含比較所述查詢點和與所有已標(biāo)識的間隔重疊的每個超矩形。
13.如權(quán)利要求12所述的方法,其特征在于,每個多維數(shù)據(jù)對象包含超球形。
14.一種包含用于執(zhí)行以下動作的計算機(jī)可執(zhí)行指令的計算機(jī)可讀介質(zhì),所述動作包含把多維特征空間內(nèi)的每個維度劃分為多個間隔;為每個間隔形成相關(guān)聯(lián)的數(shù)據(jù)結(jié)構(gòu),該數(shù)據(jù)結(jié)構(gòu)指示與所述多維特征空間耦合的多個多維數(shù)據(jù)對象中與該間隔匹配的多維數(shù)據(jù)對象;接收查詢點并在每個維度內(nèi)選擇由該查詢點重疊的間隔;處理與已選擇的間隔相關(guān)聯(lián)的每個數(shù)據(jù)結(jié)構(gòu),以確定多維數(shù)據(jù)對象的集;以及確定與所述查詢點重疊的多維數(shù)據(jù)對象的子集。
15.如權(quán)利要求14所述的計算機(jī)可讀介質(zhì),其特征在于,每個數(shù)據(jù)結(jié)構(gòu)包含位矢量索引。
16.如權(quán)利要求15所述的計算機(jī)可讀介質(zhì),其特征在于,所述處理與已選擇的間隔相關(guān)聯(lián)的每個數(shù)據(jù)結(jié)構(gòu),以確定多維數(shù)據(jù)對象的集的動作包含把所有位矢量索引進(jìn)行邏輯“與”,以確定多維數(shù)據(jù)對象的集。
17.如權(quán)利要求15所述的計算機(jī)可讀介質(zhì),其特征在于,每個位矢量索引有多個位,且位矢量內(nèi)的每個位與耦合到多維特征空間的多維數(shù)據(jù)對象對應(yīng)。
18.如權(quán)利要求15所述的計算機(jī)可讀介質(zhì),其特征在于,每個位矢量索引有多個位,位矢量內(nèi)的每個位與單個超矩形對應(yīng),并指示相應(yīng)的超矩形是否和與所述數(shù)據(jù)結(jié)構(gòu)相關(guān)聯(lián)的間隔重疊。
19.如權(quán)利要求14所述的計算機(jī)可讀介質(zhì),其特征在于,所述把多維特征空間內(nèi)的每個維度劃分為多個間隔的動作包含把每個維度劃分為多個不相交間隔。
20.如權(quán)利要求14所述的計算機(jī)可讀介質(zhì),其特征在于,至少一個間隔被兩個間隔分隔物所限制。
21.如權(quán)利要求14所述的計算機(jī)可讀介質(zhì),其特征在于,至少一個間隔在沿一個維度的一個方向上不受限制。
22.如權(quán)利要求14所述的計算機(jī)可讀介質(zhì),其特征在于,多個維度的第一維度的至少一個間隔被間隔分隔物所限制,并且其中根據(jù)FirstIDsj=j(luò)×[(2×|S|)/m]+j,來選擇至少一個間隔分隔物,其中FirstIDsj表示沿第一維度的至少一個間隔分隔物的位置,m是沿第一維度選擇的間隔分隔物的數(shù)量,1≤j≤(2×|S|)%m,且|S|等于耦合到所述多維特征空間的超矩形的數(shù)量。
23.如權(quán)利要求14所述的計算機(jī)可讀介質(zhì),其特征在于,多個維度的第一維度的至少一個間隔被間隔分隔物所限制,并且其中根據(jù)RemainingIDsj=j(luò)×[(2×|S|)/m]+(2×|S|)%m,來選擇至少一個間隔分隔物,其中RemainingIDsj表示沿第一維度的間隔分隔物的位置,m是沿第一維度選擇的間隔分隔物的數(shù)量,(2×|S|)%m+1≤j≤m,且|S|等于耦合到所述多維特征空間的超矩形的數(shù)量。
24.一種系統(tǒng),它包含包含多個數(shù)據(jù)項的數(shù)據(jù)存儲器;具有在其中定義的與多個多維數(shù)據(jù)對象耦合的多維特征空間的計算機(jī)可讀介質(zhì),每個多維數(shù)據(jù)對象與數(shù)據(jù)項相關(guān)聯(lián);和搜索模塊,它適合于把多維特征空間內(nèi)的每個維度劃分為多個間隔;在每個維度中選擇與查詢點重疊的間隔;確定與所有已選擇的間隔匹配的多個多維數(shù)據(jù)對象的子集;以及基于所述查詢點和確定的多維數(shù)據(jù)對象的子集,選擇數(shù)據(jù)項。
25.如權(quán)利要求24所述的系統(tǒng),其特征在于,該系統(tǒng)還包含適合于把多個數(shù)據(jù)項的每個映射到耦合到所述多維特征空間的多維對象的映射模塊。
26.如權(quán)利要求25所述的系統(tǒng),其特征在于,該系統(tǒng)還包含適合于把每個多維對象映射到耦合到所述多維特征空間的超矩形的形狀近似器模塊。
27.如權(quán)利要求25所述的系統(tǒng),其特征在于,每個多維對象包含超球形。
28.如權(quán)利要求27所述的系統(tǒng),其特征在于,至少兩個超球形大小不同。
29.如權(quán)利要求26所述的系統(tǒng),其特征在于,至少兩個超矩形大小不同。
30.一種具有用于執(zhí)行下列動作的計算機(jī)可執(zhí)行指令的計算機(jī)可讀介質(zhì),所述動作包含把多維特征空間內(nèi)的每個維度劃分為多個間隔,該特征空間與多個多維數(shù)據(jù)對象耦合,每個多維數(shù)據(jù)對象與數(shù)據(jù)項相關(guān)聯(lián);在每個維度中標(biāo)識包括查詢點的間隔;標(biāo)識耦合到特征空間的一個或多個與所有已標(biāo)識的間隔匹配的多維數(shù)據(jù)對象;以及使用所述查詢點和已標(biāo)識的一個或多個多維數(shù)據(jù)對象,標(biāo)識與該查詢點匹配的數(shù)據(jù)項。
31.如權(quán)利要求30所述的計算機(jī)可讀介質(zhì),其特征在于,所述標(biāo)識數(shù)據(jù)項的動作包含確定與數(shù)據(jù)項相關(guān)聯(lián)的每個多維數(shù)據(jù)對象是否與所述查詢點重疊。
全文摘要
在搜索數(shù)據(jù)對象組裝的多維特征空間之前,該特征空間的每個維度被劃分為多個間隔。當(dāng)接收查詢時,從每個維度選擇由該查詢重疊的單個間隔。然后,選擇減少的數(shù)據(jù)對象的集,該對象的集只包括與已選擇的間隔重疊的那些數(shù)據(jù)對象。然后,特征空間中的減少的數(shù)據(jù)對象的集,而非全部數(shù)據(jù)對象的集,被用于為該查詢確定匹配。
文檔編號G06F17/30GK1809826SQ200480017202
公開日2006年7月26日 申請日期2004年5月6日 優(yōu)先權(quán)日2003年6月23日
發(fā)明者J·D·高爾斯特恩, J·C·普拉特, C·J·戈蓋斯 申請人:微軟公司