Articles

Lokalitet Sensitive Hashing (LSH) — en skalbar lösning för deduplicering jobb från flera källor

tillbaka till ämnet-varför deduplicering frågor?

Vi använder en massiv korpus av jobbposter från Kalibrr kombinerat med minskade jobbposter från olika offentliga jobbannonser för att träna vår modell. Att ha flera jobb i vår corpus som innehåller liknande arbetsbeskrivningar kommer att skada modellen. Exempel på vilket visas i bilden nedan.

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. Sedan djupinlärning, och i allmänhet maskininlärning, utbildas modeller för att lära sig en funktion som kartlägger en uppsättning funktioner till kategorier eller optimerar ett mål, med ingångar som liknar men är associerade med olika mål kommer definitivt att påverka modellens förtroende och prestanda.

förutom det prediktiva prestandaproblemet kommer träning av en modell med ett stort korpus där de flesta data är dubbletter att förbruka onödiga beräkningsresurser.

detta är en illustration av hur förståelse av data lätt kan påverka modellens prestanda.

Tf-IDF-en enkel dedupliceringsalgoritm

upptäcka dubbletter kan göras på olika sätt. Att representera dokument i enkla vektorrepresentationer som tf-IDF kan vara en rimlig metod för att upptäcka nästan liknande dokument. Detta kan göras genom att jämföra likhetsmått som cosinus eller euklidisk likhet mellan dokumentvektorer.

vi visar i följande utdrag hur vi kan tillämpa algoritmen för att identifiera nästan identiska texter.

Tf-IDF tillämpas på nästan duplicera text upptäckt.

även om denna metod fungerar i små korpusar är det ganska svårt att skala på grund av vektorernas resulterande dimension efter omvandling av dokumenten. Observera också att det tog 319 ms för skriptet att köra hela rörledningen. Detta är en av de många manifestationerna av ”dimensionalitetens förbannelse” — transformationens höga dimensionalitet påverkar både analysens rymd-och tidskomplexitet.

Locality Sensitive Hashing (LSH) — den skalbara tekniken

en lösning på detta problem är Locality Sensitive Hashing (LSH). LSH-metoden kan utföra nära likhetsanalys på massiva datamängder. Den använder hashing för att kartlägga dokument i hinkar med dimensionalitet som är storleksordningar lägre än en motsvarande TF-IDF-transformation. Den här egenskapen gör LSH bekväm att använda i storskaliga applikationer som textbrytning.

LSH använder minhash-algoritmen för att beräkna sannolikheten för kollision. Det har visats att sannolikheten för kollision i LSH med minhash motsvarar Jaccard-likhetsmätaren. I korthet beräknar Jaccard-likheten skärningspunkten mellan två uppsättningar dividerat med föreningen av elementen i varje uppsättning. Formeln som visas nedan.

Jaccard — likheten kvantifierar följande ide-två grupper som har vanligare objekt kommer sannolikt att vara likartade.

Här är ett utdrag om LSH enligt wikipedia:

Locality-sensitive hashing (LSH) minskar dimensionen av högdimensionella data. LSH hashar inmatningsobjekt så att liknande objekt kartlägger till samma ”hinkar” med stor sannolikhet (antalet hinkar är mycket mindre än universum av möjliga inmatningsobjekt). LSH skiljer sig från konventionella och kryptografiska hashfunktioner eftersom det syftar till att maximera sannolikheten för en ”kollision” för liknande föremål. Lokalitet känsliga hashing har mycket gemensamt med data clustering och närmaste granne sökning.

LSH på jobbet

vi visar nedan en implementering av LSH, med hjälp av denna modul, tillämpad på samma exempel som illustreras ovan.

LSH tillämpas att nästan duplicera text upptäckt.

resultaten visar att hela rörledningen är cirka 4x snabbare än TF-IDF-versionen. Denna skillnad är mer drastisk när en större dataset används. Vi har uteslutit analysen om minnesprestanda nu men vi kommer att skriva ett mer omfattande riktmärke mellan de två metoderna i ett separat inlägg.

Vi har tillämpat LSH på vår corpus och vi har sett att vissa jobbinlägg med nära liknande innehåll visas mer än 200 gånger!

slutliga tankar

medan Tf-IDF är mer populär och en mer bekant modell för att arbeta med textlikhet; om man hanterar dataset som skala, är LSH en bekvämare modell. Även för mindre datamängder erbjuder LSH en avsevärd förbättring av beräkningstiden.

att kunna deduplicera en corpus korrekt minskar brus i träningsdata, sparar beräkningsresurser och hjälper till att lära sig en mer exakt modell för vårt användningsfall.

Vi tror att det finns många problem som LSH kan tillämpas på, till exempel:

  • Duplicate image cleanup: applicera LSH på bildfunktioner och behåll bara en unik bild från varje fack.
  • Chatbots: identifiera nära liknande ingångar och träna en modell för att identifiera det bästa svaret från kunskapsbasen.
  • rekommendationsmotor: gruppera objekt med nästan liknande funktioner och stödja objekt till användare.

Känn dig fri att utforska och prova LSH till dina egna problem! 🙂

referenser på LSH

dessa artiklar illustrerar ganska bra hur LSH fungerar och visar också exempel.

här är en kurs om gruv massiva datamängder som diskuterar LSH.

Följ oss!

Vi publicerar kontinuerligt artiklar om maskininlärning, djupinlärning, NLP, probabilistisk programmering och analysprojekt som vi gör på Kalibrr Research. Följ oss för att få meddelande om våra Nästa inlägg! 🙂