Przewodnik dla początkujących po Latent Dirichlet Allocation(LDA)

Modelowanie tematyczne jest metodą nienadzorowanej klasyfikacji dokumentów, podobną do klasteryzacji danych liczbowych, która znajduje pewne naturalne grupy elementów (tematów), nawet jeśli nie jesteśmy pewni czego szukamy.

Dokument może być częścią wielu tematów, podobnie jak w klasteryzacji rozmytej (soft clustering), w której każdy punkt danych należy do więcej niż jednego klastra.

Dlaczego modelowanie tematyczne?

Modelowanie tematyczne dostarcza metod do automatycznego organizowania, rozumienia, wyszukiwania i podsumowywania dużych archiwów elektronicznych.

  • odkrycie ukrytych tematów w kolekcji.
  • klasyfikacja dokumentów do odkrytych tematów.
  • wykorzystanie klasyfikacji do organizacji/podsumowania/wyszukiwania dokumentów.

Na przykład, powiedzmy, że dokument należy do tematów jedzenie, psy i zdrowie. Więc jeśli użytkownik zapyta „karma dla psów”, może znaleźć wyżej wymieniony dokument odpowiedni, ponieważ obejmuje te tematy (wśród innych tematów). Jesteśmy w stanie określić jego istotność w odniesieniu do zapytania nawet bez przeglądania całego dokumentu.

Dlatego, poprzez adnotację dokumentu, w oparciu o tematy przewidywane przez metodę modelowania, jesteśmy w stanie zoptymalizować nasz proces wyszukiwania.

LDA

Jest to jedna z najbardziej popularnych metod modelowania tematycznego. Każdy dokument składa się z różnych słów, a każdy temat również posiada różne słowa do niego należące. Celem LDA jest znalezienie tematów, do których należy dany dokument, na podstawie słów w nim zawartych. Bardzo zagmatwane? Oto przykład, który Cię przez to przeprowadzi.

Definicja modelu

.

Each document is a collection of words.

We have 5 documents each containing the words listed in front of them( ordered by frequency of occurrence).

What we want to figure out are the words in different topics, as shown in the table below. Each row in the table represents a different topic and each column a different word in the corpus. Each cell contains the probability that the word(column) belongs to the topic(row).

Each topic contains a score for all the words in the corpus.

Finding Representative Words for a Topic

  • We can sort the words with respect to their probability score. każdego tematu wybieramy x najlepszych słów, które będą reprezentować dany temat. Jeśli x = 10, posortujemy wszystkie słowa w temacie1 na podstawie ich wyniku i wybierzemy 10 najlepszych słów do reprezentowania tematu.
    Ten krok nie zawsze jest konieczny, ponieważ jeśli korpus jest mały, możemy przechowywać wszystkie słowa posortowane według ich wyniku.
  • Alternatywnie, możemy ustawić próg na wynik. Wszystkie słowa w temacie, które mają wynik powyżej progu, mogą być przechowywane jako jego reprezentant, w kolejności ich wyników.

Photo by Anusha Barwa on Unsplash

Powiedzmy, że mamy 2 tematy, które można sklasyfikować jako CAT_related i DOG_related. Temat ma prawdopodobieństwo dla każdego słowa, więc słowa takie jak mleko, miauczenie i kotek, będą miały większe prawdopodobieństwo w temacie związanym z kotami niż w temacie związanym z psami. Temat związany z psami, podobnie, będzie miał wysokie prawdopodobieństwo dla słów takich jak szczeniak, kora i kość.

Jeśli mamy dokument zawierający następujące zdania:

„Psy lubią gryźć kości i aportować patyki”.
„Szczeniaki piją mleko.”
„Oba lubią szczekać.”

Możemy łatwo powiedzieć, że należy on do tematu związanego z psami, ponieważ zawiera słowa takie jak psy, kości, szczeniaki i kora. Nawet jeśli zawiera słowo mleko, które należy do tematu CAT_related, dokument należy do DOG_related, ponieważ więcej słów do niego pasuje.

Założenia:

  • Każdy dokument jest po prostu zbiorem słów lub „workiem słów”. W związku z tym, kolejność słów oraz ich rola gramatyczna (podmiot, przedmiot, czasowniki, …) nie są brane pod uwagę w modelu.
  • Słowa takie jak am/is/are/of/a/the/but/… nie niosą żadnej informacji o „tematach” i dlatego mogą zostać wyeliminowane z dokumentów w ramach wstępnego przetwarzania. W rzeczywistości, możemy wyeliminować słowa, które występują w co najmniej %80 ~ %90 dokumentów, bez utraty jakichkolwiek informacji.
    Na przykład, jeśli nasz korpus zawiera tylko dokumenty medyczne, słowa takie jak człowiek, ciało, zdrowie, itp. mogą być obecne w większości dokumentów, a zatem mogą być usunięte, ponieważ nie dodają żadnych konkretnych informacji, które mogłyby wyróżnić dokument.
  • Wiemy wcześniej, ile tematów chcemy. Wszystkie przypisania tematów z wyjątkiem bieżącego słowa są poprawne, a następnie aktualizujemy przypisanie bieżącego słowa używając naszego modelu generowania dokumentów

Jak działa LDA?

W LDA są 2 części:

  • Słowa, które należą do dokumentu, które już znamy.
  • Słowa, które należą do tematu lub prawdopodobieństwo przynależności słów do tematu, które musimy obliczyć.

