最近鄰搜索神器——一文讀懂局部敏感哈希LSH原理

什麼是LSH?

LSH主要用來解決高維空間中點的近似最近鄰搜索問題,即Approximate Nearest Neighbor(ANN)。
在實際的應用中我們所面對的數據是海量的,並且有着很高的維度。在對數據的各種操作中,查詢操作是最常見的一種,這裏的查詢是指輸入一個數據,查找與其相似的數據,那麼怎樣快速從海量高維數據中找到與某個數據最相似的數據,成爲了一個難點。

傳統的哈希算法通過哈希函數建立哈希表,由哈希表我們能夠得到O(1)的查找時間性能,傳統哈希算法的關鍵在於,找到合適的哈希函數,將原始數據映射到相對應的桶內,如果不同的數據,映射到了同一個位置就是發生了衝突,這是傳統哈希算法所避免的。

局部敏感哈希(LSH)的想法恰恰和傳統的哈希算法相反,我們渴望衝突,但是我們希望的是原先相鄰的兩個數據能夠以較高的概率被映射爲同一個哈希值,而相似對很低的數據以極低的概率映射成同一個哈希值.這樣的函數我們叫LSH。

LSH最根本的作用就是能夠高效的處理海量高維數據的最近鄰問題,其最大的特點就是保持數據的相似性。

一個不滿足LSH的簡單例子。

假設一個哈希函數H(x)=x%9H(x) = x \% 9

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