Locality Sensitive Hashing(LSH) e
Hamming-LSH
Traduzione e Integrazione
delle Lezioni a cura di Sandro Gallo
Home Min-Hashing e k-Min-Hashing Web Search - Page Rank
Il LSH serve a trovare la similarità tra colonne usando
la matrice delle segnature.
Il Min-LSH funziona così: prende

matrice kxm e la partiziona in l sottomatrici di dimensione rxm
con k=lr. Quindi per ogni sottomatrice ripete i seguenti
passi:
- Fai l'hash di ogni colonna.
- Se due colonne finiscono nello stesso bucket, allora sono
candidate per essere simili.
- Dopo aver selezionato i candidati, verifica che ogni coppia
candidata sia effettivamente simile controllando la
similarità delle segnature.
- Per aumentare la probabilità che colonne simili stiano
nello stesso hash bucket, ripeti il processo j volte.
Un altro metodo per trovare coppie di colonne con alta
similarità è l'Hamming-LSH, la cui idea è
ridurre il problema a cercare coppie di colonne con una piccola
distanza di Hamming. La similarità e la distanza di
Hamming sono legate dal seguente lemma:

Cioè quando consideriamo coppie con

fisso, allora la similarità è inversamente
proporzionale alla distanza di Hamming.
Con l'H-LSH non avremo bisogno delle segnature ma sceglieremo
collezioni random di colonne di densità simile. Per ogni
insieme di colonne, sceglieremo le coppie con minima distanza di
Hamming e quindi ricaveremo colonne simili usando i dati veri,
invece di quelli filtrati con l'hashing come avviene nel
Min-Hashing.
Il problema è che la matrice è sparsa e non
è detto che le sue colonne abbiano densità
simili.
Il problema è risolto con una serie di matrici M0, M1, M2,
... ognuna con densità maggiore, tali che ogni Mi+1
è ottenuta da Mi appaiando random le righe di Mi e
mettendo l'OR in Mi+1. Mi+1 contiene metà delle righe di
Mi. L'algoritmo è il seguente:
- Sia M0 = M, genera la sequenza M1, M2, ... come descritto
sopra.
- Per ogni i>=0, seleziona k insiemi di r campioni di righe
da Mi.
- Una coppia di colonne è candidata se esiste un i tale
che:
- La coppia di colonne ha densità compresa
nell'intervallo

in Mi, dove t è un parametro che indica il range di
densità per le coppie candidate.
- E gli hash di questa coppia coincidono in almeno uno dei k
insiemi.
Se n è il numero di righe, log n è il numero totale
di matrici e il numero totale di righe in tutte le matrici
è 2n.
Home Min-Hashing e k-Min-Hashing Web Search - Page Rank