Locality Sensitive Hashing (LSH)–skalowalne rozwiązanie do deduplikacji zadań z wielu źródeł
powrót do tematu — dlaczego deduplikacja ma znaczenie?
używamy ogromnego korpusu stanowisk pracy z Kalibrr w połączeniu z wykopanymi stanowiskami pracy z różnych publicznych ofert pracy, aby szkolić nasz model. Posiadanie wielu stanowisk w naszym korpusie zawierających podobne opisy stanowisk będzie szkodliwe dla modelu. Którego przykład pokazano na poniższym obrazku.
Duplicate job descriptions associated to varying positions can affect the model’s performance in distinguishing context between different job titles. Od uczenia głębokiego, a w ogóle uczenia maszynowego, modele są szkolone w celu uczenia się funkcji, która mapuje zestaw funkcji do kategorii lub optymalizuje cel, mając dane wejściowe, które są podobne, ale są powiązane z różnymi celami, z pewnością wpłyną na pewność i wydajność modelu.
oprócz kwestii wydajności predykcyjnej, szkolenie modelu z dużym korpusem, w którym większość danych jest duplikatami, pochłonie niepotrzebne zasoby obliczeniowe.
jest to ilustracja tego, jak zrozumienie danych może łatwo wpłynąć na wydajność modelu.
Tf-Idf — prosty algorytm deduplikacji
wykrywanie duplikatów może odbywać się na wiele sposobów. Reprezentowanie dokumentów w prostych reprezentacjach wektorowych, takich jak TF-idf, może być rozsądną metodą odkrywania prawie podobnych dokumentów. Można to zrobić, porównując metryki podobieństwa, takie jak cosinus lub podobieństwo euklidesowe między wektorami dokumentu.
pokazujemy w poniższym fragmencie jak możemy zastosować algorytm do identyfikacji prawie identycznych tekstów.
chociaż ta metoda działa w małych korpusach, jest to dość trudne do skalowania ze względu na wynikową wymiarowość wektorów po przekształceniu dokumentów. Należy również zauważyć, że uruchomienie całego potoku zajęło skryptowi 319 ms. Jest to jeden z wielu przejawów „przekleństwa wymiarowości” — wysoka wymiarowość transformacji wpływa zarówno na złożoność przestrzenną, jak i czasową analizy.
Locality Sensitive Hashing (LSH) — technika skalowalna
rozwiązaniem tego problemu jest Locality Sensitive Hashing (LSH). Metoda LSH może wykonywać analizę zbliżoną do podobieństwa na ogromnych zbiorach danych. Używa haszowania do mapowania dokumentów na wiadra o wymiarach o rząd wielkości mniejszych niż równoważna transformacja TF-idf. Ta właściwość sprawia, że LSH jest wygodny w użyciu w aplikacjach o dużej skali, takich jak eksploracja tekstu.
LSH wykorzystuje algorytm minhash do obliczenia prawdopodobieństwa kolizji. Wykazano, że prawdopodobieństwo kolizji w LSH przy użyciu minhash jest równoważne metryce podobieństwa Jaccarda. W skrócie podobieństwo Jaccard oblicza przecięcie dwóch zbiorów podzielonych przez Związek elementów w każdym zbiorze. Którego wzór przedstawiono poniżej.
podobieństwo Jaccard wyraża następującą ideę — dwie grupy mające więcej wspólnych elementów mogą być podobne.
oto fragment o LSH według Wikipedii:
hashowanie (LSH) zmniejsza wymiarowość danych o dużych wymiarach. LSH hashuje elementy wejściowe tak, aby podobne elementy z dużym prawdopodobieństwem odwzorowywały te same „buckety” (liczba bucketów jest znacznie mniejsza niż wszechświat możliwych elementów wejściowych). LSH różni się od konwencjonalnych i kryptograficznych funkcji skrótu, ponieważ ma na celu maksymalizację prawdopodobieństwa „kolizji” dla podobnych elementów. Mieszanie wrażliwe na lokalizację ma wiele wspólnego z grupowaniem danych i wyszukiwaniem najbliższych sąsiadów.
LSH w pracy
poniżej pokazujemy implementację LSH, za pomocą tego modułu, zastosowaną do tego samego przykładu zilustrowanego powyżej.
wyniki pokazują, że cały rurociąg jest około 4 razy szybszy niż wersja TF-Idf. Różnica ta jest bardziej drastyczna, gdy używany jest większy zbiór danych. Wykluczyliśmy teraz analizę wydajności pamięci, ale w osobnym poście napiszemy bardziej kompleksowy benchmark między tymi dwiema metodami.
zastosowaliśmy LSH do naszego korpusu i widzieliśmy, że niektóre stanowiska o podobnej treści pojawiają się ponad 200 razy!
myśli końcowe
podczas gdy Tf-Idf jest bardziej popularnym i bardziej znanym modelem do pracy z podobieństwem tekstu; jeśli chodzi o zbiory danych, które skalują, LSH jest wygodniejszym modelem. Nawet w przypadku mniejszych zbiorów danych, LSH oferuje znaczną poprawę czasu obliczeniowego.
możliwość prawidłowego deduplikacji korpusu zmniejsza hałas w danych treningowych, oszczędza zasoby obliczeniowe i pomaga nauczyć się dokładniejszego modelu dla naszego przypadku użycia.
uważamy, że istnieje wiele problemów, do których można zastosować LSH, takich jak:
- Duplicate image cleanup: zastosuj LSH na funkcjach obrazu i Zachowaj tylko unikalny obraz z każdego kosza.
- chatboty: zidentyfikuj podobne dane wejściowe i wytrenuj model, aby zidentyfikować najlepszą odpowiedź z bazy wiedzy.
- silnik rekomendacji: Grupuj elementy o prawie podobnych funkcjach i promuj je użytkownikom.
Zapraszam do odkrywania i wypróbowywania LSH na własne problemy! 🙂
odniesienia do LSH
te artykuły dość dobrze ilustrują działanie LSH i pokazują również przykłady.
oto kurs o górnictwie masywnych zbiorów danych, który omawia LSH.
Śledź nas!
stale publikujemy artykuły na temat uczenia maszynowego, uczenia głębokiego, NLP, programowania probabilistycznego i projektów analitycznych, które wykonujemy w Kalibrr Research. Śledź nas, aby otrzymywać powiadomienia o kolejnych postach! 🙂