麻豆精品无码国产在线播放,国产亚洲精品成人AA片新蒲金,国模无码大尺度一区二区三区,神马免费午夜福利剧场

一種結合聚類和雙key值的高維向量檢索方法

文檔序號:6508464閱讀:212來源:國知局
一種結合聚類和雙key值的高維向量檢索方法
【專利摘要】本發明是一種結合聚類和雙key值的高維向量檢索方法。在本發明中,提出了一種結合聚類的雙key值索引結構CDKB-tree,它首先采用聚類算法對高維向量集進行簇劃分,然后為各簇數據構建雙key值擴展B+-tree,形成CDKB-tree。進行檢索時,只需對與查詢范圍相交的簇數據進行搜索,通過聚類實現第一次過濾,并通過主key和輔key(雙key值),實現兩次key值過濾,只需對主key和輔key均在搜索范圍內的那些高維向量與查詢向量間進行相似度匹配計算。本發明提出的索引結構通過聚類及簡單的雙key值大小比較,大大地減少了相似度匹配的運算量,極大地加快了檢索速度。
【專利說明】一種結合聚類和雙key值的高維向量檢索方法
【技術領域】
[0001]本發明屬于多媒體信息檢索、智能信息處理、數據挖掘等數據處理領域,具體涉及 的是一種結合聚類和雙key值的高維向量檢索方法。
【背景技術】
[0002]隨著計算機和信息技術的發展,產生了海量的多媒體數據,如何在海量的多媒體 數據庫中快速找到所需的信息是當前多媒體數據庫領域研究的一個重點問題。傳統的方法 是由人工對多媒體數據進行標注,然后通過文本檢索來實現多媒體信息檢索。然而人工標 注存在工作量大和主觀性強的缺陷,對于爆炸式增長的多媒體數據來說,完全人工標注是 不可實現的,因此需要研究基于內容的多媒體信息檢索技術。
[0003]實現基于內容的多媒體信息檢索的技術路線是:通過特征變換,將多媒體數據映 射到高維空間中的點——特征向量,用該特征向量來描述多媒體對象,得到特征庫;然后用 同樣的特征變換方法來提取查詢對象的特征向量,最后通過特征向量間的相似度匹配來實 現多媒體信息的相似檢索。因此多媒體信息的相似檢索轉變為在高維特征空間中尋找與給 定查詢點最近的點集的過程。
[0004]要在高維空間中尋找與給定查詢點最相近的點集,最簡單直觀的方法就是順序掃 描,即依次將特征庫中的每個特征(高維向量)與查詢點進行相似度匹配,返回最匹配的那 些特征點集,得到檢索結果。順序掃描隨著特征庫中特征數目和特征維度的增加,計算消耗 時間線性增大,當特征庫中的特征數目很大時,順序掃描將不能滿足實時性需求。為了加快 檢索速度,最常用的方法就是借助于高維索引技術。
[0005]為了實現對海量高維向量的管理,研究者們提出了大量的索引結構,其中最為經 典的是以R-tree為代表的R-tree家族系列索引結構。R-tree是20世紀80年代由Guttman 提出的,用于管理多維矩形塊數據而設計的一種索引結構,它是一種利用樹結構管理數據 的高度平衡樹,每個節點用該節點中所有數據的最小外接矩形(MBR:Minimal Bounding Rectangle)來表示,實際數據僅出現在葉子節點中。該索引結構通過擴展也可用于高維空 間中點數據的管理。在查詢過程中,從根節點層到葉子節點層進行向下搜索,通過計算查詢 向量和各節點MBR之間的最小距離來判斷查詢范圍是否與某節點相交來實現剪枝過濾,僅 搜索可能包含結果的子樹,從而加快檢索速度。該索引結構允許節點之間的空間重疊,影響 了其查詢效率。為了提高R-tree的性能,研究者們相續提出了 R+-tree、R*-tree、SS-tree、 SR-tree、X-tree、A-tree等索引結構。但這些樹型索引結構隨著特征維度的增加,查詢效 率急劇下降,甚至不如順序掃描,這就是所謂的“維數災難”。
[0006]除了樹型結構之外,還存在高維到一維轉換的索引結構,例如:金字塔技術、 NB-tree、iDistance、iMinMax等等。高維到一維轉換的索引結構通過某種規則,將高維向 量映射為一維數據(稱為key值),然后采用一維的B+_tree來管理這些key值,key值在 B+-tree的葉子節點層有序排列。進行查詢時,首先通過相同的高維到一維轉換規則計算查 詢向量的查詢key值,最后根據查詢范圍,確定搜索的key值起始位置和結束位置,并依次掃描這些key值對應的高維向量,計算查詢向量與這些高維向量間的相似性,返回那些最 相似的高維向量集,得到檢索結果。由查詢過程可知,高維到一維轉換的索引結構在任何情 況下性能均優于或等效于順序掃描,且基于前人的大量實驗表明,這類索引結構隨維數和 數據量的增加,性能降低緩慢。
[0007]金字塔技術、NB-tree、iDistance、iMinMax等這些高維到一維轉換索引結構通 過單一 key值的簡單比較實現過濾剪枝,雖然不需要復雜的距離計算且具有較高的檢索效 率,但高維到一維轉換的過程能夠引起大量的數據信息丟失,引起不同向量可能具有相同 的一維key值,通過單一 key值僅能過濾掉比例不大的一部分數據,導致最終的相似度匹配 過程的運算量仍然很大,查詢開銷依然不小。

