Come calcolare la perplessità di un controllo con Allocazione latente di Dirichlet?


18

Sono confuso su come calcolare la perplessità di un campione di controllo quando si esegue Latent Dirichlet Allocation (LDA). I documenti sull'argomento si scatenano, facendomi pensare che mi manchi qualcosa di ovvio ...

La perplessità è vista come una buona misura delle prestazioni per LDA. L'idea è di conservare un campione di controllo, addestrare la LDA sul resto dei dati, quindi calcolare la perplessità del controllo.

La perplessità potrebbe essere data dalla formula:

per(DteSt)=eXp{-Σd=1Mlogp(wd)Σd=1MNd}

(Tratto dal recupero di immagini su database di immagini su larga scala, Horster et al .)

Qui è il numero di documenti (nel campione di prova, presumibilmente), w d rappresenta le parole nel documento d , N d il numero di parole nel documento d .MwddNdd

Non mi è chiaro come calcolare sensibilmente la , poiché non abbiamo miscele tematiche per i documenti distribuiti. Idealmente, dovremmo integrarci sopra il Dirichlet prima di tutte le possibili miscele di argomenti e utilizzare i multinomi di argomenti che abbiamo appreso. Tuttavia, calcolare questo integrale non sembra un compito facile.p(wd)

In alternativa, potremmo tentare di apprendere una combinazione ottimale di argomenti per ciascun documento (dati i nostri argomenti appresi) e utilizzarlo per calcolare la perplessità. Ciò sarebbe fattibile, tuttavia non è banale come sembrano suggerire articoli come Horter et al e Blei et al, e non mi è subito chiaro che il risultato sarà equivalente al caso ideale sopra.

Risposte:


17

Questo è davvero qualcosa che è stato spesso sorpreso.

Alcune persone stanno facendo qualcosa di un po 'sfacciato: porgere una proporzione delle parole in ogni documento e dare usando le probabilità predittive di queste parole pronunciate date le miscele argomento-documento e le miscele argomento-parola. Questo ovviamente non è l'ideale in quanto non valuta le prestazioni di alcun documento tenuto fuori.

Per farlo correttamente con i documenti tenuti fuori, come suggerito, è necessario "integrarsi sopra il Dirichlet prima di tutte le possibili miscele di argomenti". http://people.cs.umass.edu/~wallach/talks/evaluation.pdf esamina alcuni metodi per affrontare questo integrale leggermente spiacevole. Sto per provare a implementarlo da solo, quindi buona fortuna!


3
Grazie per aver sollevato questa domanda! Wallach et al. Hanno anche un documento sulle valutazioni dei modelli di argomenti: Metodi di valutazione per modelli di argomenti
drevicko,

1
Nessun problema. Ho scoperto che c'è del codice per il metodo da sinistra a destra di Wallach nella toolbox di modellazione di argomenti MALLET, se sei felice di usare la loro implementazione LDA è una vittoria facile anche se non sembra molto facile eseguirlo su un set di argomenti appresi altrove da una diversa variante di LDA, che è quello che sto cercando di fare. Ho finito per implementare lo stimatore in stile Chib dal loro documento usando il codice matlab che forniscono come guida sebbene abbia dovuto risolvere un paio di problemi nel farlo, fammi sapere se vuoi il codice.
Matt,

Ciao @Matt è possibile consegnarmi il codice matlab per la valutazione della perplessità su LDA? Grazie
principessa di persia il

@princessofpersia Penso che l'autore abbia risolto il problema a cui ho accennato con il codice matlab, vedi qui: homepages.inf.ed.ac.uk/imurray2/pub/09etm
Matt

0

Sappiamo che i parametri di LDA sono stimati attraverso l'inferenza variabile. Così

logp(w|α,β)=E[logp(θ,z,w|α,β)]-E[logq(θ,z)]+D(q(θ,z)||p(θ,z))

D(q(θ,z)||p(θ,z))=0logp(w|α,β)=E[logp(θ,z,w|α,β)]-E[logq(θ,z)]

logp(w|α,β)


1
Penso che sia possibile migliorare la risposta per essere più specifici su come calcolare effettivamente la perplessità sul set di test.
Momo,
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.