Locality Sensitive Hashing,LSH


1. 基本思想

局部敏感(Locality Senstitive):即空間中距離較近的點映射后發生沖突的概率高,空間中距離較遠的點映射后發生沖突的概率低。

局部敏感哈希的基本思想類似於一種空間域轉換思想,LSH算法基於一個假設,如果兩個文本在原有的數據空間是相似的,那么分別經過哈希函數轉換以后的它們也具有很高的相似度;相反,如果它們本身是不相似的,那么經過轉換后它們應仍不具有相似性。

假設一個局部敏感哈希函數具有10個不同的輸出值,而現在我們具有11個完全沒有相似度的數據,那么它們經過這個哈希函數必然至少存在兩個不相似的數據變為了相似數據。從這個假設中,我們應該意識到局部敏感哈希是相對的,而且我們所說的保持數據的相似度不是說保持100%的相似度,而是保持最大可能的相似度

對於局部敏感哈希保持最大可能的相似度的這一點,我們也可以從數據降維的角度去考慮。數據對應的維度越高,信息量也就越大,相反,如果數據進行了降維,那么毫無疑問數據所反映的信息必然會有損失。哈希函數從本質上來看就是一直在扮演數據降維的角色。

2. Min-Hashing

定義:特征矩陣按行進行一個隨機的置換后,第一個列值為1的行的行號。

對於兩個數據\(C_1\)\(C_2\),在Min-Hashing方法中,hash值相等的概率等於這兩個數據降維前的Jaccard相似度(兩個集合的交比兩個集合的並)。用公式描述即:

\[Pr[h_\pi(C_1) = h_\pi (C_2)] = sim(C_1, C_2) \]

每一個置換等同於一個hash函數,多個置換構成一個hash函數族。假設我們擁有n個hash函數,要求在原始空間相似的兩個數據在hash之后得到的n個值均相等的條件過於苛刻,所得到的精確率是很高,但是同樣的召回率也會非常低。因此,我們放松了要求,在n個hash函數划分為b個hash函數族,只要兩個數據在某一個hash函數族的值均相等,就認為這兩個數據相似。

在上述定義下,兩個數據在低維空間相似的概率為:\(1−(1−s^r)^b\)。解釋如下:

  • 對於兩個數據的任意一個函數族來說,這兩個函數族值相同的概率是:\(s^r\),其中s∈[0,1]是這兩個文檔的相似度。
  • 也就是說,這兩個函數族不相同的概率是\(1−s^r\)
  • 這兩個文檔一共存在b個函數族,這bb個函數族都不相同的概率是\((1−s^r)^b\)
  • 所以說,這b個函數族至少有一個相同的概率是\(1-(1−s^r)^b\)

以上過程可以為一個簡單的AND-OR邏輯,這個邏輯同樣也應用於下述基於p穩定分布的LSH中。

3. E2LSH:p穩定分布

定義:對於一個實數集R上的分布D,如果存在P>=0,對任何n個實數v1,…,vn和n個滿足D分布的變量X1,…,Xn,隨機變量\(\sum_iv_ix_i\)\((\sum_i|v_i|^{p})^{1/p}x\)有相同的分布,其中\(x\)是服從D分布的一個隨機變量,則稱D為一個p穩定分布。

利用p穩定分布可以有效的近似高維特征向量,並在保證度量距離的同時,對高維特征向量進行降維,其關鍵思想是,產生一個d維的隨機向量\(X\),隨機向量\(X\)中的每一維隨機、獨立得從p穩定分布中產生。對於一個d維的特征向量\(V\),如定義,隨機變量\(X.V\)具有和\((\sum_i|v_i|^{p})^{1/p}X\)一樣的分布,因此可以用\(X.V\)表示向量\(V\)來估算\(||V||_p\)

p-穩定 LSH通過涉入p穩定分布和點積的概念,實現了LSH算法在歐幾里得空間下的直接應用,而不需要嵌入Hamming空間。p-stable LSH中,度量是歐幾里得空間下的lp准則,即向量v1v2的距離定義為||v1-v2||p,然后通過設定的哈希函數將原始點映射到直線的等長線段上,每條線段便相當於一個哈希桶,與LSH方法類似,距離較近的點映射到同一哈希桶(線段)中的概率大,距離較遠的點映射到同一哈希桶中的概率小,正好符合局部敏感的定義。

hash函數:p穩定分布下的hash函數為\(h_{x, b} (v) = \left \lfloor \frac{x.v + b}{w} \right \rfloor\),用於將d維的特征向量映射到整數集。其中\(x\)為d維向量,每一維都獨立取自於p穩定分布,b為[0,w]范圍內的隨機數。其作用效果圖如下:

哈希表的設計:將哈希過后的向量直接存入hash表,占用內存又不便於查找。因此論文定義了額外兩個hash函數:

\[h_1(x_1, x_2, ..., x_k) = ((\sum_{i=1}^{k} r_i a_i) mod C) mod tableSize \]

\[h_2(x_1, x_2, ..., x_k) = ((\sum_{i=1}^{k} r_i a_i) mod C) \]

其中,h1的值作為哈希表索引,h2的值作為鏈表中的關鍵字,\(r_1\)\(r_2\)為隨機整數,\(C\)的取值為\(2^{32} - 5\)

4. 缺點

LSH:

  • 典型的基於概率模型生成索引編碼的結果並不穩定。雖然編碼位數增加,但是查詢准確率的提高確十分緩慢;
  • 需要大量的存儲空間,不適合於大規模數據的索引。

E2LSH:

  • E2LSH方法的目標是保證查詢結果的准確率和查全率,並不關注索引結構需要的存儲空間的大小;
  • E2LSH使用多個索引空間以及多次哈希表查詢,生成的索引文件的大小是原始數據大小的數十倍甚至數百倍。

5. 疑問

\(\sum_iv_ix_i\)\((\sum_i|v_i|^{p})^{1/p}X\)在滿足相同分布的前提下,有什么特點?或則說如果\(X\)不符合p穩定分布,對結果有什么影響?

  • 向量距離的度量可以用范數表示,假設向量\(V = V_1 - V_2\),那么\(||V||_p\)即表示向量\(V_1\)\(V_2\)的原始空間下的p范數距離;
  • 點乘的幾何意義表示一個向量在另一個向量下的投影表示,因此\(V_1.X - V_2.X = X.V = \sum_iv_ix_i\)表示的是向量\(V_1\)\(V_2\)在向量\(X\)下投影的距離;
  • \(X\)滿足p穩定分布的前提下,可知(1)和(2)下的兩個距離具有相同的分布,即滿足了局部敏感的特點。

6. 參考


免責聲明!

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



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