Utajona alokacja Dirichleta (LDA) i Hierarchiczny proces Dirichleta (HDP) to procesy modelowania tematycznego. Główna różnica polega na tym, że LDA wymaga określenia liczby tematów, a HDP nie. Dlaczego tak jest? A jakie są różnice, zalety i wady obu metod modelowania tematów?
Komentarze
- Czy HDP ma być oparty na danych w odniesieniu do liczby tematów, które wybierze? Ze względów praktycznych próbowałem uruchomić Blei ' s HDP i po prostu pochłaniało całą pamięć, dopóki nie zabiłem procesu. Mam 16 GB pamięci RAM i nieco ponad 100 KB krótkich dokumentów do analizy.
Odpowiedź
HDP jest rozszerzeniem LDA, zaprojektowanym w celu rozwiązania przypadku, gdy liczba składników mieszaniny (liczba „tematów” w terminach modelowania dokumentów) nie jest znana a priori. Więc to jest „powód, dla którego istnieje różnica”.
Używając LDA do modelowania dokumentów, każdy „temat” traktuje się jako dystrybucję słów w jakimś znanym słowniku. Dla każdego dokumentu rysowana jest mieszanka tematów z dystrybucji Dirichleta, a a następnie każde słowo w dokumencie jest niezależnym losowaniem z tej mieszanki (to jest wybranie tematu i użycie go do wygenerowania słowa).
W przypadku HDP (stosowanego do modelowania dokumentu) używa się również proces Dirichleta mający na celu uchwycenie niepewności co do liczby tematów. Tak więc wybiera się wspólną dystrybucję bazową, która reprezentuje policzalnie nieskończony zestaw możliwych tematów dla korpusu, a następnie skończony rozkład tematów dla każdego dokumentu jest próbkowany z tej dystrybucji bazowej.
Jeśli chodzi o zalety i Wady HDP ma tę zaletę, że maksymalna liczba tematów może być nieograniczona i wyciągnięta z danych, a nie określona z góry. Przypuszczam, że jest to bardziej skomplikowane w implementacji i niepotrzebne w przypadku, gdy dopuszczalna jest ograniczona liczba tematów.
Odpowiedź
Anegdotycznie, nigdy nie byłem pod wrażeniem wyników hierarchicznej LDA. Po prostu nie wydaje się, aby znajdował optymalny poziom szczegółowości przy wyborze liczby tematów. „Osiągnąłem znacznie lepsze wyniki, wykonując kilka iteracji zwykłej LDA, ręcznie sprawdzając wygenerowane przez siebie tematy, decydując, czy zwiększyć lub zmniejszyć liczbę tematów, i kontynuując iterację, aż uzyskam szczegółowość, której szukam.
Pamiętaj: hierarchiczna LDA nie może czytać w twoich myślach … nie wie, do czego faktycznie zamierzasz wykorzystać modelowanie tematu. Podobnie jak w przypadku grupowania k-średnich, powinieneś wybrać k, które jest najbardziej sensowne dla twojego przypadku użycia.
Odpowiedź
Chciałem zwrócić uwagę, ponieważ jest to jedno z największych trafień Google na ten temat, że Latent Dirichlet Allocation (LDA), Hierarchical Dirichlet Processes (HDP), i hierarchical Latent Dirichlet Allocation (hLDA) to wszystkie różne modele.
Modele LDA dokumentują jako mieszaniny dirichleta ustalonej liczby tematów – wybranych jako parametr modelu przez użytkownika – które z kolei są mieszaninami słów dirichleta. Generuje to płaskie, miękkie probabilistyczne grupowanie terminów w tematy i dokumentów w tematy.
HDP modeluje tematy jako mieszankę słów, podobnie jak LDA, ale zamiast dokumentów stanowiących mieszaninę ustalonej liczby tematów, liczba tematów jest generowana przez proces dirichleta, w wyniku czego liczba tematów jest również zmienną losową. „Hierarchiczna” część nazwy odnosi się do kolejnego poziomu dodawanego do modelu generatywnego (proces Dirichleta generujący liczbę tematów), a nie samych tematów – tematy są nadal płaskie.
hLDA, z drugiej strony jest adaptacją LDA, która modeluje tematy jako mieszankę nowego, odrębnego poziomu tematów, zaczerpniętych z dystrybucji dirichleta, a nie z procesów. Nadal traktuje liczbę tematów jako hiperparametr, czyli niezależny od danych. Różnica polega na tym, że grupowanie jest teraz hierarchiczne – uczy się grupowania samego pierwszego zestawu tematów, dając bardziej ogólne, abstrakcyjne relacje między tematami (a zatem słowami i dokumentami). Pomyśl o tym jak o klastrowaniu wymiany stosu w matematyce, nauce, programowaniu, historii itp., W przeciwieństwie do grupowania nauki o danych i walidacji krzyżowej w abstrakcyjne statystyki i temat programowania, który dzieli niektóre pojęcia z, powiedzmy, inżynierią oprogramowania, ale inżynierią oprogramowania wymiana jest skupiona na bardziej konkretnym poziomie z wymianą informatyczną, a podobieństwo między wszystkimi wymienionymi wymianami nie pojawia się tak bardzo, aż do górnej warstwy klastrów.
Odpowiedź
Mam sytuację, w której HDP działa dobrze w porównaniu z LDA. Mam około 16 000 dokumentów należących do różnych klas.Ponieważ nie wiem, ile różnych tematów mogę zebrać na poszczególnych zajęciach, HDP jest w tym przypadku bardzo pomocne.
Odpowiedź
W rzeczywistości HDP wymaga wielu ukrytych parametrów, które są w kodzie. Jeśli będziesz grać z takimi parametrami, uzyskasz różne wyniki (różne tematy). Ludzie zwykle nie zwracają uwagi na tak ukryte parametry i myślą, że model potrafi takie parametry znaleźć. To nie prawda. Użytkownik musi zdefiniować parametry „eta” „gamma” i „alfa” oraz maksymalną liczbę tematów. Jeśli podasz maksymalną liczbę tematów, powiedz o 23 tematach, to model będzie zawierał 23 tematy. Jeśli skonfigurujesz 15 tematów, w wyniku otrzymasz 15 tematów….
Odpowiedź
Yee Whye Teh et al „w artykule 2005 Hierarchical Dirichlet Processes opisuje nieparametryczny wcześniejszy problemy z grupowaniem. W przykładzie HDP pomaga uogólnić Utajona alokacja Dirichleta do przypadku, gdy liczba tematów w danych jest wykrywana przez algorytm wnioskowania, a nie określana jako parametr modelu. Szczegółowy wyjaśnienie procesu Dirichleta można znaleźć tutaj
Modele tematyczne obiecują pomóc w podsumowaniu i uporządkowaniu dużych archiwów tekstów, których nie można łatwo przeanalizować ręcznie . Hierarchiczny proces Dirichleta (HDP) to potężny mieszany proces model biodra do nienadzorowanej analizy danych zgrupowanych. W przeciwieństwie do swojego skończonego odpowiednika, ukrytej alokacji Dirichleta , model tematyczny HDP wnioskuje o liczbie tematów na podstawie danych.