Locality-sensitive hashing
Tavoite: Etsiä dokumentit, joiden Jaccard- samankaltaisuus on vähintään t
Locality Sensitive Hashing -algoritmin yleisenä ideana on löytää sellainen algoritmi, että jos syötämme kahden dokumentin allekirjoitukset, se kertoo, että nämä kaksi dokumenttia muodostavat ehdollisen parin tai eivät muodosta, ts. niiden samankaltaisuus on kynnysarvoa t suurempi. On muistettava, että allekirjoitusten samankaltaisuutta käytetään alkuperäisten asiakirjojen Jaccard- samankaltaisuuden korvikkeena.
Kohtaisesti min-hash-allekirjoitusmatriisia varten:
- Hashataan allekirjoitusmatriisin M sarakkeet useilla hash-funktioilla
- Jos 2 dokumenttia hashataan samaan kauhaan vähintään yhdellä hash-funktiolla, voimme ottaa 2 dokumenttia ehdokkaiden pariksi
Kysymys kuuluu, miten luodaan erilaisia hash-funktioita. Tätä varten teemme band partition.
Band partition
Tässä on algoritmi:
- Jaa allekirjoitusmatriisi b-kaistoihin, joissa kussakin kaistassa on r riviä
- Kunkin kaistan osalta, Hashaa sen osuus kustakin sarakkeesta hash-taulukkoon, jossa on k ämpäriä
- Kandidaattisarakepareja ovat ne, jotka hashataan samaan ämpäriin vähintään yhdessä kaistassa
- Viritä b ja r niin, että saadaan kiinni useimmat samankaltaiset, mutta vain vähän ei- samankaltaisia pareja
Tässä on muutama huomio. Ihannetapauksessa jokaisessa kaistassa haluamme k:n olevan yhtä suuri kuin kaikki mahdolliset arvojen yhdistelmät, joita sarake voi ottaa kaistan sisällä. Tämä vastaa identiteettisovitusta. Mutta tällä tavalla k on valtava luku, joka on laskennallisesti mahdoton toteuttaa. Esimerkiksi: Jos kaistassa on 5 riviä. Jos allekirjoituksen elementit ovat 32-bittisiä kokonaislukuja, k on tässä tapauksessa (2³²)⁵ ~ 1.4615016e+48. Voit nähdä, mikä on ongelma tässä. Normaalisti k:n arvoksi otetaan noin miljoona.
Ajatuksena on, että jos kaksi asiakirjaa on samankaltaisia, ne esiintyvät ehdokasparina vähintään yhdessä kaistassa.
Valinta b & r
LSH-yhteenveto
- Viritä M, b, r niin, että saadaan lähes kaikki dokumenttiparit, joilla on samankaltaiset allekirjoitukset, mutta eliminoidaan suurin osa pareista, joilla ei ole samankaltaisia allekirjoituksia
- Tarkistetaan keskusmuistissa, että ehdokaspareilla todella on samankaltaiset allekirjoitukset