【發明內容】

[0008]本發明的目的在于提出了一種結合聚類和雙key值的高維向量檢索方法,該方法 采用聚類算法將高維空間進行簇劃分,然后將各簇數據中的每個高維向量映射為雙一維 key值。在查詢過程中,通過聚類過濾掉一部分與查詢區域不相交的簇數據,對于各簇數據 通過增加一層key值過濾層,進一步采用簡單的key值比較實現再次過濾剪枝,極大地減少 了最終的向量相似度匹配的運算量,顯著加快查詢速度。
[0009]本發明的總體思想如下:首先采用聚類算法對高維向量集進行簇劃分,然后為各 簇數據選取兩個參考點,并對各簇數據采用高維向量對該簇數據兩個參考點的距離將該簇 數據中的高維向量映射為雙一維key值,統一選取該簇數據中某一采用相同參考點得到 的key值作為主key,另一作為輔key,最后,分別采用各簇數據的主key為各簇數據構建 B+_tree,同時各B+_tree葉子節點層的每個主key都綁定一個指向其對應輔key的指針,每 個輔key都綁定一個指向其對應高維向量的指針。進行檢索時,首先只需對與查詢范圍相 交的各簇數據進行搜索,然后在與查詢區域相交的各簇數據中使用相同的兩個參考點和映 射方法將查詢向量映射為查詢主key和查詢輔key,通過查詢主key和查詢范圍確定在各簇 數據中的主key搜索范圍,并通過查詢輔key和查詢范圍確定輔key的搜索范圍,最后只需 對經主key過濾后其輔key在輔key搜索范圍內的那些高維向量與查詢向量間進行相似度 匹配計算,返回那些最相似的向量集,得到檢索結果。
[0010]具體創新點:對高維空間進行簇劃分,為各簇數據中的每個高維向量選取兩個參 考點得到雙一維key值,通過聚類和兩次簡單的key值比較,極大地減少了最終參與相似度 匹配運算的高維向量數目,顯著地加快了查詢速度。
[0011]本發明的具體方法步驟為:(I)采用聚類算法對高維向量集進行簇劃分,得到各 簇數據的聚類中心和聚類半徑;(2)為各簇數據構建雙key值擴展B+-tree,為每簇數據構 建雙key值擴展B+-tree的過程為:首先為該簇數據選取兩個參考點,并采用高維向量對這 兩個參考點的距離將該簇數據中的高維向量映射為雙一維key值,統一選取該簇數據中某 一采用相同參考點得到的key值為主key,另一作為輔key,然后采用該簇數據的主key為 該簇數據構建B+_tree,同時該B+_tree葉子節點層的每個主key都綁定一個指向其對應輔 key的指針,每個輔key都綁定一個指向其對應高維向量的指針,B+_tree葉子節點層的所 有主key形成主key層,所有輔key形成輔key層;(3)將各簇數據的聚類中心和聚類半徑 都綁定一個指向其對應簇數據所構建雙key值擴展B+_tree的指針,形成⑶KB-tree ; (4)進行檢索時,通過查詢范圍過濾掉那些與查詢區域不相交的各簇數據,對與查詢范圍相交的 各簇數據進行搜索,在各簇數據中的搜索方法為:使用相同的參考點和映射方法將查詢向 量映射為查詢主key和查詢輔key,通過查詢主key和查詢范圍確定在該簇數據主key層搜 索的起始位置和結束位置,然后通過查詢輔key和查詢范圍確定在該簇數據輔key層的輔 key搜索范圍,接著對主key層從搜索起始位置到結束位置間的每個主key逐一進行掃描, 判斷該主key對應的輔key是否在輔key搜索范圍內,若在搜索范圍內,則對該輔key對應 的高維向量與查詢向量間進行相似度匹配計算,將符合查詢范圍的高維向量返回,得到檢 索結果。
[0012]更進一步,步驟I中所述的聚類算法包括Kmeans聚類。
[0013]更進一步,步驟2中所述的選取兩個參考點,包括可選取原點和聚類中心為參考
[0014]更進一步,步驟2中所述的高維向量對這兩個參考點的距離可采用歐式距離或街 區距離。
[0015]再進一步,步驟3中所述的⑶KB-tree進行高維向量插入時,首先根據該高維向量 到各簇數據聚類中心的距離值,選取距離該高維向量最近的簇數據進行插入操作,更新聚 類半徑,然后根據待插入向量到該簇數據兩個參考點的距離得到待插入向量的主key和輔 key值,根據該主key值的大小定位其應插入到該簇數據對應B+_tree的某一葉子節點中: 如果該葉子節點未滿,則直接將該主key值插入到該葉子節點中,其輔key插入到該主key 對應的位置處,待插入特征向量插入到該輔key對應的位置處,并使主key產生指向其對應 輔key的指針,其對應輔key產生指向待插入高維向量的指針,更新該葉子父節點對應的 key值;如果該葉子節點已滿,處理的方式如下:
[0016]I)如果該葉子節點的左右兄弟節點存在未滿的情況,則結合其左右兄弟節點,進 行待插入主key、輔key和高維向量的插入,并更新其父節點對應的key值;
[0017]2)如果其左右兄弟節點均滿,則結合待插入高維向量的主key值,直接對該葉子 節點進行分裂,將分裂后新產生的葉子節點插入到其父節點中,同時將其輔key和高維向 量插入到對應存儲位置處,更新其父節點對應的key值,如果父節點也已滿,分裂過程繼續 向上傳遞,并更新對應的key值。
[0018]再進一步,步驟4中所述的進行檢索時,采用的檢索方式既包括范圍查詢也包括k 近鄰查詢。
[0019]再進一步,步驟4中所述的查詢范圍,對于范圍查詢來說,是由查詢半徑來確定 的,對于k近鄰查詢來說是由按某一步長遞增的查詢半徑來確定的,直到第k個近鄰到查詢 向量的距離值小于查詢半徑為止。
【專利附圖】