Algorytm do znalezienia tego ostatniego

  • Przejrzyj każdy dokument i losowo przypisz każde słowo w dokumencie do jednego z k tematów (k jest wybrane wcześniej).
  • Dla każdego dokumentu d, przejdź przez każde słowo w i oblicz :
  1. p(temat t | dokument d): proporcja słów w dokumencie d, które są przypisane do tematu t. Próbuje uchwycić, jak wiele słów należy do tematu t dla danego dokumentu d. Wyłączając bieżące słowo.
    Jeśli wiele słów z d należy do t, jest bardziej prawdopodobne, że słowo w należy do t.
    ( #słowa w d z t +alpha/ #słowa w d z dowolnym tematem+ k*alpha)
  2. p(słowo w|temat t): proporcja przypisań do tematu t w stosunku do wszystkich dokumentów, które pochodzą od tego słowa w. Próbuje uchwycić, jak wiele dokumentów znajduje się w temacie t z powodu słowa w.
    LDA reprezentuje dokumenty jako mieszankę tematów. Podobnie, temat jest mieszanką słów. If a word has high probability of being in a topic, all the documents having w will be more strongly associated with t as well. Similarly, if w is not very probable to be in t, the documents which contain the w will be having very low probability of being in t, because rest of the words in d will belong to some other topic and hence d will have a higher probability for those topic. So even if w gets added to t, it won’t be bringing many such documents to t.

  • Update the probability for the word w belonging to topic t, as
p(word w with topic t) = p(topic t | document d) * p(word w | topic t)

A layman’s example

Suppose you have various photographs(documents) with captions(words). You want to display them in a gallery so you decide to categorize the photographs on various themes(topics) based on which you will create different sections in your gallery.

Photo by Soragrit Wongsa on Unsplash

Postanawiasz stworzyć w swoim albumie k=2 działy – natura i miasto. Oczywiście klasyfikacja nie jest tak jednoznaczna, bo niektóre zdjęcia z miastem mają drzewa i kwiaty, a te z naturą mogą mieć jakieś budynki. Ty, jako początek, decydujesz się przypisać zdjęcia, które mają tylko elementy natury lub miasta do odpowiednich kategorii, podczas gdy resztę przypisujesz losowo.

Zauważasz, że wiele zdjęć z natury ma słowo drzewo w podpisie. Tak więc doszedłeś do wniosku, że słowo drzewo i temat natura muszą być ze sobą ściśle powiązane.

Następnie wybierasz słowo budynek i sprawdzasz ile zdjęć jest w naturze, ponieważ mają słowo budynek w podpisie. Nie znajdziesz wiele i teraz są mniej pewni o budynku należącego do natury temat i kojarzyć go silniej z tematem miasto.

Wybierasz następnie zdjęcie, które ma podpis „Drzewo jest przed budynkiem i za samochodem” i zobaczyć, że jest w kategorii natura obecnie.
Wybierasz następnie słowo drzewo i obliczasz pierwsze prawdopodobieństwo p(temat t | dokument d): inne słowa w podpisie to budynek i samochód, większość zdjęć z podpisami z budynkiem lub samochodem jest w mieście, więc otrzymujesz niskie prawdopodobieństwo.
Teraz drugie prawdopodobieństwo p(słowo w| temat t): wiemy, że wiele zdjęć w przyrodzie ma słowo drzewa w nim. Więc tutaj otrzymujesz wysoki wynik.
Uaktualniasz prawdopodobieństwo przynależności drzewa do natury poprzez pomnożenie tych dwóch prawdopodobieństw. Otrzymujesz niższą wartość niż poprzednio dla drzewa w temacie natura, ponieważ teraz widziałeś to drzewo i słowa takie jak budynek/samochód w tym samym podpisie, co sugeruje, że drzewa można również znaleźć w miastach. tego samego powodu, gdy zaktualizujesz prawdopodobieństwo dla drzewa należącego do tematu miasto, zauważysz, że będzie ono większe niż było wcześniej.

Po wielu iteracjach nad wszystkimi zdjęciami i dla każdego tematu, będziesz miał dokładne wyniki dla każdego słowa w odniesieniu do każdego tematu. Twoje przypuszczenia będą coraz lepsze, ponieważ będziesz wnioskować z kontekstu, że słowa takie jak budynki, chodnik, metro pojawiają się razem, a zatem muszą należeć do tego samego tematu, który możemy łatwo zgadnąć jest miasto.
Słowa takie jak góry, pola, plaża, które mogą nie pojawiają się razem w wielu napisach, ale pojawiają się często bez słów miasta, a zatem będą miały wyższe wyniki dla natury. łowa takie jak drzewa, kwiaty, psy, niebo będą miały prawie takie samo prawdopodobieństwo bycia w obu, ponieważ występują w obu tematach.

Jeśli chodzi o zdjęcie, widzisz, że ma 1 słowo (ze średnim prawdopodobieństwem) z kategorii natura i 2 słowa (z wysokim prawdopodobieństwem) z miasta, dochodzisz do wniosku, że należy do miasta silniej niż do natury i dlatego decydujesz się dodać je do miasta.

Uwaga dodatkowa

Zastosowanie LDA nie musi być ograniczone do przetwarzania języka naturalnego. Ostatnio wykonałem pracę, w której używamy LDA (wraz z sieciami neuronowymi) do wyodrębnienia kontekstu obrazu. Jeśli jesteś zainteresowany dowiedzeniem się więcej na ten temat proszę zostaw komentarz lub wiadomość.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *