Allocazione latente di Dirichlet vs Processo gerarchico di Dirichlet


49

Latent Dirichlet Allocation (LDA) e Hierarchical Dirichlet Process (HDP) sono entrambi processi di modellazione degli argomenti. La differenza principale è che LDA richiede la specifica del numero di argomenti e HDP no. Perchè è così? E quali sono le differenze, i pro ei contro di entrambi i metodi di modellazione degli argomenti?


L'HDP dovrebbe essere basato sui dati per quanto riguarda il numero di argomenti che selezionerà? Sul lato pratico, ho cercato di eseguire l'implementazione HDP di Blei e ha mangiato tutta la memoria fino a quando non ho interrotto il processo. Ho 16 GB di RAM e poco più di 100 KB di documenti brevi da analizzare.
Vladislavs Dovgalecs,

Risposte:


35

HDP è un'estensione di LDA, progettata per affrontare il caso in cui il numero di componenti della miscela (il numero di "argomenti" in termini di modellazione di documenti) non è noto a priori. Quindi questo è il motivo per cui c'è una differenza.

Usando LDA per la modellazione di documenti, uno tratta ogni "argomento" come una distribuzione di parole in un vocabolario noto. Per ogni documento viene disegnata una miscela di argomenti da una distribuzione di Dirichlet, e quindi ogni parola nel documento è un disegno indipendente da quella miscela (cioè, selezionare un argomento e quindi usarlo per generare una parola).

Per HDP (applicato alla modellazione di documenti), si usa anche un processo Dirichlet per catturare l'incertezza nel numero di argomenti. Quindi viene selezionata una distribuzione di base comune che rappresenta l'insieme numerabile-infinito di possibili argomenti per il corpus, e quindi la distribuzione finita di argomenti per ciascun documento viene campionata da questa distribuzione di base.

Per quanto riguarda pro e contro, HDP ha il vantaggio che il numero massimo di argomenti può essere illimitato e appreso dai dati piuttosto che specificato in anticipo. Suppongo che sia più complicato da implementare e non necessario nel caso in cui un numero limitato di argomenti sia accettabile.


22

Aneddoticamente, non sono mai stato colpito dall'output della LDA gerarchica. Non sembra trovare un livello ottimale di granularità per scegliere il numero di argomenti. Ho ottenuto risultati molto migliori eseguendo alcune iterazioni di LDA regolari, ispezionando manualmente gli argomenti prodotti, decidendo se aumentare o diminuire il numero di argomenti e continuare a iterare fino a ottenere la granularità che sto cercando.

Ricorda: l'LDA gerarchico non può leggere la tua mente ... non sa per cosa intendi effettivamente utilizzare la modellazione degli argomenti. Proprio come con il clustering k-mean, dovresti scegliere la k che ha più senso per il tuo caso d'uso.


16

Volevo sottolineare, poiché questo è uno dei principali successi di Google per questo argomento, che Latent Dirichlet Allocation (LDA), Hierarchical Dirichlet Processes (HDP) e Gerarchical Latent Dirichlet Allocation (hLDA) sono tutti modelli distinti.

LDA modella i documenti come miscele di dirichlet di un numero fisso di argomenti - scelti come parametro del modello dall'utente - che sono a loro volta miscele di dirichlet di parole. Ciò genera un raggruppamento probabilistico piatto e morbido di termini in argomenti e documenti in argomenti.

L'HDP modella gli argomenti come miscele di parole, proprio come LDA, ma piuttosto che i documenti sono miscele di un numero fisso di argomenti, il numero di argomenti viene generato da un processo dirichlet, risultando nel numero di argomenti anche una variabile casuale. La parte "gerarchica" del nome si riferisce ad un altro livello che viene aggiunto al modello generativo (il processo dirichlet che produce il numero di argomenti), non gli argomenti stessi: gli argomenti sono ancora raggruppamenti piatti.

hLDA, d'altra parte, è un adattamento di LDA che modella gli argomenti come miscele di un nuovo, distinto livello di argomenti, tratti da distribuzioni dirichlete non processi. Tratta ancora il numero di argomenti come un iperparametro, cioè indipendente dai dati. La differenza è che il raggruppamento è ora gerarchico: impara un raggruppamento della prima serie di argomenti stessi, offrendo relazioni più generali e astratte tra argomenti (e quindi parole e documenti). Pensalo come raggruppare gli scambi di stack in matematica, scienze, programmazione, storia, ecc. Piuttosto che raggruppare scienza dei dati e convalida incrociata in una statistica astratta e argomento di programmazione che condivide alcuni concetti con, diciamo, ingegneria del software, ma l'ingegneria del software, ma l'ingegneria del software lo scambio è raggruppato a un livello più concreto con lo scambio di informatica e la somiglianza tra tutti gli scambi citati non appare tanto fino allo strato superiore dei cluster.


0

Ho una situazione in cui HDP funziona bene rispetto a LDA. Ho circa 16000 documenti che appartengono a varie classi. Poiché non sono a conoscenza di quanti argomenti diversi posso raccogliere per ogni classe, in questo caso HDP è davvero utile.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.