高維向量快速檢索方法Locality Sensitive Hashing之一漢明空間和歐式空間實現

1 高維向量檢索問題

高維向量檢索主要解決由數據維數增加所引發檢索速度急劇下降的的問題。高維空間中數據的特點主要包括以下三個方面:
(1) 稀疏性。隨着維度增長,數據在空間分佈的稀疏性增強;
(2) 空空間現象。對於服從正態分佈的數據集,當維數大約增加到10時,只有不到1%的數據點分佈在中心附近;
(3) 維度效應。隨着維數的增加,對索引的維護效率急劇下降,並且高維空間中數據點之間的距離接近於相等。

2 樹索引方法在高維檢索中的缺點

傳統的樹索引方法,如基於數據劃分的索引R-tree、R-tree、SR-tree、k-d tree等和基於空間劃分的索引quad-tree、kdb-tree等,在特徵維度不高的情況下具有良好的性能,在特徵維數足夠高的情況下(超過幾十維),它們的性能會退化到最原始的順序查找,這就是所謂的“維度災難”。樹索引方法在高維情況下主要面臨着三個困難:
(1) 每次劃分只使用了特徵向量一個維度的信息,在高維情況下這種數據劃分方法效率很低;
(2) 需要某種形狀的覆蓋對象來表示某個區域,而固定形狀的覆蓋對象對區域的描述會有偏差。在高維情況下這個偏差會更明顯;
(3) 爲了獲得精確最近鄰檢索的結果,索引的性能退化到順序查找的程度。

3 ANN和LSH

由於精確最近鄰搜索計算代價高、算法效率低,人們採用近似最近鄰搜索方法完成檢索的任務。當前,在大規模高維數據集上近似最近鄰問題最好的解決方案是位置敏感哈希,它將高維向量映射到低維空間,並且以較大的概率使映射前相近的映射後仍然相近。LSH雖然採用近似的方法,不保證得出精確的結果,但是它能以較低的代價返回精確的或接近精確的結果。LSH算法有多種,在不同度量空間及不同相似度量條件下有不同的方案。它們在多種場合得到應用,如計算生物學、音樂識別、圖像檢索、音樂檢索、複製檢測、近似重複檢測和名詞聚類等。
LSH是由Indyk在斯坦福大學和他的導師Motwani 與1998年提出的,主要解決漢明空間的高維搜索問題。
2004年,Datar、 Immorlica和 Indyk在斯坦福大學將p - 穩定分佈函數引入LSH,並將LSH的使用範圍擴展到歐氏空間。
2005年,Indyk的學生Andoni給出了歐氏空間LSH具體實現方案,並稱之爲E2LSH。
2008年,Andoni 在麻省理工大學將Leech lattice引入文獻的LSH方案,將查詢時間和內存消耗降到接近於文獻中Motwani給出的下界。
2010年,Andoni在他的博士論文中對LSH相關問題進行了詳細描述。

4 LSH原理

基於隨機映射的哈希方法——位置敏感哈希,是近年來廣泛應用的哈希方法,主要用於信息檢索,解決近似最近鄰(Approximate Nearest Neighbor, ANN)搜索問題。近似最近鄰搜索是在最近鄰(Nearest Neighbor, NN)搜索的基礎上提出來的。最近鄰搜索是信息檢索領域的一個基本問題,它在很多領域如數據壓縮、數據挖掘、圖像集搜索、機器學習、模式識別和統計等都有重要的作用。
當前,在大規模高維數據集上近似近鄰問題最好的解決方案是位置敏感哈希。這是因爲高維空間的主要特點之一是,隨着維數增加,任意兩點之間最大距離與最小距離趨於相等,如圖 所示。此時,常用的樹索引方法將難以達到較好的效果。而LSH是基於隨機映射算法,它將高維向量映射到低維空間,並且以較大的概率使映射前相近的點映射後仍然相近。LSH雖然採用近似的方法,不保證得出精確的結果,但是它能以較低的代價返回精確的或接近精確的結果。
高維向量快速檢索方法Locality Sensitive Hashing之一漢明空間和歐式空間實現
爲了對數據點進行映射,要先建立哈希表。好的哈希表可以使一個點的查詢在時間內和內存空間上完成查詢,是數據點的數目。哈希表建立以後,LSH用一系列哈希函數對數據點進行運算,使那些比較接近的點對於每個哈希函數發生衝突的概率比距離遠的點要大,也就是把比較相近的點哈希到同一個桶。這樣,通過對查詢點進行哈希並獲取它所在桶中的標誌就可以進一步得到比較近的鄰居。

