Hashing sensibil la localitate

De la Wikipedia, enciclopedia liberă.
Salt la navigare Salt la căutare

Hash-ul sensibil la localitate ( LSH ) [1] [2] este o metodă de reducere a dimensionalității spațiului vectorial al unui set de date.

Motive

Cantitatea mare de date care urmează să fie procesate, în principal calculul distanței dintre obiectele ( elementele ) unui set de date , este o constrângere majoră la dezvoltarea de aplicații de sistem în timp real pentru a satisface întrebări precum similaritatea dintre (părți din ) imagini sau (extrase din) muzică.

Ideea principală este de a aplica o funcție pentru hash articolelor din intrare astfel încât să se ciocnească, cu probabilitate mare, articole similare în aceleași containere (cupă). Numărul de găleți este mult mai mic decât universul posibilelor elemente de intrare. Scopul este de a ajunge la un hashing pe două niveluri:

  • funcția LSH mapează un element într-o găleată ;
  • o funcție hash standard mapează conținutul acestor găleți într-un tabel hash de lungime M.

Dimensiunea maximă a cupei a doua tabelă hash va fi numită B.

Recrutări

Cu metoda LSH vrem să ne asigurăm că corelăm distanța a două puncte Și probabilitatea coliziunii într-o găleată. Cu cât distanța dintre puncte este mai mare, cu atât probabilitatea lor de coliziune este mai mică.

Definiție

  • este funcția de distanță între elementele unui set ;
  • indică, pentru fiecare punct , ansamblul elementelor din care stau la distanță din .

Să luăm în considerare o funcție hash aleasă aleatoriu din familia LSH de funcții hash disponibile . O familie LSH de funcții din set la întreg se spune -sensibil pentru dacă pentru fiecare pereche de puncte (care este reprezentarea interogării) e (care este punctul care îndeplinește condițiile de mai jos) aparținând mulțimii :

  • de sine asa de
  • de sine asa de

Pentru ca familia LSH să fie utilă în scopurile pe care și le-a stabilit, trebuie îndeplinite cele două condiții:

  • ;
  • .

De obicei se ia în considerare cu .

Interpretare grafică

Într-un spațiu bidimensional există două cercuri concentrice centrate pe reprezentarea interogării . Amintindu-mi asta Și reprezintă subseturi ale setului de date :

  • Cercul interior al razei conține punctele a setului de date care au, după cum s-a descris anterior, o probabilitate mai mare decât pragul să fie hash în aceeași găleată.
  • Cercul exterior al razei exclude puncte a setului de date care au, după cum s-a descris anterior, o probabilitate mai mică decât pragul să fie hash în aceeași găleată.

LSH și distribuții stabile

Funcția hash [3] mapează un vector cu d dimensiuni într-un set de numere întregi. Fiecare funcție hash aparținând familiei este selectată prin alegerea aleatorie Și unde este este un vector cu dimensiuni d ale cărui componente sunt alese independent de o distribuție stabilă e este un număr real ales uniform în intervalul [0, r]. Reparați-vă funcția hash se calculează prin relație .

Căutați vecinii cei mai apropiați

Una dintre principalele aplicații ale LSH este de a oferi un algoritm eficient pentru cea mai apropiată problemă de căutare a vecinilor . Având în vedere orice familie LSH algoritmul are doi parametri principali:

  • lațimea ;
  • numărul de tabele hash .

Să începem prin a defini o nouă familie a funcțiilor hash , unde fiecare funcție se obține prin concatenare funcții din , adică

Alegerea concatenării funcții hash pentru a obține se justifică prin faptul că vrem să amplificăm diferența dintre probabilitatea mare și probabilitatea redusă .

Cu alte cuvinte, o funcție hash luată la întâmplare din se obține prin concatenare funcții hash luate la întâmplare de la .

Ulterior algoritmul se construiește tabele hash, fiecare corespunzând unei funcții hash diferite .

În faza de preprocesare facem un hash din toate punctele setului de date în fiecare dintre mese de hash. Deoarece tabelele hash rezultate au numai intrări diferite de zero, puteți reduce utilizarea memoriei pentru fiecare funcție hash la folosind funcții hash standard.

Având în vedere întrebarea (interogare) către sistemul astfel creat, algoritmul iterează peste funcții hash . Pentru fiecare , recuperează punctele setate de date care au fost mapate din hash în același compartiment în care a fost mapat . Procesul se termină atunci când se găsește un punct de distanță din .

Notă

  1. ^ Gionis, A., Indyk, P. , Motwani, R. , Similarity Search in High Dimensions via Hashing ( ps ), în Proceedings of the 25th Very Large Database (VLDB) Conference , 1999.
  2. ^ Piotr Indyk , Rajeev Motwani , Vecinii cei mai apropiați aproximativi: spre îndepărtarea blestemului dimensiunii. ( ps ), în Proceedings of 30th Symposium on Theory of Computing , 1998.
  3. ^ Datar, M., Immorlica, N., Indyk, P. , Mirrokni, VS, Locality-Sensitive Hashing Scheme Based on p-Stable Distributions ( ps ), în Proceedings of the Symposium on Computational Geometry , 2004.

Elemente conexe