【附圖說明】
[0020]此處所說明的附圖用來提供對本發明的進一步理解,構成本發明的一部分,本發 明的示意性實施實例及其說明用于解釋本發明,并不構成對本發明的不當限定。在附圖 中:
[0021]圖1 (a)本發明所述方法的流程圖
[0022]圖1(b)本發明所述索引結構的示例圖[0023]圖2在本發明所述索引結構上進行范圍查詢的框圖
[0024]圖3在本發明所述索引結構上進行k近鄰查詢的框圖
【具體實施方式】
[0025]為了使本發明所需解決的技術問題、技術方案更加清楚、明白,下面結合附圖和實 施實例對本發明的【具體實施方式】做進一步說明。
[0026]本發明實施實例提供的一種結合聚類和雙key值的高維向量檢索方法其索引結 構構建的流程圖如圖1(a)所示:
[0027]首先,采用聚類算法對高維向量集進行空間簇劃分,得到各簇高維數據;其次計算 各簇數據的聚類中心和半徑,并為每簇數據選取兩個參考點;再次逐一計算各簇數據中的 每個高維向量與該簇數據兩個參考點間的距離,得到每個高維向量對應的雙一維key值; 然后選取各簇數據中某一采用相同參考點得到的key值作為主key,另一作為輔key,并 采用各簇數據的主key為該簇數據構建B+_tree,將各簇數據的主key對應的輔key和高 維向量數據插入到對應的輔key和高維向量存儲位置處,各主key綁定指向其對應輔key 的指針,各輔key綁定指向其對應高維向量的指針,得到各簇數據對應的雙key值擴展 B+-tree ;最后將各簇數據的聚類中心和聚類半徑綁定該簇數據的雙key值擴展B+-tree,形 成CDKB-tree索引結構。(如圖1(b)所示,上層為聚類信息層,中間為由各簇數據主key構 建的各B+-tree,底層為存儲輔key和高維向量的輔key層和特征向量層,各B+-tree葉子 節點層的每個主key都綁定一個指向其對應輔key的指針,其輔key綁定一個指向對應高 維向量的指針。)在進行檢索時,通過查詢向量和查詢范圍判斷各簇數據是否與本次查詢 相交,然后對于與本次查詢相交的簇數據進行進一步搜索,搜索的方法為:首先采用相同的 參考點和映射規則,計算查詢向量和該簇數據兩個參考點間的距離,得到在該簇數據中的 查詢主key和查詢輔key ;然后根據查詢主key和查詢范圍,確定在該簇數據對應的雙key 值擴展B+_tree索引結構主key層(即B+_tree葉子節點層)的主key搜索范圍,得到主 key層的掃描起始位置和結束位置,并根據查詢輔key和查詢范圍,確定在該簇數據對應的 雙key值擴展B+_tree索引結構輔key層的輔key搜索范圍;最后,從主key層的掃描起始 位置到結束位置(主key搜索范圍),逐一進行key值掃描,判斷該主key對應的輔key是 否在輔key搜索范圍之內,若在搜索范圍之內,則計算該輔key對應的高維向量與查詢向量 之間的距離,將滿足檢索結果的高維向量返回,得到相似向量集。
[0028]本發明所述的進行檢索的檢索方式包括范圍查詢和k近鄰查詢,范圍查詢的流程 圖如圖2所示,k近鄰查詢的流程圖如圖3所示。由圖3可知,k近鄰查詢是通過范圍查詢 來實現。
[0029]上述高維向量可以是圖像、視頻、音頻的特征向量。
[0030]應當理解的是,上述針對實施實例的描述較為具體,并不能因此而認為是對本發 明專利保護范圍的限制,本發明的專利保護范圍應以所附權利要求為準。
【權利要求】
1.一種結合聚類和雙key值的高維向量檢索方法,其特征在于具體步驟如下:.1)采用聚類算法對高維向量集進行簇劃分,得到各簇數據的聚類中心和聚類半徑;.2)為各簇數據構建雙key值擴展B+-tree,為每簇數據構建雙key值擴展B+-tree的過程為:首先為該簇數據選取兩個參考點,并采用高維向量對這兩個參考點的距離將該簇數據中的高維向量映射為雙一維key值,統一選取該簇數據中某一采用相同參考點得到的 key值為主key,另一作為輔key,然后采用該簇數據的主key為該簇數據構建B+_tree,同時該B+_tree葉子節點層的每個主key都綁定一個指向其對應輔key的指針,每個輔key都綁定一個指向其對應高維向量的指針,B+_tree葉子節點層的所有主key形成主key層,所有輔key形成輔key層;.3)將各簇數據的聚類中心和聚類半徑都綁定一個指向其對應簇數據所構建雙key值擴展B+_tree的指針,形成CDKB-tree ;.4)進行檢索時,通過查詢范圍過濾掉那些與查詢區域不相交的各簇數據,對與查詢范圍相交的各簇數據進行搜索,在相交的各簇數據中的搜索方法為:使用相同的參考點和映射方法將查詢向量映射為查詢主key和查詢輔key,通過查詢主key和查詢范圍確定在該簇數據主key層搜索的起始位置和結束位置,然后通過查詢輔key和查詢范圍確定在該簇數據輔key層的輔key搜索范圍,接著對主key層從搜索起始位置到結束位置間的每個主key 逐一進行掃描,判斷該主key對應的輔key是否在輔key搜索范圍內,若在搜索范圍內,貝U 對該輔key對應的高維向量與查詢向量間進行相似度匹配計算,將符合查詢范圍的高維向量返回,得到檢索結果。
2.如權利要求1所述的方法,其特征在于:步驟I中所述的聚類算法包括Kmeans聚類。
3.如權利要求1所述的方法,其特征在于:步驟2中所述的選取兩個參考點,包括可選取原點和聚類中心為參考點。
4.如權利要求1所述的方法,其特征在于:步驟2中所述的高維向量對這兩個參考點的距離可采用歐式距離或街區距離。
5.如權利要求1所述的方法,其特征在于:步驟3中所述的CDKB-tree進行高維向量插入時,首先根據該高維向量到各簇數據聚類中心的距離值,選取距離該高維向量最近的簇數據進行插入操作,更新聚類半徑,然后根據待插入向量到該簇數據兩個參考點的距離得到待插入向量的主key和輔key值,根據該主key值的大小定位其應插入到該簇數據對應B+_tree的某一葉子節點中:如果該葉子節點未滿,貝U直接將該主key值插入到該葉子節點中,其輔key插入到該主key對應的位置處,待插入特征向量插入到該輔key對應的位置處,并使主key產生指向其對應輔key的指針,其對應輔key產生指向待插入高維向量的指針,更新該葉子節點父節點對應的key值;如果該葉子節點已滿,處理的方式如下:步驟一:如果該葉子節點的左右兄弟節點存在未滿的情況,則結合其左右兄弟節點,進行待插入主key、輔key和高維向量的插入,并更新其父節點對應的key值;步驟二:如果其左右兄弟節點均滿,則結合待插入高維向量的主key值,直接對該葉子節點進行分裂,將分裂后新產生的葉子節點插入到其父節點中,同時將其輔key和高維向量插入到對應存儲位置處,更新其父節點對應的key值,如果父節點也已滿,分裂過程繼續向上傳遞,并更新對應的key值。
6.如權利要求1所述的方法,其特征在于:步驟4中所述的進行檢索時,采用的檢索方式既包括范圍查詢也包括k近鄰查詢。
7.如權利要求1所述的方法,其特征在于:步驟4中所述的查詢范圍,對于范圍查詢來說,是由查詢半徑來確定的,對于k近鄰查詢來說是由按某一步長遞增的查詢半徑來確定的,直到第k個近鄰到查詢向量的距離值小于查詢半徑為止。
【文檔編號】G06F17/30GK103500165SQ201310365592
【公開日】2014年1月8日 申請日期:2013年8月21日 優先權日:2013年8月21日
【發明者】呂銳, 楊麗芳, 曹學會, 黃祥林, 成鵬, 龔昊, 史欣萍 申請人:新華通訊社, 中國傳媒大學
網友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
主站蜘蛛池模板: 汽车| 益阳市| 北宁市| 西畴县| 澳门| 东安县| 博乐市| 英德市| 沙田区| 正定县| 荣昌县| 五台县| 瑞丽市| 商水县| 肃北| 蕉岭县| 邮箱| 永安市| 瑞丽市| 临夏县| 花莲县| 江山市| 长葛市| 雷山县| 昌黎县| 西乌珠穆沁旗| 德阳市| 昭苏县| 阿荣旗| 资溪县| 舞阳县| 南城县| 上蔡县| 平潭县| 微山县| 黄石市| 神农架林区| 黎城县| 唐海县| 昌都县| 曲水县|