基於Hash算法的高維數據的最近鄰檢索

一.摘要

  最緊鄰檢索:一種樹基於樹結構,一種是基於hash
  a.隨機投影算法,須要產生不少哈希表,才能提升性能。
  b.基於學習的哈希算法在哈希編碼較短時候性能不錯,可是增長編碼長度並不能顯著提升性能。html

  隨機投影:實際上就是隨機的,實際上須要挖掘使用數據的內部結構,結合最大熵原理。
  基於密度的哈希就是依據數據分佈產生最合理的投影。
  數據稀疏:稀疏編碼+ 壓縮感知算法

  GIST1M數據集2.55G,這個是專門作最近鄰檢索的。性能

二.緒論

2.1 課題背景

  最近鄰檢索的主要問題是如何創建高效索引。
  數據集是n*d。
  d = 1,先排序,而後二分查找,空間複雜度是o(n),時間複雜度是o(nlgn);各類平衡樹也行。
  d = 2時,用voronoi圖(泰森多邊形或者狄利克雷圖),這個我剛開始看k-means得時候找到過,來自於GIS的技術。時空同上。
  d>3時候找不到空間線性、時間對數的算法了。
  d<20時,利用KD樹(1975年提出)。學習

  提出近似(最優解的宇普西龍鄰域內的點均可以返回)的概念,這個理念的思想是許多狀況下近似解和最優解差異不大。編碼

  k分類算法,近朱者赤、近墨者黑,判斷一個點屬於哪一類就看他周圍的點多數屬於哪一類。若是k過小,容易受噪聲點影響,k太大,會由於很遠的點包含進來而影響算法性能。
k-means算法的一個計算瓶頸是爲每一個數據點找最近類心。spa

2.2 算法基礎

  主流的哈希算法能夠看作是降維,所以先介紹降維算法。
  降維包括特徵提取和特徵選擇。特徵提取是選擇某幾維,好比研究基因對XXX的影響,就研究某幾個基因就好了,感受有點像物理實驗中的控制變量法。
  特徵提取是構造了原有的特徵,好比隨機投影、PCA,LDA(線性判別(discriminant)分析)。這些降維算法均可以轉換爲哈希算法。
  隨機投影基於Johnson-Lindenstrauss定理。.net

  筆者注:Johnson–Lindenstrauss 定理是我在今晚的一個學術報告裏據說的一個很是使人驚訝的定理。簡單說來,它的結論是這樣的:一個一百萬維空間裏的隨便一萬個點,必定能夠幾乎被裝進一個幾十維的子空間裏!htm

  嚴格說來是這樣:在 M 維空間中的 N 個點,幾乎老是被包含在一個 D 維子空間裏的。這裏的 D 按照直覺應當等於 N 的階,但是實際上咱們只須要讓 D 是 log(N) 的階就能夠了。這裏「幾乎被包含在」的確切含義是它在這個子空間上的投影幾乎是等距的(容許有一個 ε 的偏差,而常數 D/log(N) 就依賴於 ε)。很顯然,這件事情在高維數據降維時有極重要的意義。排序

  這個定理的證實很初等。它依賴於這樣的一個基本機率事實:一個隨機的 M 維單位向量到一個隨機的 D 維子空間上的投影的長度幾乎必定約等於 D/M。這件事情自己也有點不一樣尋常,雖然它能夠經過簡單的計算來證明。這是機率論計算中經常出現的因爲高維度而致使的反直覺現象的一例。索引

  這讓我想起另外一個高維度致使的悖論,是我在學大數定律時瞭解到的。在 M 維單位立方體中隨機取一個點,當 M 充分大時根據大數定理容易算出這個點到立方體中心的距離幾乎必定等於 √(M/3)/2。因而這就說明 M 維實心單位立方體幾乎就徹底位於一個半徑爲 √(M/3)/2 的球殼上。這裏沒有任何搗鬼之處,事實上就是如此。

  http://imaginary.farmostwood.net/573.html

  PCA若是映射爲一個點的話,那麼丟失休息,因此,映射後的數據要方差最大,保證數據比較離散,儘量地保留多的信息。

  LDA是有監督的線性降維方法,和PCA不一樣,他要求儘量使數據被容易區分,即同一類數據點儘量拷進,不一樣類的儘量分散。
  還有就是保留局部投影,這就是譜方法。

三.相關工做

  在實際應用中,咱們每每不必定須要用到真實的最近鄰,許多時候咱們都只須要在很短的時間內獲得近似的最近鄰便可,這也給了研究學者一個新的研究的方向。
  超平面分割的哈希隨着編碼長度的增長性能並不能顯著增長。
  迭代量化哈希能提高二值哈希的均衡性,從而提高性能。
  譜哈希挖掘數據的內部結構。
  球哈希能顯著增長準確度。

四.密度哈希算法

  先用k-means算法對數據分組,不過大量數據下k-means運行時間很長,因此須要讓算法P次後中止迭代(P=5)。假設產生了k個組,那麼就以每一個組內的中心點做爲投影向量。

  www.zjucadcg.cn/dengcai/Data/DSH.html
  www.zjucadcg.cn/dengcai/Data/NNSData.html
  www.zjucadcg.cn/dengcai/Data/DimensionReduction.html

五.基於壓縮感知的哈希算法

  據Jonson Lindenstrauss定理爲了使一個含有個點的數據點集在投影到低維空間後依然很好地保持着點對距離,咱們必須構建大約O(ln n/ε^2)個隨機投影向量,其中ε(Epsilon)參數是距離估計的相對偏差。

  在這一章,針對前面所提到的目前主流哈希算法所存在的問題,咱們將提出一個新的哈希算法:基於壓縮感知的哈希算法(這個算法結合了稀疏編碼技術和壓縮感知理論。這個算法的主要思想是基於壓縮感知理論中的一個重要的性質受限等距性質。這個性質強調了對於任意一個稀疏的向量,隨機投影保持這些高維稀疏向量之間的歐氏距離的機率都是很是大的。

  根據J-L定理,咱們能夠想到的最直接的方法就是把高維數據投影到低維空間,而後用一些高效的能在低維空間快速檢索最近鄰的方法(如kd-tree樹)來處理查詢。這個方法的主要問題在於爲了使得每一個點的最近鄰都能以很大的機率在檢索的過程當中被返回,須要K這麼大才能夠,顯然這是不能使人滿意的。

相關文章
相關標籤/搜索