LSH函數性質
在一個
這樣,通過一個LSH就能過濾掉很多相距較遠的點。但是會存在False Positive(FP),即有些相距較遠的點也可能投影距離很近。
爲減少FP,常會構造一個含有
爲解決這一問題,常構造
還有問題:
L 個hash table中至少在一個hash table上發生碰撞的概率P=1−(1−Pc)L=1−(1−p(s)m)L
但C2LSH裏只有一組複合哈希函數,沒有多組,卻也取得了精度上的概率保證,那麼他有沒有處理False Negative,怎麼處理的?這是本帖關心的主要問題。
博主認爲其原因在於C2LSH改變了候選點評估標準。
在原始LSH框架下,候選點的選取標準是“至少在一個複合哈希函數上發生碰撞”。那麼什麼叫“在一個複合哈希函數上發生碰撞”呢?就是指在該複合哈希函數中的“每一個哈希函數上都發生碰撞”。也就是說,假設一個複合哈希函數裏共有m個哈希函數,某個點只在
C2LSH只採用一個複合哈希函數,但是它改變了候選點評價標準。不再要求候選點必須要在每一個哈希函數上都發生碰撞。而是所有數據點來統計在m個函數上發生碰撞的次數(即Count Collisions,這是C2的由來)。碰撞次數多的點認爲其質量更高。通俗地講,由於兩個點發生碰撞的概率隨兩者之間距離的減小而提升,碰撞概率*哈希函數個數=碰撞次數。碰撞次數大是因爲碰撞概率大,那就說明這個點更近。
換句話說,在C2LSH裏,哪怕碰撞次數排在第一的點,只要其碰撞次數小於m,那麼在原始機制裏是不能被當做候選點的,而是成爲FN。
改變了原來機制中的候選點評價機制,還能用原來的理論保證嗎,容我再去看看再給出答案。