專利名稱:用于近似查詢的長序列數(shù)據(jù)降維方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種用于近似性查詢的長序列數(shù)據(jù)降維方法,尤其是一種支持高效長序列近似性查詢的序列嵌入(Sequential Embedding)方法,屬于計算機(jī)數(shù)據(jù)管理技術(shù)領(lǐng)域。
背景技術(shù):
長序列數(shù)據(jù)存在于各個科學(xué)研究和應(yīng)用領(lǐng)域,如互聯(lián)網(wǎng)上的文本數(shù)據(jù)、生物領(lǐng)域的基因序列數(shù)據(jù)等。面向這些長序列數(shù)據(jù)的近似性查詢,具有十分廣泛的應(yīng)用需求。如互聯(lián)網(wǎng)文本數(shù)據(jù)的搜索、基因數(shù)據(jù)庫中基因的相似性探索,以及多媒體領(lǐng)域的序列查詢等?;陂L序列數(shù)據(jù)的近似性查詢已經(jīng)成為國際數(shù)據(jù)管理研究領(lǐng)域關(guān)注的問題。
目前已存在一些方法和技術(shù)支持序列的近似性查詢,但是這些技術(shù)在處理序列數(shù)據(jù)之間的相似性時,多采用傳統(tǒng)的編輯距離度量方法,其效率很低(O(n2)級),一般而言僅適用于短序列數(shù)據(jù)集上的近似性查詢。目前,長序列數(shù)據(jù)之間的相似性度量已經(jīng)成為制約長序列數(shù)據(jù)集近似性查詢性能提高的最主要瓶頸問題之一。在傳統(tǒng)的查詢領(lǐng)域,降維技術(shù)(如PCA方法)被認(rèn)為是解決高維數(shù)值數(shù)據(jù)空間近似性查詢效率問題的重要途徑,但該方法并不適用于序列數(shù)值環(huán)境。目前為止,尚無文獻(xiàn)提出面向長序列數(shù)據(jù)領(lǐng)域的降維方法,用于支持高效的長序列數(shù)據(jù)相似性查詢問題。
現(xiàn)有的技術(shù)還不能有效解決長序列數(shù)據(jù)近似性查詢所需要的降維問題,具體如下 首先,傳統(tǒng)的面向高維矢量數(shù)據(jù)空間的降維(如PCA)方法無法應(yīng)用于長序列數(shù)據(jù)集,因為序列數(shù)據(jù)沒有清晰明確的維度定義; 其次,目前雖然提出了基于參考點的序列數(shù)據(jù)集空間縮減方法[Reference-based Indexing of Sequence Databases,VLDB’06],但其本質(zhì)是通過參考序列數(shù)據(jù)構(gòu)造索引查詢空間,從而降低索引查詢空間的范圍,提高查詢的效率,并沒有從序列的本身解決降維的問題。而且這類方法依然無法避免序列之間相似性度量復(fù)雜性高的問題,不具有解決問題的普遍性和本質(zhì)性特征。
傳統(tǒng)索引方法不能有效解決序列相似性查詢問題。文獻(xiàn)[The X-treeAn indexStructure for High-Dimensional Data,VLDB’96]提出了利用索引樹支持相似性查詢,但是這類方法只在序列長度小于20時才有效,無法解決長序列查詢的問題。
文獻(xiàn)[Linear Pattern Matching Algorithms,IEEE Symposium on Switching andAutomata Theory]提出了通過建立后綴樹提高序列近似性查詢的效率,該方法目前在很多領(lǐng)域得到廣泛應(yīng)用。但是,該方法的最大缺點是耗費大量的空間,不具有降維方法所特有的空間壓縮性特點。
文獻(xiàn)[Fast MapA fast algorithm for indexing,data mining and visualization oftraditional and multimedia datasets,SIGMOD’95]提出了通過掃描所有序列數(shù)據(jù)集構(gòu)造嵌入空間來構(gòu)造索引支持近似性查詢。但是由于在原始序列空間的距離相似性度量的復(fù)雜性,使得構(gòu)造該嵌入空間的復(fù)雜性過高而不可行。
從上面的分析可以看出,目前存在的支持長序列數(shù)據(jù)進(jìn)行相似性查詢的方法不能很好的解決當(dāng)前實際應(yīng)用中面臨的技術(shù)難題,迫切需要提供一種高效的、面向長序列數(shù)據(jù)的高效降維方法,用于支持長序列數(shù)據(jù)的相似性查詢。
發(fā)明內(nèi)容
本發(fā)明所要解決的技術(shù)問題在于提供一種與傳統(tǒng)降維方法功能類似、但卻能服務(wù)于長序列數(shù)據(jù)的高效降維方法,基于該方法可以構(gòu)造出高效的面向長序列數(shù)據(jù)近似性查詢的索引結(jié)構(gòu)和查詢方法,填補(bǔ)目前長序列數(shù)據(jù)近似查詢中面臨的“降維”難題。
本發(fā)明解決其技術(shù)問題所采用的技術(shù)方案是 步驟一、利用序列嵌入技術(shù),把一個輸入的長序列數(shù)據(jù)轉(zhuǎn)化為一棵序列嵌入樹(Sequence Embedding Tree); 步驟二、從序列嵌入樹中,從每一層抽取出由字符序列所組成的字符多集集合,并利用所提出的距離收斂性質(zhì),構(gòu)造多集空間所對應(yīng)的主成份; 步驟三、在所提出的多集主成份和距離收斂性質(zhì)的基礎(chǔ)上,構(gòu)造一個與多集主成份對應(yīng)的索引結(jié)構(gòu); 步驟四、基于所提出索引結(jié)構(gòu)基礎(chǔ)上,提出序列距離的雙邊界(距離上界和下界)原理,并提出相應(yīng)的近似性查詢算法,完成基于序列降維的長序列高效查詢。
本發(fā)明提出基于序列嵌入的長序列降維方法,通過構(gòu)造一棵序列嵌入樹,把長序列從有序的序列空間轉(zhuǎn)換到了無序的多集集合空間。并根據(jù)嵌入樹構(gòu)造序列降維所需的各個多集主成份,并提出了主成份間距離計算的收斂性質(zhì)?;谛蛄薪稻S基礎(chǔ)上構(gòu)造的索引結(jié)構(gòu)和近似性查詢算法,可以高效的完成長序列的近似性計算問題。
長序列數(shù)據(jù)的廣泛存在和基于長序列數(shù)據(jù)近似查詢的廣泛應(yīng)用,為本專利提供了很廣闊的應(yīng)用前景和市場空間。目前,隨著基因技術(shù)和互聯(lián)網(wǎng)技術(shù)的快速發(fā)展,都迫切需要解決長序列數(shù)據(jù)的近似查詢問題,如從海量的互聯(lián)網(wǎng)文本數(shù)據(jù)中通過相似性搜索找到查找的目標(biāo),從大規(guī)?;驍?shù)據(jù)中對基因片段進(jìn)行的相似性查詢與分析等。本發(fā)明在這些新興高產(chǎn)值領(lǐng)域中的應(yīng)用,不僅能解決目前遇到的相似性查詢性能瓶頸的難題,而且預(yù)見能夠取得明顯的經(jīng)濟(jì)效益和社會效益。
圖1為本發(fā)明的長序列嵌入過程圖(嵌入樹); 圖2為本發(fā)明的索引結(jié)構(gòu)圖; 圖3為本發(fā)明的索引樹構(gòu)造過程示意圖; 圖4為本發(fā)明的查詢過程示意圖; 圖5(a)、(b)為本發(fā)明的基于距離雙邊界的查詢過濾圖; 圖6為本發(fā)明的處理過程流程圖。
下面結(jié)合附圖和實施例對本發(fā)明進(jìn)一步說明。
具體實施例方式 本發(fā)明是針對當(dāng)前長序列數(shù)據(jù)近似性查詢效率低下的瓶頸問題而提出的一種解決長序列數(shù)據(jù)之間相似性度量的序列數(shù)據(jù)降維方法,它是基于序列嵌入的原理把長序列從有序的序列空間轉(zhuǎn)換到多集表示的集合空間,并利用所提出的多集主成份距離收斂性原理,給出了序列降維的方法。基于長序列降維原理基礎(chǔ)上,定義了索引結(jié)構(gòu),并給出了高效的近似性查詢算法。
本發(fā)明方法,首先利用序列嵌入技術(shù),把一個輸入的長序列數(shù)據(jù)轉(zhuǎn)化為一棵序列嵌入樹(Sequence Embedding Tree);然后從序列嵌入樹中,從每一層抽取出由字符序列所組成的字符多集集合,并利用所提出的距離收斂性質(zhì),構(gòu)造多集空間所對應(yīng)的主成份;接下來在所提出的多集主成份和距離收斂性質(zhì)的基礎(chǔ)上,構(gòu)造一個與多集主成份對應(yīng)的索引結(jié)構(gòu);最后基于所提出索引結(jié)構(gòu)基礎(chǔ)上,提出序列距離的雙邊界(距離上界和下界)原理,并提出相應(yīng)的近似性查詢算法,從而實現(xiàn)了基于序列降維的長序列高效查詢。
本發(fā)明所述的序列嵌入技術(shù)與序列嵌入樹,結(jié)合圖1為例描述如下對于一個序列S=cabagehcadbba,標(biāo)記為ET1(S),通過一次迭代可以被分解為六個塊,每個塊由2到3個字符組成,標(biāo)記為ET1(S)[cs,ce],cs和ce分別表示該塊的開始和結(jié)束字符。每個塊ET1(S)[cs,ce]可以通過一個一對一的Karp-Miller哈希函數(shù)映射為一個元素。因此,在ET1(S)中所有塊經(jīng)哈希映射所得到的元素所組成的序列得到一個新的序列,標(biāo)記為ET2(S)。例如,塊ET1(S)[ca]可以通過哈希函數(shù)映射為單個元素k,所有ET1(S)中的元素通過哈希函數(shù)映射可以得到新的序列ET2(S)=komkna。利用同樣的原理,重復(fù)上述過程,可以得到圖1所示的序列嵌入樹。
基于嵌入樹的基礎(chǔ)上,可以得到相應(yīng)的多集集合和相應(yīng)的用于序列降維的多集主成份,描述如下對于給定的一個序列ET(S),在對應(yīng)的序列嵌入樹中的所有字符組成一個多集集合,標(biāo)記為T(S)。序列嵌入樹中第i層序列ETi(S)所組成的多集標(biāo)記為Ti(S)。因此,對于圖1中的序列嵌入樹所對應(yīng)的嵌入子序列和多集可表示為ET(S)={ET1(S),ET2(S),ET3(S),ET4(S)}={{cabagehcadbba},{komkno},{pqr},{z}},T(S)={T1(S),T2(S),T3(S),T4(S)}={{a4,b3,c2,d1,e1,g1,h1},{k2,m1,n1,o2},{p1,q1,r1},{z1}}。其中a4表示該集合中包含4個元素a,序列嵌入過程的復(fù)雜性是線性的。
基于多集的序列距離收斂性質(zhì)定義如下對于任意給定的兩個序列S1和S2,和任意兩個整數(shù)i和j,i≤j,滿足如下性質(zhì) 其中, 基于多集距離收斂性質(zhì)的基礎(chǔ)上,可以構(gòu)造出支持序列近似性查詢的索引結(jié)構(gòu)SEM-tree,如圖2所示。SEM-tree結(jié)構(gòu)描述如下SEM-tree是一個多層多節(jié)點的樹形結(jié)構(gòu),每一層的每個索引節(jié)點采用相應(yīng)的多集表示。越靠近根節(jié)點的索引節(jié)點對應(yīng)的多集越小,靠近葉節(jié)點的索引節(jié)點對應(yīng)的多集越大。也就是說索引中第i層索引節(jié)點對應(yīng)的多集為Ti(S)。葉節(jié)點對應(yīng)相應(yīng)的序列S。SEM-tree可以整個序列空間劃分成為若干小的聚類空間,然后隨著索引向下遞歸進(jìn)行,基于多集距離收斂性質(zhì)的基礎(chǔ)上,查找的索引空間越來越來,直至在葉節(jié)點找到所需的序列。
SEM-tree的構(gòu)造過程如圖3所示,描述如下 表1長序列數(shù)據(jù)集SD 步驟30把所有需要處理的序列集合SD(如表1所示),利用前述的序列嵌入技術(shù)轉(zhuǎn)換成為多集集合MS,并初始化SEM-tree的根節(jié)點root; 步驟31、如果當(dāng)前多集空間的規(guī)??梢员灰粋€頁塊裝下,則可以直接把該多集集合作為葉節(jié)點進(jìn)行處理;否則把生成一個新的內(nèi)部節(jié)點,并用聚類算法基于當(dāng)前多集基礎(chǔ)上進(jìn)行聚類,把多集空間合理的劃分為若干個小的子空間; 步驟32、對于每個經(jīng)聚類得到的多集子空間,選取子空間中一個多集作為代表,作為該子類索引節(jié)點的索引鍵,以該聚類所對應(yīng)的半徑作為該索引空間的索引半徑; 步驟33對于每個索引子集合,重復(fù)上述步驟,直至SEM-tree生成。
如圖4所示,在所構(gòu)造的索引結(jié)構(gòu)SEM-tree的基礎(chǔ)上,對于給定的查詢序列q和查詢半徑r,序列查詢的目的是在序列集合當(dāng)中找到所有的距離序列q的距離小于r的序列的集合。查詢過程可描述如下 步驟40首先,利用嵌入技術(shù)把序列q轉(zhuǎn)化為具有多個主成份的多集集合; 步驟41、對于SEM-tree中當(dāng)前訪問的節(jié)點(假設(shè)為N)中的任意以cv(以多集主分表示)為中心點標(biāo)識的子類而言,如果cv與Ti(q)之間距離的下界大于給定查詢半徑r,則該cv被過濾掉,如圖5(a)所示; 步驟42、否則,如果cv與Ti(q)之間距離的上界小于等于給定查詢半徑r,則以cv為根的子樹所對應(yīng)的所有索引序列,都屬于最終查詢的結(jié)果,無序?qū)υ撟訕溥M(jìn)行進(jìn)一步的遞歸嵌套查詢,如圖5(b)所示; 步驟43、如果上述兩個條件都沒有滿足,則需要對該序列遞歸嵌套查詢,在以cv為根的子樹的內(nèi)部節(jié)點,繼續(xù)利用上述方法進(jìn)行遞歸查詢; 步驟44如果當(dāng)前訪問的節(jié)點是葉子節(jié)點,則直接進(jìn)行距離計算,確定該葉節(jié)點所對應(yīng)的序列是否應(yīng)該歸屬到最終的查詢結(jié)果當(dāng)中。
在步驟41和步驟42中所述的雙邊界采用如下的方法進(jìn)行確定 根據(jù)序列嵌入理論,對于給定序列s1和s2,它們之間的距離滿足如下關(guān)系 其中,n=max(|s1|,|s2|),m=max(card(T(s1)),card(T(s2))) 因此,對于給定的序列s1和s2,它們之間的真實距離
可以在索引樹的第i層節(jié)點預(yù)測其距離的上界和下界,近似結(jié)果如下 圖6給出了本發(fā)明的處理流程,描述如下接受輸入的長序列數(shù)據(jù)集,基于序列嵌入技術(shù)進(jìn)行序列嵌入處理,得到以多集形式表述的多集集合;然后在此基礎(chǔ)上提取多集主成份,形成具有降維特性的序列距離收斂性質(zhì);在此基礎(chǔ)上,構(gòu)造索引結(jié)構(gòu),在用戶的提供的參數(shù)基礎(chǔ)上,執(zhí)行近似性查詢,輸出最終的查詢結(jié)果。
本發(fā)明用于對任意序列集合(尤其適用于長序列集合)進(jìn)行高效的近似性查詢,給出了用于長序列距離相似性度量的高效面向序列數(shù)據(jù)的高效降維方法,該方法的特征是把距離計算從有序的、代價昂貴的序列空間轉(zhuǎn)化到了無序的、空間有效的、計算代價很低的集合空間,而且在以多集集合表示的主成份之間,發(fā)現(xiàn)了支持降維特征的距離計算收斂性質(zhì)?;谠摻稻S技術(shù)的基礎(chǔ)上,發(fā)明了高效的索引結(jié)構(gòu)和基于高效雙邊界過濾的查詢方法,從而達(dá)到了序列數(shù)據(jù)高效近似性查詢的目的。
最后所應(yīng)說明的是以上實施例僅用于說明而非限制本發(fā)明的技術(shù)方案,盡管參照上述實施例對本發(fā)明進(jìn)行了詳細(xì)說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解依然可以對本發(fā)明進(jìn)行修改或者等同替換,而不脫離本發(fā)明的精神和范圍的任何修改或局部替換,其均應(yīng)涵蓋在本發(fā)明的權(quán)利要求范圍當(dāng)中。
權(quán)利要求
1.一種面向近似性查詢的長序列數(shù)據(jù)降維方法,其特征是包括如下步驟
步驟一、利用序列嵌入技術(shù),把一個輸入的長序列數(shù)據(jù)轉(zhuǎn)化為一棵序列嵌入樹;
步驟二、從序列嵌入樹中,從每一層抽取出由字符序列所組成的字符多集集合,并利用所提出的距離收斂性質(zhì),構(gòu)造多集空間所對應(yīng)的主成份;
步驟三、在所提出的多集主成份和距離收斂性質(zhì)的基礎(chǔ)上,構(gòu)造一個與多集主成份對應(yīng)的索引結(jié)構(gòu);
步驟四、基于所提出索引結(jié)構(gòu)基礎(chǔ)上,提出序列距離的雙邊界距離上界和下界原理,并提出相應(yīng)的近似性查詢算法,完成基于序列降維的長序列高效查詢。
2.根據(jù)權(quán)利要求1所述的一種面向近似性查詢的長序列數(shù)據(jù)降維方法,其特征是對于一個序列S,標(biāo)記為ET1(S),通過一次迭代可以被分解為6個塊,每個塊由2到3個字符組成,標(biāo)記為ET1(S)[cs,ce],cs和ce分別表示該塊的開始和結(jié)束字符;每個塊ET1(S)[cs,ce]通過一個一對一的Karp-Miller哈希函數(shù)映射為一個元素;因此,在ET1(S)中所有塊經(jīng)哈希映射所得到的元素所組成的序列得到一個新的序列,標(biāo)記為ET2(S);利用同樣的原理,重復(fù)上述過程,可以得到最終的序列嵌入樹。
3.根據(jù)權(quán)利要求1所述的一種面向近似性查詢的長序列數(shù)據(jù)降維方法,其特征是所述步驟二,包括如下步驟
步驟21、把序列嵌入樹中的所有字符組成一個多集集合,標(biāo)記為T(S);
步驟22、把多集集合T(S)按照其元素在嵌入樹中所述的層次,分拆成為h(h為嵌入樹的高度)個子多集集合Ti(S),Ti(S)中的每個元素與嵌入樹中第i層的每個元素一一對應(yīng),表示為{Ti(S)|Ti(S)T(S),i≤h};每個Ti(S)構(gòu)成序列S的第i個主成份;
步驟23、利用得到的多集主成份,構(gòu)造出支持序列降維的距離收斂性質(zhì)。
4.根據(jù)權(quán)利要求3所述的一種面向近似性查詢的長序列數(shù)據(jù)降維方法,其特征是所述步驟23,包括
基于多集主成份的距離收斂性質(zhì)定義如下對于任意給定的兩個序列S1和S2,和任意兩個整數(shù)i和j,i≤j,滿足如下性質(zhì)
其中,
5.根據(jù)權(quán)利要求1所述的一種面向近似性查詢的長序列數(shù)據(jù)降維方法,其特征是所述步驟三,包括如下步驟
步驟31把所要處理的序列集合SD利用序列嵌入技術(shù)轉(zhuǎn)換成為具有多個主成份的多集集合MS,并初始化SEM-tree的根節(jié)點root;
步驟32、如果當(dāng)前多集空間的規(guī)??梢员灰粋€頁塊裝下,則可以直接把該多集集合作為葉節(jié)點進(jìn)行處理;否則把生成一個新的內(nèi)部節(jié)點,并用聚類算法基于當(dāng)前多集基礎(chǔ)上進(jìn)行聚類,把多集空間合理的劃分為若干個小的子空間;
步驟33、對于每個經(jīng)聚類得到的多集子空間,選取子空間中一個多集作為代表,作為該子類索引節(jié)點的索引鍵,以該聚類所對應(yīng)的半徑作為該索引空間的索引半徑;
步驟34對于每個索引子集合,重復(fù)上述步驟,直至SEM-tree生成。
6.根據(jù)權(quán)利要求1所述的一種面向近似性查詢的長序列數(shù)據(jù)降維方法,其特征是所述步驟四,包括如下步驟
步驟41對于給定的查詢序列q和查詢半徑r,序列查詢的目的是在序列集合當(dāng)中找到所有的距離序列q的距離小于r的序列的集合;首先,利用嵌入技術(shù)把序列q轉(zhuǎn)化為具有多個主成份的多集集合;
步驟42、對于SEM-tree中當(dāng)前訪問的節(jié)點(假設(shè)為N)中的任意以cv(以多集主分表示)為中心點標(biāo)識的子類而言,如果cv與Ti(q)之間距離的下界大于給定查詢半徑r,則該cv被過濾掉;
步驟43、如果cv與Ti(q)之間距離的上界小于等于給定查詢半徑r,則以cv為根的子樹所對應(yīng)的所有索引序列,都屬于最終查詢的結(jié)果,無序?qū)υ撟訕溥M(jìn)行進(jìn)一步的遞歸嵌套查詢;
步驟44、如果上述兩個條件都沒有滿足,則需要對該序列遞歸嵌套查詢,在以cv為根的子樹的內(nèi)部節(jié)點,繼續(xù)利用上述方法進(jìn)行遞歸查詢;
步驟45如果當(dāng)前訪問的節(jié)點是葉子節(jié)點,則直接進(jìn)行距離計算,確定該葉節(jié)點所對應(yīng)的序列是否應(yīng)該歸屬到最終的查詢結(jié)果當(dāng)中。
7.根據(jù)權(quán)利要求6所述的一種面向近似性查詢的長序列數(shù)據(jù)降維方法,其特征是所述步驟42和步驟43,包括如下步驟根據(jù)序列嵌入理論,對于給定序列S1和S2,它們之間的距離滿足如下關(guān)系
其中,n=max(|S1|,|S2|),m=max(card(T(S1)),card(T(S2)));
因此,對于給定的序列S1和S2,它們之間的真實距離
可以在索引樹的第i層節(jié)點預(yù)測其距離的上界和下界,結(jié)果如下
全文摘要
一種面向近似性查詢的長序列數(shù)據(jù)降維方法,包括利用序列嵌入技術(shù)把序列數(shù)據(jù)轉(zhuǎn)化為嵌入樹,并抽取出多集集合;根據(jù)嵌入樹和多集集合提取出相應(yīng)的多集主成份,并在此基礎(chǔ)上提出了基于距離收斂的序列數(shù)據(jù)降維原理;基于降維性質(zhì)的基礎(chǔ)上,構(gòu)造出了面向序列近似查詢的索引結(jié)構(gòu),SEM-tree,并基于該索引結(jié)構(gòu)基礎(chǔ)上,利用序列距離雙邊界(最大上界和最小下界)原理,提出了高效的面向長序列數(shù)據(jù)的近似性查詢方法。本發(fā)明可以廣泛的應(yīng)用于面向長序列數(shù)據(jù)的近似查詢應(yīng)用中,如從海量的互聯(lián)網(wǎng)文本數(shù)據(jù)中通過相似性搜索找到查找的目標(biāo),從大規(guī)?;驍?shù)據(jù)中對基因片段進(jìn)行的相似性查詢與分析等。本發(fā)明而且預(yù)見能夠取得明顯的經(jīng)濟(jì)效益和社會效益。
文檔編號G06F17/30GK101196921SQ20071030398
公開日2008年6月11日 申請日期2007年12月24日 優(yōu)先權(quán)日2007年12月24日
發(fā)明者宋國杰, 謝昆青 申請人:北京大學(xué)