簡單地說,LSH通過多個位置敏感哈希函數將數據點投影到低維空間。如果兩個高維數據點在該空間上輸出相同的值,則會被認爲可能是近鄰而散列到同一個哈希桶中。對查詢數據點作相同的散列,窮舉搜索與查詢點發生衝突的哈希桶,將會以較高的概率得到查詢點的近鄰。由於縮小了查找範圍,LSH算法能夠在遠小於順序搜索的時間內找到近鄰。在數據集規模很大的時候,其優勢十分明顯。

4 歐式空間實現方案

前面的LSH的哈希函數主要是針對二進制漢明空間中的點的。數據存儲在磁盤上的時候,它們比幾種基於樹的結構在速度上有了很大提高,同時,當需要進行增加和刪除操作時,它們也能夠擴展到動態數據集上。但它們有一個很重要的缺陷,就是隻有輸入數據位於漢明空間時,纔會達到簡單而快速的效果。雖然通過把空間嵌入到空間並把空間嵌入到漢明空間也能把算法擴展到範數,但這在很大程度上增加了算法的查詢時間和錯誤率,也增加了算法的複雜度。
M. Datar等提出了針對歐氏空間的快速解決方案,A Andoni 等人在它的基礎上提出了LSH的改進方案E2LSH。該算法不需要嵌入就可以直接工作在歐式空間中的點上,它還可以工作在任何範數上,只要,這被證明當時是唯一的可工作於高維空間中情況的NN問題解決算法。它繼承了LSH的兩個特點。其一是很適合於維數很高但稀疏的數據點,尤其是當是向量中非零元素的最大數目時,算法的運行時間限會保持不變。該特點是其它空間數據結構所不具有的,使得它可以用於基於顏色的快速圖像相似度檢索。例如,每幅圖像被一個大約維空間中的一個點代替,但每個點中只有大約個點不爲零。和線性掃描相比,該方案在速度上能夠達到一個或幾個數量級的巨大提高。其二是如果數據滿足一定的有界增長特性(bounded growth property), 它可以很快的找到精確的近鄰。算法能夠以固定概率在時間內找到最近的鄰居。特別地,如果,運行時間是。
該算法使用的LSH函數族是基於p穩定函數的,p穩定分佈是廣義高斯分佈,滿足廣義中心極限定理。穩定分佈被定義爲歸一化獨立同分布變量和的極限。它的重要性質是穩定性,即具有相同指數的穩定分佈隨機變量的線性組合仍然是穩定分佈隨機變量,在經濟時間序列、天體運動、信號處理等領域有着重要的作用。對於的任何值都存在穩定分佈,特殊的有:柯西分佈是1-穩定的,高斯分佈是2-穩定的。
E2LSH的每個哈希函數爲,在進行哈希運算時,內積把每個向量映射到一條實線上。由p穩定分佈定義可知,兩個向量投影的距離的分佈與的分佈相同,服從穩定分佈。如果能夠把實線以合適的長度進行等長分割,並且根據向量被投影到分割後的哪一段爲該向量分配一個哈希值,那麼這樣的哈希函數應該滿足前面位置敏感的描述,如圖所示。兩個向量在從上述哈希函數族中隨機抽取的哈希函數下衝突的概率是可以計算的。
高維向量快速檢索方法Locality Sensitive Hashing之一漢明空間和歐式空間實現
詳細內容請查看論文近似最近鄰搜索算法——位置敏感哈希

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章