哈希編碼方法和裝置的制造方法
【技術領域】
[0001] 本發(fā)明涉及數(shù)據(jù)檢索領域,尤其涉及一種哈希編碼方法和裝置。
【背景技術】
[0002] 隨著互聯(lián)網(wǎng)上的數(shù)據(jù)如文本、圖像及視頻等呈爆炸式增長,對大規(guī)模數(shù)據(jù)的索引 和近鄰查詢已經(jīng)越來越引起人們的關注。
[0003] 哈希編碼是一種常用的將任意實值多維數(shù)據(jù)轉(zhuǎn)換成0-1二值串的技術。它具有低 存儲及高速查詢的優(yōu)點,因此非常適于大規(guī)模數(shù)據(jù)索引及查找。
[0004] 傳統(tǒng)的哈希編碼技術首先生成若干投影,然后對每個投影方向下的投影數(shù)據(jù)進行 單閾值量化,從而得到0-1二值編碼串。單閾值量化方法往往無法很好地分辨數(shù)據(jù),這使 得相鄰的數(shù)據(jù)可能具有不同編碼,進而影響基于哈希編碼的大規(guī)模數(shù)據(jù)索引和近鄰查詢效 果。雙閾值哈希方法是最近提出的一種多閾值哈希編碼方法,它先利用多個投影對數(shù)據(jù)投 影得到多維數(shù)據(jù)投影值,然后在每維數(shù)據(jù)中使用自適應學習的雙閾值對數(shù)據(jù)進行量化和編 碼,最后拼合所有投影下的編碼生成最終的二值編碼。
[0005] 應該注意,上面對技術背景的介紹只是為了方便對本發(fā)明的技術方案進行清楚、 完整的說明,并方便本領域技術人員的理解而闡述的。不能僅僅因為這些方案在本發(fā)明的
【背景技術】部分進行了闡述而認為上述技術方案為本領域技術人員所公知。
【發(fā)明內(nèi)容】
[0006] 上述方法在每個投影下只使用兩個閾值量化且其中的閾值學習算法只針對兩個 閾值,因此無法擴展到多個閾值量化。
[0007] 本發(fā)明實施例提供一種哈希編碼方法和裝置,以解決【背景技術】指出的問題。
[0008] 根據(jù)本發(fā)明實施例的一個方面,提供一種哈希編碼裝置,其中,所述裝置包括:
[0009] 投影單元,其基于給定的訓練數(shù)據(jù)集生成多個投影方向;
[0010] 聚類單元,其將所述訓練數(shù)據(jù)集中的所有訓練數(shù)據(jù)在每一個所述投影方向上進行 投影,得到對應每一個投影方向的一組投影值,利用預先設定的聚類算法對每一個投影方 向?qū)耐队爸颠M行聚類,得到對應每一個投影方向的預定數(shù)量的聚類中心;
[0011] 閾值確定單元,其根據(jù)每一個投影方向?qū)念A定數(shù)量的聚類中心,根據(jù)熵最大 化原則確定對應每一個投影方向的多個閾值,包括:對于每一個投影方向,根據(jù)所述投影方 向?qū)木垲愔行牡膫€數(shù)確定所述閾值的個數(shù),其中,所述閾值的個數(shù)為所述聚類中心的 個數(shù)減1 ;對每個閾值賦予候選值;迭代所有閾值的所有候選值,分別計算出相應的熵值; 將熵值最大所對應的一組閾值的候選值作為所述多個閾值;
[0012] 編碼單元,其利用對應每一個投影方向的多個閾值,對輸入數(shù)據(jù)在所述每一個投 影方向的投影值進行編碼,得到所述輸入數(shù)據(jù)的編碼。
[0013] 根據(jù)本發(fā)明實施例的第二方面,提供一種哈希編碼裝置,其中,所述裝置包括:
[0014] 投影單元,其基于給定的訓練數(shù)據(jù)集生成多個投影方向;
[0015] 聚類單元,其將所述訓練數(shù)據(jù)集中的所有訓練數(shù)據(jù)在每一個所述投影方向上進行 投影,得到對應每一個投影方向的一組投影值,利用預先設定的聚類算法對每一個投影方 向?qū)耐队爸颠M行聚類,得到對應每一個投影方向的預定數(shù)量的聚類中心;
[0016] 閾值確定單元,其根據(jù)每一個投影方向?qū)念A定數(shù)量的聚類中心,確定對應每 一個投影方向的多個閾值,包括:將每一個投影方向的每兩個相鄰的聚類中心的線性加權 組合值作為該投影方向的一個閾值,得到對應該投影方向的多個閾值;
[0017] 編碼單元,其利用對應每一個投影方向的多個閾值,對輸入數(shù)據(jù)在所述每一個投 影方向的投影值進行編碼,得到所述輸入數(shù)據(jù)的編碼。
[0018] 根據(jù)本發(fā)明實施例的第三方面,提供一種哈希編碼方法,其中,所述方法包括:
[0019] 基于給定的訓練數(shù)據(jù)集生成多個投影方向;
[0020] 將所述訓練數(shù)據(jù)集中的所有訓練數(shù)據(jù)在每一個所述投影方向上進行投影,得到對 應每一個投影方向的一組投影值,利用預先設定的聚類算法對每一個投影方向?qū)耐队?值進行聚類,得到對應每一個投影方向的預定數(shù)量的聚類中心;
[0021] 根據(jù)每一個投影方向?qū)念A定數(shù)量的聚類中心,根據(jù)熵最大化原則確定對應每 一個投影方向的多個閾值,包括:對于每一個投影方向,根據(jù)所述投影方向?qū)木垲愔行?的個數(shù)確定所述閾值的個數(shù),其中,所述閾值的個數(shù)為所述聚類中心的個數(shù)減1 ;對每個閾 值賦予候選值;迭代所有閾值的所有候選值,分別計算出相應的熵值;將熵值最大所對應 的一組閾值的候選值作為所述多個閾值;
[0022] 利用對應每一個投影方向的多個閾值,對輸入數(shù)據(jù)在所述每一個投影方向的投影 值進行編碼,得到所述輸入數(shù)據(jù)的編碼。
[0023] 本發(fā)明的有益效果在于:通過在每個投影方向下使用多個閾值,克服了單閾值量 化中無法有效對數(shù)據(jù)劃分問題且可以選擇使用任意多個閾值;通過使用多個自適應學習的 閾值來對每維數(shù)據(jù)進行量化,有效地保持了近鄰結(jié)構(gòu),從而為大規(guī)模數(shù)據(jù)索引及近鄰查詢 提供良好基礎。
[0024] 參照后文的說明和附圖,詳細公開了本發(fā)明的特定實施方式,指明了本發(fā)明的原 理可以被采用的方式。應該理解,本發(fā)明的實施方式在范圍上并不因而受到限制。在所附 權利要求的精神和條款的范圍內(nèi),本發(fā)明的實施方式包括許多改變、修改和等同。
[0025] 針對一種實施方式描述和/或示出的特征可以以相同或類似的方式在一個或更 多個其它實施方式中使用,與其它實施方式中的特征相組合,或替代其它實施方式中的特 征。
[0026] 應該強調(diào),術語"包括/包含"在本文使用時指特征、整件、步驟或組件的存在,但 并不排除一個或更多個其它特征、整件、步驟或組件的存在或附加。
【附圖說明】
[0027] 所包括的附圖用來提供對本發(fā)明實施例的進一步的理解,其構(gòu)成了說明書的一部 分,用于例示本發(fā)明的實施方式,并與文字描述一起來闡釋本發(fā)明的原理。顯而易見地,下 面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領域普通技術人員來講,在不付出創(chuàng) 造性勞動性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。在附圖中:
[0028] 圖1是本發(fā)明實施例的哈希編碼方法的流程圖;
[0029] 圖2是本發(fā)明實施例的哈希編碼方法中映射學習部分的流程圖;
[0030] 圖3是本發(fā)明實施例的哈希編碼方法中數(shù)據(jù)編碼部分的流程圖;
[0031] 圖4是本發(fā)明實施例的哈希編碼方法中閾值示意圖;
[0032] 圖5是本發(fā)明實施例的哈希編碼方法中確定多個閾值的一個實施方式的流程圖;
[0033] 圖6是對輸入數(shù)據(jù)在每一個投影方向的投影值進行編碼的一個實施方式的流程 圖;
[0034] 圖7是區(qū)域編碼不意圖;
[0035] 圖8是哈希編碼裝置的一個實施方式的組成示意圖;
[0036] 圖9是哈希編碼裝置的另一個實施方式的組成示意圖;
[0037] 圖10是本發(fā)明實施例的編碼器的組成示意圖。
【具體實施方式】
[0038] 參照附圖,通過下面的說明書,本發(fā)明的前述以及其它特征將變得明顯。在說明書 和附圖中,具體公開了本發(fā)明的特定實施方式,其表明了其中可以采用本發(fā)明的原則的部 分實施方式,應了解的是,本發(fā)明不限于所描述的實施方式,相反,本發(fā)明包括落入所附權 利要求的范圍內(nèi)的全部修改、變型以及等同物。
[0039] 本發(fā)明實施例提出了一種哈希編碼方法和裝置,在一個實施方式中,首先利用多 個投影對數(shù)據(jù)投影得到多維數(shù)據(jù)投影值,然后在每維數(shù)據(jù)下通過k-means聚類得到k個聚 類中心,假定兩兩相鄰聚類中心存在一個閾值,根據(jù)熵最大化原則求得(k-Ι)個閾值并利 用這些閾值及預設的編碼方案對每維數(shù)據(jù)進行編碼,最后拼合所有投影下的編碼得到最終 的二值編碼。
[0040] 下面結(jié)合附圖和【具體實施方式】對本實施例的方法和裝置進行說明。
[0041] 實施例1
[0042] 本發(fā)明實施例提供了一種哈希編碼方法。圖1是該方法的處理流程圖,請參照圖 1,該方法包括:
[0043] 步驟101 :生成投影,也即,基于給定的訓練數(shù)據(jù)集生成多個投影方向;
[0044] 步驟102 :生成聚類中心,也即,將所述訓練數(shù)據(jù)集中的所有訓練數(shù)據(jù)在每一個所 述投影方向上進行投影,得到對應每一個投影方向的一組投影值,利用預先設定的聚類算 法對每一個投影方向?qū)耐队爸颠M行聚類,得到對應每一個投影方向的預定數(shù)量的聚類 中心;
[0045] 步驟103 :確定閾值,也即,根據(jù)每一個投影方向?qū)念A定數(shù)量的聚類中心,根 據(jù)熵最大化原則確定對應每一個投影方向的多個閾值;
[0046] 步驟104 :多閾值量化編碼,也即,利用對應每一個投影方向的多個閾值,對輸入 數(shù)據(jù)在所述每一個投影方向的投影值進行編碼,得到所述輸入數(shù)據(jù)的編碼。
[0047] 在本實施例中,該方法主要包括映射學習部分和數(shù)據(jù)編碼