一.摘要
最緊鄰檢索:一種樹基於樹結構,一種是基於hash
a.隨機投影算法,需要產生很多哈希表,才能提高性能。
b.基於學習的哈希算法在哈希編碼較短時候性能不錯,但是增加編碼長度並不能顯著提高性能。
隨機投影:實際上就是隨機的,實際上需要挖掘使用數據的內部結構,結合最大熵原理。
基於密度的哈希就是依據數據分布產生最合理的投影。
數據稀疏:稀疏編碼+ 壓縮感知
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算法的一個計算瓶頸是為每個數據點找最近類心。
2.2 算法基礎
主流的哈希算法可以看做是降維,因此先介紹降維算法。
降維包括特征提取和特征選擇。特征提取是選擇某幾維,比如研究基因對XXX的影響,就研究某幾個基因就行了,感覺有點像物理實驗中的控制變量法。
特征提取是構造了原有的特征,比如隨機投影、PCA,LDA(線性判別(discriminant)分析)。這些降維算法都可以轉換為哈希算法。
隨機投影基於Johnson-Lindenstrauss定理。
筆者注:Johnson–Lindenstrauss 定理是我在今晚的一個學術報告里聽說的一個非常令人驚訝的定理。簡單說來,它的結論是這樣的:一個一百萬維空間里的隨便一萬個點,一定可以幾乎被裝進一個幾十維的子空間里!
嚴格說來是這樣:在 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這么大才可以,顯然這是不能令人滿意的。