本發(fā)明主要涉及到信息網(wǎng)絡中數(shù)據(jù)處理領(lǐng)域,特指一種大規(guī)模信息網(wǎng)絡中數(shù)據(jù)語義信息的處理方法,特指一種對任意維度、任意類型的語義信息進行規(guī)格化處理的方法。
背景技術(shù):隨著信息技術(shù)的發(fā)展及計算機網(wǎng)絡的普及,信息在社會中發(fā)揮著越來越大的作用,深刻影響著人們的生產(chǎn)、生活和學習方式。隨著時代的進步,網(wǎng)絡中的信息資源呈指數(shù)增長且日趨復雜化,變現(xiàn)形式各異;同時,用戶對信息資源的需求也在不斷提高,因此如何從海量的網(wǎng)絡信息資源中獲取用戶想要的結(jié)果變得更加困難。傳統(tǒng)基于關(guān)鍵字的信息管理和搜索方法根據(jù)數(shù)據(jù)信息的表現(xiàn)形式(語法層次)進行數(shù)據(jù)組織和查詢,不能滿足用戶智能的信息需求。因此有必要從語義層次上(提取網(wǎng)絡數(shù)據(jù)信息的關(guān)鍵屬性)分析管理網(wǎng)絡中的數(shù)據(jù),通過比較、關(guān)聯(lián)及聚合數(shù)據(jù)信息間語義上的相關(guān)性,高效實現(xiàn)大規(guī)模數(shù)據(jù)信息智能管理和發(fā)現(xiàn)。信息網(wǎng)絡中存在豐富的數(shù)據(jù)信息,但是由于人們?nèi)狈τ行У臄?shù)據(jù)組織管理方法,造成了“數(shù)據(jù)豐富而信息缺乏”的狀況。信息網(wǎng)絡中數(shù)據(jù)對象包含的信息量越來越豐富,可能包含幾百甚至成千上萬個屬性。為了在海量的網(wǎng)絡數(shù)據(jù)中組織和發(fā)現(xiàn)用戶需要的信息,傳統(tǒng)方法將數(shù)據(jù)對象表示成高維屬性空間中的點或向量,從而將網(wǎng)絡中的數(shù)據(jù)對象集用高維數(shù)據(jù)集合來表示。但網(wǎng)絡中大量的高維數(shù)據(jù)也導致了“維度災難”(cursesofdimensionality)問題的出現(xiàn),“維度災難”指在數(shù)據(jù)分析中遇到的由于變量(屬性)過多而引起的所有問題。這些問題主要表現(xiàn)以下幾個方面:1.高維空間數(shù)據(jù)分布非常稀疏,很難對有相似語義的數(shù)據(jù)信息進行有效的組織管理,在發(fā)現(xiàn)有相似語義的數(shù)據(jù)信息時,需要訪問較大的空間區(qū)域;2.在高維空間中一個給定數(shù)據(jù)點到其最近鄰和最遠鄰在很多情況下幾乎是等距的,不能高效地組織和發(fā)現(xiàn)與該數(shù)據(jù)點語義相近的數(shù)據(jù)信息;3.隨著維數(shù)的升高,高維數(shù)據(jù)空間中數(shù)據(jù)索引節(jié)點之間的重疊度隨之增大,當對給定數(shù)據(jù)信息進行語義搜索查詢時,重疊度的加大增加了查詢訪問路徑,從而增加了查詢代價,當維數(shù)增加到一定數(shù)量時,采用索引結(jié)構(gòu)反而不如順序掃描。近年來,圍繞著高維數(shù)據(jù)帶來的問題,學者們提出了不同的解決方法,試圖在特定的應用背景下解決“維度災難”的問題,總結(jié)起來有以下幾種:1.基于過濾的方法?;谶^濾的方法是指通過過濾一些向量以便信息檢索過程中只需訪問較少部分的向量,可以通過多種途徑實現(xiàn),聚類、分類及潛在語義分析(LSI)是常用的手段。三角不等式d(i,q)≥|d(i,k)-d(q,k)|也是一個有效的過濾方法,其中d為距離度量公式,q和k分別代表特征向量,利用該公式進行特征向量過濾。VA-File及其一系列變形是相對于近似最近鄰搜索的一種精確搜索方法,例如:中國專利申請?zhí)枮?3129687.4、名稱為“一種高維矢量數(shù) 據(jù)快速相似檢索方法”記載的技術(shù)方案也屬于基于過濾的方法。這類方法將空間劃分為2b個超立方體形狀的單元,b是用戶指定的位串長度,用來近似估計原始特征向量,為每一個單元分配一個惟一位串值,并用這個位串近似表示落在該單元內(nèi)部的原始特征向量。當對點進行搜索時,先對近似文件進行順序掃描,需要時再通過一些查找項對精確文件進行查找。這種近似文件的表示比原始的向量文件小得多,存儲耗費也小得多,在高維情況其性能超過了順序掃描和絕大多數(shù)多維索引方法,但是存在兩個主要缺陷:隨著維數(shù)的增加,需要更多的位來近似表示特征向量;對于非均勻分布的數(shù)據(jù),該方法的性能急劇下降。2.對數(shù)據(jù)空間進行劃分的索引方法。此類方法通過劃分數(shù)據(jù)空間、根據(jù)劃分對數(shù)據(jù)進行聚類并利用劃分對搜索空間進行剪枝以提高查詢效率。這類方法根據(jù)數(shù)據(jù)空間的劃分不同可分為兩類,一類是K-D樹演化而來的,包括K-D樹、K-D-B樹及LSDh樹等;一類則是由R樹演化而來,包括R樹、R*樹、SS樹及X樹等。前類使用空間劃分方法,沿著預先定義的超平面來劃分數(shù)據(jù)空間,而不考慮數(shù)據(jù)的分布,得到的區(qū)域相互分離的;后者使用數(shù)據(jù)劃分方法,根據(jù)數(shù)據(jù)的分布對數(shù)據(jù)空間進行劃分,這樣得到的區(qū)域會產(chǎn)生一定的重疊。此類方法在處理低維數(shù)據(jù)時效果很好,但由于高維空間中數(shù)據(jù)分布的稀疏性,在處理高維數(shù)據(jù)時其性能甚至差于順序掃描。3.多重空間填充曲線。多重空間填充曲線方法將d維的數(shù)據(jù)點映射到實數(shù)軸上,從而將d維數(shù)據(jù)向量進行排序,降低了需要訪問的向量數(shù),這種從Rd到R1的映射稱為空間填充曲線(Space-FillingCurve,SFC)。在檢索數(shù)據(jù)時,查詢向量q先通過空間填充曲線映射到實數(shù)軸,然后通過二分查找或搜索樹找到q的近鄰點。然而,該映射的本質(zhì)決定了某些在多維空間中的近鄰點在實數(shù)軸上會互相遠離,從而會給檢索結(jié)果帶來較大的錯誤率;為了提高檢索精度,需要引進多個映射并擴大在實數(shù)軸上的查詢范圍,但這樣又會不可避免的降低近鄰檢索的效率。4.降維方法。降維的方法是解決維度災難的一個最直接的途徑,其主要思想是構(gòu)造降維映射,獲得高維數(shù)據(jù)低維表示的方法?;具^程是先利用單值分解(SingularValueDecomposition,SVD)、離散小波變換(DiscreteWaveletTransform,DWT)、離散余弦變換(DiscreteCosineTransform,DCT)等方法對數(shù)據(jù)集進行降維處理,然后利用傳統(tǒng)的多維索引方法對降維后的數(shù)據(jù)建立索引。iDistance方法是一種典型的降維方法,將高維數(shù)據(jù)空間分割成若干個子空間,再為每個子空間選取一個參考點,然后根據(jù)子空間里的每個點與參考點之間的距離,將各個點降維映射到一維空間上,再在一維空間上進行數(shù)據(jù)檢索操作。降維方法能夠數(shù)據(jù)對象從不易管理的高維空間映射到低維空間,方便用戶快速查找到想要的信息,提高了數(shù)據(jù)檢索效率,是解決“維災”問題的有效手段之一。例如:中國專利申請 號為201110291515.8、名稱為“一種基于街區(qū)距離的高維向量快速檢索算法”記載的技術(shù)方案提出了一種基于街區(qū)距離的高維到一維轉(zhuǎn)換的索引結(jié)構(gòu)BlockB-tree,通過高維到一維轉(zhuǎn)換后key值的過濾,能夠加快高維向量的相似檢索速度;中國專利申請?zhí)枮?01010167504.4、名稱為“一種用于聚類的基于非負矩陣分解的降維方法”記載的技術(shù)方案提供了一種不增加原油NNMF復雜度而收斂速度快,計算時間省的非負矩陣降維方法;中國專利申請?zhí)枮?01110308490.8、名稱為“一種用于高維數(shù)據(jù)聚類的半監(jiān)督降維方法”記載的技術(shù)方案提供了一種用于高維數(shù)據(jù)聚類的半監(jiān)督降維方法,能夠改善聚類分析的效果,提高聚類分析的判別能力;中國專利申請名稱為“一種基于圖像數(shù)據(jù)結(jié)構(gòu)保護的嵌入式降維方法”記載的技術(shù)方案通過將原始多維數(shù)據(jù)集內(nèi)各向量根據(jù)兩兩向量對之間的距離關(guān)系進行相似子集與非相似子集的劃分,針對不同的子集做不同的嵌入操作達到距離轉(zhuǎn)換的目的,再對新的距離矩陣做投影達到降維目的。以上所有現(xiàn)有降維方法的基礎都是建立在數(shù)據(jù)屬性和維數(shù)都確定或者相同的基礎之上的。但是,現(xiàn)在信息網(wǎng)絡中的數(shù)據(jù)信息成分復雜,種類繁多,變現(xiàn)為數(shù)據(jù)類型及維度的不確定性,如僵尸網(wǎng)絡、病毒、蠕蟲、木馬等惡意軟件不斷演化,其表現(xiàn)形式及語義屬性不斷改變,很難把它們都統(tǒng)一抽象成固定維數(shù)、固定類型的向量;而且網(wǎng)絡數(shù)據(jù)向量在高維屬性空間中大都分布不均勻,無法對數(shù)據(jù)向量聚集區(qū)進行有效地劃分,在這種情況下現(xiàn)有降維方法的執(zhí)行效率不高。
技術(shù)實現(xiàn)要素:本發(fā)明要解決的技術(shù)問題就在于:針對現(xiàn)有技術(shù)存在的技術(shù)問題,本發(fā)明提供一種處理方法,原理簡單、操作簡便、易實現(xiàn)和推廣、能夠解決語義信息維災問題的大規(guī)模信息網(wǎng)絡中數(shù)據(jù)語義信息的處理方法。為解決上述技術(shù)問題,本發(fā)明采用以下技術(shù)方案:一種大規(guī)模信息網(wǎng)絡中數(shù)據(jù)語義信息的處理方法,其步驟為:(1)高維數(shù)據(jù)規(guī)格化:利用哈希函數(shù)將網(wǎng)絡中不同種類的高維數(shù)據(jù)A用相同的屬性序列表示,將不同屬性的數(shù)據(jù)對象統(tǒng)一映射到相同結(jié)構(gòu)的屬性數(shù)組B中,高維數(shù)據(jù)對象轉(zhuǎn)化為固定維空間中的點;(2)數(shù)據(jù)分區(qū):對多維數(shù)據(jù)空間中隨機分布的高維數(shù)據(jù)進行數(shù)據(jù)分區(qū),將高維數(shù)據(jù)分成多個互不相交的數(shù)據(jù)聚集區(qū),保證每個聚集區(qū)內(nèi)的數(shù)據(jù)盡量趨于均勻分布;(3)數(shù)據(jù)區(qū)歸整劃分:首先將每個數(shù)據(jù)聚集區(qū)歸整為高維數(shù)據(jù)空間內(nèi)的多維超立方體,并為每一個超立方體確定一個立方體數(shù)j;然后以超立方體中心為頂點,數(shù)據(jù)聚集區(qū)的(d-1)維超平面作為基,將每個d維數(shù)據(jù)聚集區(qū)(超立方體)劃分為2d個金字塔,并為每個金字塔 賦予一個金字塔值i;(4)數(shù)據(jù)映射:將每個金字塔分成與基平行的幾個子劃分,每一個子劃分與一個B+樹數(shù)據(jù)頁相對應,然后根據(jù)高維數(shù)據(jù)點到金字塔基的距離將數(shù)據(jù)聚集區(qū)內(nèi)的高維數(shù)據(jù)映射為一維數(shù)值;(5)數(shù)據(jù)處理:在一維數(shù)據(jù)空間內(nèi)為每一個多維超立方體劃分一個區(qū)間,保證各區(qū)間互不相交,根據(jù)高維數(shù)據(jù)點所在的立方體數(shù)、金字塔值及其到基的距離將高維數(shù)據(jù)映射到一維空間內(nèi),并利用B+樹創(chuàng)建索引;(6)數(shù)據(jù)搜索:根據(jù)查詢點和查詢范圍判斷是否與多維數(shù)據(jù)空間中的超立方體相交,若相交則計算相交邊界值的一維索引關(guān)鍵字,根據(jù)索引關(guān)鍵字確定高維數(shù)據(jù)空間中的精確搜索范圍,然后根據(jù)用戶需求利用相似搜索方法求得結(jié)果數(shù)據(jù)信息并輸出結(jié)果。作為本發(fā)明的進一步改進:所述步驟(1)的具體步驟如下:(1.1)將網(wǎng)絡中高維數(shù)據(jù)對象的屬性用一個序列表示,如A={A1,A2,…,An},Ai.attr(0<i<n)指的是屬性的名稱,Ai.val為每個屬性對應類型的值,由于數(shù)據(jù)對象有其獨特的屬性種類及屬性值,不同數(shù)據(jù)對象的屬性序列不一致,映射到不同的屬性空間中;(1.2)定義哈希函數(shù)iHash1(Ai.attr),根據(jù)數(shù)據(jù)對象屬性的名稱把屬性集合A映射到一個有M個單元的歸一化屬性數(shù)組B中,返回的是A中每個屬性單元在B中的具體位置;(1.3)定義哈希函數(shù)iHash2(Bi,Ai.val),將A中每個屬性的值都哈希成N位的比特流,存放于該屬性在B中的位置;形式化表示為其中B是一個由M個單元構(gòu)成的數(shù)組,每個單元大小都是N位,值代表著A中的屬性單元。作為本發(fā)明的進一步改進:所述步驟(2)的具體步驟如下:(2.1)先隨機的選取K個對象作為數(shù)據(jù)分區(qū)的中心;(2.2)將數(shù)據(jù)空間中剩余的數(shù)據(jù)對象分配到離其最近的中心點;(2.3)在每個數(shù)據(jù)分區(qū)內(nèi)根據(jù)數(shù)據(jù)對象分布計算出新的數(shù)據(jù)區(qū)中心點;(2.4)重復以上過程,直到每個數(shù)據(jù)區(qū)中心點不再發(fā)生變化。作為本發(fā)明的進一步改進:所述步驟(3)的具體步驟如下:(3.1)首先將每個數(shù)據(jù)分區(qū)歸整為高維數(shù)據(jù)空間內(nèi)的多維超立方體,并為每一個超立方體確定一個立方體數(shù)j;(3.2)對多維超立方體進行歸一化處理,即每一維的邊長為1,超立方體的中心點則表示為(0.5,0.5,…,0.5);(3.3)以超立方體中心為頂點,數(shù)據(jù)聚集區(qū)的(d-1)維超平面作為基,將每個d維數(shù)據(jù)聚集區(qū)劃分為2d個金字塔;(3.4)為每一個金字塔確定一個金字塔值pi,則數(shù)據(jù)分區(qū)內(nèi)的每一個高維數(shù)據(jù)點都對應有惟一的一個金字塔數(shù),如果給定數(shù)據(jù)點v位于金字塔pi內(nèi),表明點v的金字塔數(shù)為i;確定給定點v的金字塔值pi的方法如下:只需要確定點v的維數(shù)i具有到中心點最大偏移度∣0.5-vi∣,則點v的金字塔數(shù)為i或者i+d;令點v的所有維坐標值中具有到中心點最大偏移度的那個坐標的維數(shù)為lmax,當點v的第lmax維坐標值小于0.5時,點v的金字塔數(shù)i等于lmax,當點v的第lmax維坐標值大于等于0.5時,點v的金字塔數(shù)等于lmax+d。作為本發(fā)明的進一步改進:所述步驟(4)的具體步驟如下:(4.1)將每一個金字塔分成與基平行的幾個切片,每一個切片與一個B+樹的數(shù)據(jù)頁相對應;(4.2)定義金字塔中每一個多維數(shù)據(jù)點v的金字塔高度hv=∣0.5-hv’∣,其中hv’是數(shù)據(jù)點v到所屬金字塔基平面的垂直距離;(4.3)根據(jù)一個多維數(shù)據(jù)點的金字塔數(shù)和金字塔高度,將一個多維數(shù)據(jù)點v映射為一個一維數(shù)值(i+hv),稱(i+hv)為點v的金字塔值。作為本發(fā)明的進一步改進:所述步驟(5)的具體步驟如下:(5.1)在一維數(shù)據(jù)空間內(nèi)為每一個高維立方體劃分一個區(qū)間,保證各區(qū)間互不相交;定義一個范圍常量c,c是一個足夠大的常數(shù),保證不同高維立方體內(nèi)的數(shù)據(jù)對象映射到一維數(shù)軸不同的區(qū)間范圍內(nèi);(5.2)根據(jù)高維數(shù)據(jù)點所在的立方體數(shù)、金字塔值及其到基平面的距離創(chuàng)建高維數(shù)據(jù)對象的索引關(guān)鍵字,將高維數(shù)據(jù)映射到一維空間內(nèi);(5.3)根據(jù)高維數(shù)據(jù)對象的索引關(guān)鍵字來建立B+樹,高維對象原始信息保存在B+樹的葉子節(jié)點的指針桶中;高維數(shù)據(jù)空間中每個超立方體被劃分成若干個金字塔,每個金字塔進一步劃分為切片,每個切片對應一個B+樹的數(shù)據(jù)頁,切片中的數(shù)據(jù)對象映射到數(shù)據(jù)頁的最大值和最小值之間,同一切片中數(shù)據(jù)在相同的數(shù)據(jù)頁上。作為本發(fā)明的進一步改進:所述步驟(6)的詳細步驟如下:(6.1)根據(jù)用戶需求,利用查詢點及查詢半徑在多維數(shù)據(jù)空間內(nèi)求得查詢范圍;(6.2)判斷查詢范圍與數(shù)據(jù)空間內(nèi)的各個數(shù)據(jù)聚集區(qū)是否相交,如果相交,進行下一步,否則失敗返回;(6.3)計算相交邊界值的一維索引關(guān)鍵字,在B+樹種查找邊界值的索引關(guān)鍵字,進而獲得一個高維數(shù)據(jù)點的集合,得到精確搜索范圍;(6.4)根據(jù)用戶需求,在精確搜索范圍內(nèi)利用點查詢、范圍查詢、最近鄰查詢或k-近鄰查詢搜索方法進行搜索,找到結(jié)果數(shù)據(jù)信息并輸出。與現(xiàn)有技術(shù)相比,本發(fā)明的優(yōu)點在于:本發(fā)明的大規(guī)模信息網(wǎng)絡中數(shù)據(jù)語義信息的處理方法,原理簡單、操作簡便、易實現(xiàn)和推廣、能夠解決語義信息的維災問題;本發(fā)明通過將任意維度、任意類型的復雜語義描述信息規(guī)格化到一個固定維度無結(jié)構(gòu)化的語義向量,解決了語義向量空間的爆炸問題;且進一步通過數(shù)據(jù)聚類、規(guī)整、降維的數(shù)據(jù)管理,實現(xiàn)了智能高效的數(shù)據(jù)組織和發(fā)現(xiàn)。附圖說明圖1是本發(fā)明的流程示意圖。圖2是本發(fā)明在具體應用實例中的詳細流程示意圖。圖3是本發(fā)明中進行高維數(shù)據(jù)規(guī)格化處理的原理示意圖。圖4是本發(fā)明中進行高維數(shù)據(jù)分區(qū)歸整處理的原理示意圖。圖5是本發(fā)明中進行金字塔劃分處理的原理示意圖。圖6是本發(fā)明中進行高維數(shù)據(jù)從高維空間映射到一維空間的原理示意圖。圖7是本發(fā)明中處理點查詢的原理示意圖。圖8是本發(fā)明中處理范圍查詢的原理示意圖。具體實施方式以下將結(jié)合說明書附圖和具體實施例對本發(fā)明做進一步詳細說明。如圖1所示,本發(fā)明的大規(guī)模信息網(wǎng)絡中數(shù)據(jù)語義信息的處理方法,為一種基于智能編碼iHash(intelligenthash)的高維數(shù)據(jù)處理方法,其具體步驟如下:(1)高維數(shù)據(jù)規(guī)格化:針對現(xiàn)實網(wǎng)絡中數(shù)據(jù)信息種類繁多、數(shù)據(jù)屬性數(shù)量不一致的問題,利用哈希函數(shù)將網(wǎng)絡中不同種類的高維數(shù)據(jù)A用相同的屬性序列表示,將不同屬性的數(shù)據(jù)對象統(tǒng)一映射到相同結(jié)構(gòu)的屬性數(shù)組B中,高維數(shù)據(jù)對象轉(zhuǎn)化為固定維空間中的點。(2)數(shù)據(jù)分區(qū):對多維數(shù)據(jù)空間中隨機分布的高維數(shù)據(jù)進行數(shù)據(jù)分區(qū),將高維數(shù)據(jù)分成多個互不相交的數(shù)據(jù)聚集區(qū),保證每個聚集區(qū)內(nèi)的數(shù)據(jù)盡量趨于均勻分布。(3)數(shù)據(jù)區(qū)歸整劃分:聚類得到的數(shù)據(jù)聚集區(qū)可能形狀不規(guī)則,首先將每個數(shù)據(jù)聚集區(qū)歸整為高維數(shù)據(jù)空間內(nèi)的多維超立方體,并為每一個超立方體確定一個立方體數(shù)j,然后以超立方體中心為頂點,數(shù)據(jù)聚集區(qū)的(d-1)維超平面作為基,將每個d維數(shù)據(jù)聚集區(qū)(超立方體)劃分為2d個金字塔,并為每個金字塔賦予一個金字塔值i。(4)數(shù)據(jù)映射:將每個金字塔分成與基平行的幾個子劃分,每一個子劃分與一個B+樹數(shù)據(jù)頁相對應,然后根據(jù)高維數(shù)據(jù)點到金字塔基的距離將數(shù)據(jù)聚集區(qū)內(nèi)的高維數(shù)據(jù)映射為一維數(shù)值。(5)數(shù)據(jù)處理:在一維數(shù)據(jù)空間內(nèi)為每一個多維超立方體劃分一個區(qū)間,保證各區(qū)間互 不相交,根據(jù)高維數(shù)據(jù)點所在的立方體數(shù)、金字塔值及其到基的距離將高維數(shù)據(jù)映射到一維空間內(nèi),并利用B+樹創(chuàng)建索引。(6)數(shù)據(jù)搜索:首先根據(jù)查詢點和查詢范圍判斷是否與多維數(shù)據(jù)空間中的超立方體相交,若相交,則計算相交邊界值的一維索引關(guān)鍵字,根據(jù)索引關(guān)鍵字確定高維數(shù)據(jù)空間中的精確搜索范圍,然后根據(jù)用戶需求利用相似搜索方法求得結(jié)果數(shù)據(jù)信息并輸出結(jié)果。本實施例中,上述步驟(1)的詳細步驟如下:(1.1)將網(wǎng)絡中高維數(shù)據(jù)對象的屬性用一個序列表示,如A={A1,A2,…,An},Ai.attr(0<i<n)指的是屬性的名稱,Ai.val為每個屬性對應類型的值,由于數(shù)據(jù)對象有其獨特的屬性種類及屬性值,不同數(shù)據(jù)對象的屬性序列不一致,映射到不同的屬性空間中。(1.2)定義哈希函數(shù)iHash1(Ai.attr),根據(jù)數(shù)據(jù)對象屬性的名稱把屬性集合A映射到一個有M個單元的歸一化屬性數(shù)組B中,返回的是A中每個屬性單元在B中的具體位置。這個函數(shù)的主要目的是把不同數(shù)據(jù)對象的屬性都統(tǒng)一映射到數(shù)組B的結(jié)構(gòu)中,把數(shù)據(jù)對象的屬性個數(shù)變成相同的,便于轉(zhuǎn)化為M維的點。在具體實現(xiàn)上,該函數(shù)主要是把屬性名字符串作為輸入,經(jīng)過多次和隨機數(shù)的運算、移位等操作,得出范圍在[0,M-1]內(nèi)的值。函數(shù)結(jié)果是有可能發(fā)生碰撞的,但是可以通過選取適當?shù)腗的大小來降低碰撞率。(1.3)定義哈希函數(shù)iHash2(Bi,Ai.val),將A中每個屬性的值都哈希成N位的比特流,存放于該屬性在B中的位置。形式化表示為其中B是一個由M個單元構(gòu)成的數(shù)組,每個單元大小都是N位,值代表著A中的屬性單元。由于數(shù)據(jù)對象不同,那么它們的屬性值對應的類型和空間大小都可能不相同,所以這個函數(shù)的目的是把每個屬性的值都映射成相同格式的數(shù)據(jù),便于對其進行處理操作。在這個函數(shù)中,我們主要采用的是SHA-1算法,把每個屬性的具體值作為輸入,經(jīng)過加密處理后得出160位的摘要,然后再把摘要處理成N位的值存放到iHash1(A)得出的結(jié)果對應在B中的位置。例如N取值32,那么就可以把得出的摘要劃分成5個部分,然后按位異或處理或者移位相加等操作,得到最終的結(jié)果。本實施例中,上述步驟(2)的詳細步驟如下:(2.1)先隨機的選取K個對象作為數(shù)據(jù)分區(qū)的中心;(2.2)將數(shù)據(jù)空間中剩余的數(shù)據(jù)對象分配到離其最近的中心點;(2.3)在每個數(shù)據(jù)分區(qū)內(nèi)根據(jù)數(shù)據(jù)對象分布計算出新的數(shù)據(jù)區(qū)中心點;(2.4)重復以上過程,直到每個數(shù)據(jù)區(qū)中心點不再發(fā)生變化。本實施例中,上述步驟(3)的詳細步驟如下:(3.1)每個數(shù)據(jù)分區(qū)可能分布不規(guī)則,首先將每個數(shù)據(jù)分區(qū)歸整為高維數(shù)據(jù)空間內(nèi)的多 維超立方體,便于分區(qū)劃分,并為每一個超立方體確定一個立方體數(shù)j;(3.2)對多維超立方體進行歸一化處理,即每一維的邊長為1,超立方體的中心點則表示為(0.5,0.5,…,0.5);(3.3)以超立方體中心為頂點,數(shù)據(jù)聚集區(qū)的(d-1)維超平面作為基,將每個d維數(shù)據(jù)聚集區(qū)劃分為2d個金字塔;(3.4)為每一個金字塔確定一個金字塔值pi,則數(shù)據(jù)分區(qū)內(nèi)的每一個高維數(shù)據(jù)點都對應有惟一的一個金字塔數(shù),如果給定數(shù)據(jù)點v位于金字塔pi內(nèi),表明點v的金字塔數(shù)為i。確定給定點v的金字塔值pi的方法如下:只需要確定點v的維數(shù)i具有到中心點最大偏移度∣0.5-vi∣,則點v的金字塔數(shù)為i或者i+d。令點v的所有維坐標值中具有到中心點最大偏移度的那個坐標的維數(shù)為lmax,當點v的第lmax維坐標值小于0.5時,點v的金字塔數(shù)i等于lmax,當點v的第lmax維坐標值大于等于0.5時,點v的金字塔數(shù)等于lmax+d。本實施例中,上述步驟(4)的詳細步驟如下:(4.1)將每一個金字塔分成與基平行的幾個切片,每一個切片與一個B+樹的數(shù)據(jù)頁相對應;(4.2)定義金字塔中每一個多維數(shù)據(jù)點v的金字塔高度hv=∣0.5-hv’∣,其中hv’是數(shù)據(jù)點v到所屬金字塔基平面的垂直距離;(4.3)根據(jù)一個多維數(shù)據(jù)點的金字塔數(shù)和金字塔高度,將一個多維數(shù)據(jù)點v映射為一個一維數(shù)值(i+hv),稱(i+hv)為點v的金字塔值。本實施例中,上述步驟(5)的詳細步驟如下:(5.1)在一維數(shù)據(jù)空間內(nèi)為每一個高維立方體劃分一個區(qū)間,保證各區(qū)間互不相交。定義一個范圍常量c,c是一個足夠大的常數(shù),保證不同高維立方體內(nèi)的數(shù)據(jù)對象映射到一維數(shù)軸不同的區(qū)間范圍內(nèi)。(5.2)根據(jù)高維數(shù)據(jù)點所在的立方體數(shù)、金字塔值及其到基平面的距離創(chuàng)建高維數(shù)據(jù)對象的索引關(guān)鍵字,將高維數(shù)據(jù)映射到一維空間內(nèi)。如高維數(shù)據(jù)對象v所在的立方體數(shù)為j,金字塔數(shù)為i,v到所在金字塔基平面距離為hv’,則數(shù)據(jù)對象v的索引關(guān)鍵字y為:y=j×c+(i+hv)=j×c+(i+|0.5-hv')降維后,每一個高維立方體內(nèi)高維數(shù)據(jù)對象的一維值被限定在[j*c,(j+1)*c]區(qū)間內(nèi),c是一個足夠大的常數(shù),從而確保每一個數(shù)據(jù)分區(qū)中的數(shù)據(jù)對象具有不同于別的分區(qū)的索引關(guān)鍵字。(5.3)根據(jù)高維數(shù)據(jù)對象的索引關(guān)鍵字來建立B+樹,高維對象原始信息保存在B+樹的葉子節(jié)點的指針桶中。高維數(shù)據(jù)空間中每個超立方體被劃分成若干個金字塔,每個金字塔進 一步劃分為切片,每個切片對應一個B+樹的數(shù)據(jù)頁,切片中的數(shù)據(jù)對象映射到數(shù)據(jù)頁的最大值和最小值之間,同一切片中數(shù)據(jù)在相同的數(shù)據(jù)頁上,處理同一切片內(nèi)的數(shù)據(jù)速度就很快。本實施例中,上述步驟(6)的詳細步驟如下:(6.1)根據(jù)用戶需求,利用查詢點及查詢半徑在多維數(shù)據(jù)空間內(nèi)求得查詢范圍。(6.2)判斷查詢范圍與數(shù)據(jù)空間內(nèi)的各個數(shù)據(jù)聚集區(qū)(超立方體)是否相交,如果相交,進行下一步,否則失敗返回。(6.3)計算相交邊界值的一維索引關(guān)鍵字,在B+樹種查找邊界值的索引關(guān)鍵字,進而獲得一個高維數(shù)據(jù)點的集合,得到精確搜索范圍。(6.4)根據(jù)用戶需求,在精確搜索范圍內(nèi)利用點查詢、范圍查詢、最近鄰查詢或k-近鄰查詢等相似搜索方法進行搜索,找到結(jié)果數(shù)據(jù)信息并輸出。以具體應用實例來對本申請的方法進行進一步詳細描述。如圖1和圖2所示,在本實例中,具體實施步驟如下:1)網(wǎng)絡數(shù)據(jù)采集:對網(wǎng)絡中存在的數(shù)據(jù)信息進行采集,網(wǎng)絡中現(xiàn)存數(shù)據(jù)信息多種多樣、形式各異,搜索引擎很難直觀理解其中蘊含的語義,需要對其進行形式化處理,便于機器理解及處理。2)將網(wǎng)絡數(shù)據(jù)抽象為高維數(shù)據(jù):根據(jù)網(wǎng)絡數(shù)據(jù)的屬性將不同形式的數(shù)據(jù)信息用屬性序列表示,抽象成高維數(shù)據(jù)空間的點集。例如:某惡意感染可以提取成為屬性集合A={name,scan,ip,port,connect,…},集合里面的各項是屬性的名稱,每個屬性都有對應的具體的值。其中name是感染的名稱,為string類型;scan表示是否有掃描主機端口的操作,值為1或0;ip為目的主機的網(wǎng)絡地址,例如為192.168.1.15;port是被掃描的端口號,可以是一個值,也可以是一個集合等等。將每個流量數(shù)據(jù)都按照上述方法抽象成為對應的屬性集合,最后形成數(shù)據(jù)集DB。3)數(shù)據(jù)規(guī)格化處理:網(wǎng)絡中不同數(shù)據(jù)信息的屬性各異,得到的高維數(shù)據(jù)點表現(xiàn)為維度不一致,為便于管理,需將維度各異的數(shù)據(jù)整合到同一高維數(shù)據(jù)空間。如圖3所示,步驟2中的用iHash的方法規(guī)格化多維數(shù)據(jù),主要的過程就是按照技術(shù)方案里面描述的函數(shù)處理過程進行轉(zhuǎn)化。首先聲明屬性數(shù)組B,B中包含16個單元,每個單元大小為32比特,初始化為0。將屬性集合A作為參數(shù)傳入dHash1函數(shù)中。該函數(shù)把A中的字符串形式的變量名哈希成0-15之間的整形數(shù)據(jù),也就是得出A的變量名在數(shù)組B中具體存放的位置v。將A進行第二次哈希函數(shù)dHash2處理,參數(shù)是A中變量的具體的值,以及第一層哈希得到的位置結(jié)果。采用的主要算法是SHA-1,將值加密處理成160位的信息摘要,然后再把這個摘要按比特分割成從高到低的5個32位的值r1,r2,r3,r4,r5,對這5個值進行異或運算,得出結(jié)果然后存入位置v。對每個屬性集合都做出上述處理后就都對應著一個16維空間上的點。將惡意流量與數(shù)據(jù)點之間的對應關(guān)系記錄下來,以方便之后的操作。4)高維數(shù)據(jù)降維處理:為消除“維災”帶來的影響,需要將高維數(shù)據(jù)映射到低維空間以便于組織管理。數(shù)據(jù)空間中“距離”臨近的數(shù)據(jù)有著相似的信息語義,如圖4所示,本發(fā)明中首先對數(shù)據(jù)空間中隨機分布的高維數(shù)據(jù)進行數(shù)據(jù)聚類分區(qū),將具有相近語義的數(shù)據(jù)劃分在一個數(shù)據(jù)聚集區(qū)內(nèi),減少了查詢范圍。聚類得到的數(shù)據(jù)聚集區(qū)形狀不規(guī)則,為了方便之后的降維處理,將數(shù)據(jù)聚集區(qū)歸整為高維數(shù)據(jù)空間內(nèi)的多維超立方體,并進行歸一化處理,每一個數(shù)據(jù)聚集區(qū)內(nèi)的數(shù)據(jù)都局限在一個邊長為1的多維超立方體內(nèi),并為空間內(nèi)超立方體賦予不同的立方體數(shù)j。多維超立方體劃分,如圖5所示,針對每一個d維的超立方體,以超立方體中心(0.5,0.5,…,0.5)為頂點,超立方體的(d-1)維超平面作為基,將每個d維數(shù)據(jù)聚集區(qū)劃分為2d個金字塔。為每一個金字塔確定一個金字塔值pi,則數(shù)據(jù)分區(qū)內(nèi)的每一個高維數(shù)據(jù)點都對應有惟一的一個金字塔數(shù),如果給定數(shù)據(jù)點v位于金字塔pi內(nèi),表明點v的金字塔數(shù)為i。確定給定點v的金字塔值pi的方法如下:只需要確定點v的維數(shù)i具有到中心點最大偏移度∣0.5-vi∣,則點v的金字塔數(shù)為i或者i+d。令點v的所有維坐標值中具有到中心點最大偏移度的那個坐標的維數(shù)為lmax,當點v的第lmax維坐標值小于0.5時,點v的金字塔數(shù)i等于lmax,當點v的第lmax維坐標值大于等于0.5時,點v的金字塔數(shù)等于lmax+d。之后將每個金字塔分成與基平行的幾個子劃分,如圖5,每一個子劃分與一個B+樹數(shù)據(jù)頁相對應,根據(jù)高維數(shù)據(jù)點到金字塔基的距離將數(shù)據(jù)聚集區(qū)內(nèi)的高維數(shù)據(jù)映射為一維數(shù)值。具體映射步驟如下:定義金字塔中每一個多維數(shù)據(jù)點v的金字塔高度hv=∣0.5-hv’∣,其中hv’是數(shù)據(jù)點v到所屬金字塔基平面的垂直距離;根據(jù)一個多維數(shù)據(jù)點的金字塔數(shù)和金字塔高度,將一個多維數(shù)據(jù)點v映射為一個一維數(shù)值(i+hv),稱(i+hv)為點v的金字塔值;創(chuàng)建高維數(shù)據(jù)的一維索引關(guān)鍵字:y=j×c+(i+hv)=j×c+(i+|0.5-hv'|),其中j為立方體數(shù),i為金字塔數(shù),降維后,每一個多維立方體內(nèi)高維數(shù)據(jù)對象的一維值被限定在[j*c,(j+1)*c]區(qū)間內(nèi),如圖6所示,從而確保每一個數(shù)據(jù)分區(qū)中的數(shù)據(jù)對象具有不同于別的分區(qū)的索引關(guān)鍵字。5)根據(jù)高維數(shù)據(jù)對象的索引關(guān)鍵字來建立B+樹,索引關(guān)鍵字在一維空間內(nèi)按順序排列,高維對象原始信息保存在B+樹的葉子節(jié)點的指針桶中,檢索到索引關(guān)鍵字,就能相應找到原始數(shù)據(jù)信息。高維數(shù)據(jù)空間中每個數(shù)據(jù)分區(qū)被劃分成若干個金字塔,每個金字塔進一步劃分為切片,每個切片對應一個B+樹的數(shù)據(jù)頁,切片中的數(shù)據(jù)對象映射到數(shù)據(jù)頁的最大值和最小值之間,同一切片中數(shù)據(jù)在相同的數(shù)據(jù)頁上,處理同一切片內(nèi)的數(shù)據(jù)速度就很快。6)用相似搜索方法查詢搜索。在前面介紹的高維數(shù)據(jù)降維、用B+樹組織索引關(guān)鍵字的 基礎上,可以利用相似搜索方法有效確定搜索范圍,快速得到用戶需求的數(shù)據(jù)信息。相似搜索方法分為四類:點查詢(PointQuery)、范圍查詢(RangeQuery)、最近鄰查詢(NearestNeighborQuery)及k-近鄰查詢(KNNQuery)。點查詢:在數(shù)據(jù)空間S中查找到與給定查詢點q相同的目標對象p。形式化描述為:Rpoint(q)={p|p∈S,p=q}范圍查詢:對于給定的查詢點q及閥值r,在數(shù)據(jù)空間S中查找到滿足d(p,q)≤r的所有目標對象p。形式化描述為:Rrange(q,r)={p|p∈S,d(p,q)≤r}最近鄰查詢:在數(shù)據(jù)空間S中查找到與給定查詢點q最近的目標對象p。形式化描述為:k-近鄰查詢:在數(shù)據(jù)空間S中查找到與給定查詢點q最近的k個目標對象p。形式化描述為:處理點查詢時,如圖7所示(以二維空間為例),首先根據(jù)查詢點的坐標確定其金字塔數(shù)和金字塔高度,進一步計算出查詢點的索引關(guān)鍵字,然后根據(jù)索引關(guān)鍵字在B+樹中查找,獲得一個點的集合(圖中黑線上點的集合),將此集合中的點依次與查詢點做比較,最后輸出結(jié)果。處理范圍查詢時,如圖8所示(以二維空間為例),首先根據(jù)查詢點坐標及其查詢半徑得出查詢范圍(圖中的圓形區(qū)域),并判斷是否與數(shù)據(jù)空間內(nèi)數(shù)據(jù)聚集區(qū)相交,如果存在數(shù)據(jù)聚集區(qū)與查詢范圍相交,確定聚集區(qū)內(nèi)每個金字塔與查詢范圍相交的兩個邊界索引關(guān)鍵字ylow和yhigh,根據(jù)這兩個索引關(guān)鍵字在B+樹種進行范圍查找,獲得一個點集(圖中陰影區(qū)域內(nèi)的點集),然后精確判斷點集中的數(shù)據(jù)點是否屬于查詢范圍,最后輸出結(jié)果。處理最近鄰查詢時,首先進行點查詢,如果找到結(jié)果則終止查詢;如果沒有找到相同點,則確定一個足夠小的查詢半徑r進行范圍查詢,若輸出1個結(jié)果終止查詢,否則縮小或增大查詢半徑進行范圍查詢,直到找到最近鄰數(shù)據(jù)點。處理KNN查詢時,搜索過程從一個查詢半徑為r的范圍查詢開始,如果范圍查詢結(jié)果的個數(shù)小于k,增大查詢半徑,使之覆蓋更多的高維數(shù)據(jù)點,如此迭代,直到結(jié)果集中數(shù)據(jù)點的個數(shù)等于k個。以上僅是本發(fā)明的優(yōu)選實施方式,本發(fā)明的保護范圍并不僅局限于上述實施例,凡屬于本發(fā)明思路下的技術(shù)方案均屬于本發(fā)明的保護范圍。應當指出,對于本技術(shù)領(lǐng)域的普通技術(shù) 人員來說,在不脫離本發(fā)明原理前提下的若干改進和潤飾,應視為本發(fā)明的保護范圍。