LSH算法原理


原始鏈接--http://www.jiahenglu.net/NSFC/LSH.html

LSH(Location Sensitive Hash),即位置敏感哈希函數。與一般哈希函數不同的是位置敏感性,也就是散列前的類似點經過哈希之后,也可以在一定程度上類似,而且具有一定的概率保證。

形式化定義:

對於隨意q,p屬於S,若從集合S到U的函數族H={h1,h2...hn}對距離函數D(,),如歐式距離、曼哈頓距離等等,滿足條件:

image 

則稱D(,)是位置敏感的。

例如以下圖,空間上的點經位置敏感哈希函數散列之后,對於q,其rNN有可能散列到同一個桶(如第一個桶),即散列到第一個桶的概率較大,會大於某一個概率閾值p1;而其(1+emxilong)rNN之外的對象則不太可能散列到第一個桶,即散列到第一個桶的概率非常小,會小於某個閾值p2.

image

LSH的作用

◆高維下近似查詢

類似性檢索在各種領域特別是在視頻、音頻、圖像、文本等含有豐富特征信息領域中的應用變得越來越重要。豐富的特征信息一般用高維向量表示,由此類似性檢索一般通過K近鄰或近似近鄰查詢來實現。一個理想的類似性檢索一般須要滿足下面四個條件:

1. 高准確性。即返回的結果和線性查找的結果接近。

2. 空間復雜度低。即占用內存空間少。理想狀態下,空間復雜度隨數據集呈線性增長,但不會遠大於數據集的大小。

3. 時間復雜度低。檢索的時間復雜度最好為O(1)或O(logN)。

4. 支持高維度。可以較靈活地支持高維數據的檢索。

傳統主要方法是基於空間划分的算法——tree相似算法,如R-tree,Kd-tree,SR-tree。這樣的算法返回的結果是精確的,可是這樣的算法在高維數據集上的時間效率並不高。實驗[1]指出維度高於10之后,基於空間划分的算法時間復雜度反而不如線性查找。LSH方法可以在保證一定程度上的准確性的前提下,時間和空間復雜度得到減少,而且可以非常好地支持高維數據的檢索。

◆分類和聚類

依據LSH的特性,就可以將相近(類似)的對象散列到同一個桶之中,則能夠對圖像、音視頻、文本等豐富的高維數據進行分類或聚類。

◆數據壓縮。如廣泛地應用於信號處理及數據壓縮等領域的Vector Quantization量子化技術。

總而言之,哪兒須要近似kNN查詢,哪兒都能用上LSH.

[1] Weber R, Schek H, Blott S. A quantitative analysis and performance study for similarity search methods in high dimensional spaces Proc.of the 24th Intl.Conf.on Very Large Data Bases (VLDB).1998:194-205


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM