Articles

Locality Sensitive Hashing (LSH)–o soluție scalabilă pentru deduplicarea joburilor din mai multe surse

înapoi la subiect — de ce contează deduplicarea?

folosim un corpus masiv de posturi de locuri de muncă din Kalibrr combinate cu posturi de locuri de muncă minate din diverse postări publice de locuri de muncă pentru a ne antrena modelul. A avea mai multe locuri de muncă în corpusul nostru care conține descrieri similare ale postului va fi în detrimentul modelului. Exemplu de care este prezentat în imaginea de mai jos.

Different jobs with the same descriptions

Duplicate job descriptions associated to varying positions can affect the model’s performance in distinguishing context between different job titles. Deoarece învățarea profundă și, în general, învățarea automată, modelele sunt instruite să învețe o funcție care mapează un set de caracteristici pe categorii sau optimizează un obiectiv, având intrări similare, dar asociate cu ținte diferite, vor avea cu siguranță un impact asupra încrederii și performanței modelului.

pe lângă problema performanței predictive, formarea unui model cu un corpus mare în care majoritatea datelor sunt duplicate va consuma resurse de calcul inutile.

aceasta este o ilustrare a modului în care înțelegerea datelor poate avea un impact ușor asupra performanței modelului.

Tf-Idf — un algoritm simplu de deduplicare

detectarea duplicatelor se poate face într-o varietate de moduri. Reprezentarea documentelor în reprezentări vectoriale simple precum tf-idf poate fi o metodă rezonabilă pentru descoperirea documentelor aproape similare. Acest lucru se poate face prin compararea metricilor de similitudine, cum ar fi cosinusul sau similitudinea euclidiană între vectorii de documente.

arătăm în fragmentul următor cum putem aplica algoritmul pentru a identifica texte aproape identice.

Tf-IDF aplicat la descoperirea textului aproape duplicat.

în timp ce această metodă funcționează în corpuri mici, acest lucru este destul de dificil de scalat datorită dimensionalității rezultate a vectorilor după transformarea documentelor. De asemenea, rețineți că a fost nevoie de 319 ms pentru ca scriptul să ruleze întreaga conductă. Aceasta este una dintre multele manifestări ale „blestemului dimensionalității” — dimensionalitatea ridicată a transformării are impact atât asupra complexității spațiului, cât și a timpului analizei.

hashing — ul sensibil la localitate (LSH) – tehnica scalabilă

o soluție la această problemă este Hashing-ul sensibil la localitate (LSH). Metoda LSH poate efectua o analiză aproape de similitudine pe seturi de date masive. Folosește hashing pentru a mapa documentele în găleți cu dimensionalitate care este ordine de mărime mai mică decât o transformare echivalentă tf-idf. Această proprietate face LSH convenabil de utilizat în aplicații la scară largă, cum ar fi extragerea textului.

LSH folosește algoritmul minhash pentru a calcula probabilitatea de coliziune. S-a demonstrat că probabilitatea de coliziune în LSH folosind minhash este echivalentă cu metrica de similitudine Jaccard. Pe scurt, similitudinea Jaccard calculează intersecția a două seturi împărțite la unirea elementelor din fiecare set. Formula este prezentată mai jos.

similitudinea Jaccard cuantifică următoarea idee — două grupuri care au elemente mai comune sunt susceptibile de a fi similare.

Iată un fragment despre LSH conform wikipedia:

hashing-ul sensibil la localitate (LSH) reduce dimensionalitatea datelor de înaltă Dimensiune. LSH hashes elemente de intrare, astfel încât elemente similare harta la aceleași „găleți” cu probabilitate mare (numărul de găleți fiind mult mai mic decât universul de elemente de intrare posibile). LSH diferă de funcțiile hash convenționale și criptografice, deoarece își propune să maximizeze probabilitatea unei „coliziuni” pentru articole similare. Hashing-ul sensibil la localitate are multe în comun cu gruparea de date și căutarea celui mai apropiat vecin.

LSH la locul de muncă

vom arăta mai jos o implementare a LSH, folosind acest modul, aplicat la același exemplu ilustrat mai sus.

LSH aplicat pentru descoperirea textului aproape duplicat.

rezultatele arată că întreaga conductă este de aproximativ 4 ori mai rapidă decât versiunea Tf-Idf. Această diferență este mai drastică odată ce se utilizează un set de date mai mare. Am exclus analiza performanței memoriei acum, dar vom scrie un punct de referință mai cuprinzător între cele două metode într-un post separat.

am aplicat LSH corpusului nostru și am văzut că unele postări de locuri de muncă cu conținut aproape similar apar de peste 200 de ori!

Gânduri finale

în timp ce Tf-Idf este mai popular și un model mai familiar pentru lucrul cu similitudinea textului; dacă se ocupă de seturi de date la scară, LSH este un model mai convenabil. Chiar și pentru seturi de date mai mici, LSH oferă o îmbunătățire considerabilă a timpului de calcul.

capacitatea de deduplicare corectă a unui corpus reduce zgomotul din datele de antrenament, economisește resurse de calcul și ajută la învățarea unui model mai precis pentru cazul nostru de utilizare.

credem că există o multitudine de probleme la care LSH poate fi aplicat, cum ar fi:

  • Duplicate image cleanup: aplicați LSH pe caracteristicile imaginii și păstrați doar o imagine unică din fiecare coș.
  • Chatbots: identificați în apropierea intrărilor similare și instruiți un model pentru a identifica cel mai bun răspuns din Baza de cunoștințe.
  • recomandări motor: elemente de grup cu caracteristici aproape similare și aproba elemente pentru utilizatori.

Simțiți-vă liber să explorați și să încercați LSH la propriile probleme! 🙂

referințe la LSH

aceste articole ilustrează destul de bine modul în care funcționează LSH și arată exemple, de asemenea.

Iată un curs despre minarea seturilor de date masive care discută despre LSH.

Urmați-ne!

publicăm continuu articole despre învățarea automată, învățarea profundă, NLP, programarea probabilistică și proiectele de analiză pe care le facem la Kalibrr Research. Urmați-ne pentru a obține notificat cu privire la posturile noastre viitoare! 🙂