Comment calculer la perplexité d'un récalcitrant avec l'allocation de Dirichlet latente?

18

Je suis confus sur la façon de calculer la perplexité d'un échantillon d'exclusion lors de l'allocation de Dirichlet latente (LDA). Les articles sur le sujet passent dessus, me faisant penser que je manque quelque chose d'évident ...

La perplexité est considérée comme une bonne mesure de la performance de LDA. L'idée est que vous gardiez un échantillon d'exclusion, entraînez votre LDA sur le reste des données, puis calculez la perplexité de l'exclusion.

La perplexité pourrait être donnée par la formule:

per(test)=eXp{-=1MJournalp(w)=1MN}

(Tiré de la récupération d'images sur des bases de données d' images à grande échelle, Horster et al .)

Ici, est le nombre de documents (dans l'échantillon de test, probablement), représente les mots du document , le nombre de mots du document .M d N d dwN

Il n'est pas clair pour moi comment calculer raisonnablement , car nous n'avons pas de mélanges de sujets pour les documents en attente. Idéalement, nous intégrerions sur le Dirichlet avant pour tous les mélanges de sujets possibles et utiliserions les multinomiaux de sujets que nous avons appris. Le calcul de cette intégrale ne semble cependant pas une tâche facile.p(w)

Alternativement, nous pourrions essayer d'apprendre un mélange de sujets optimal pour chaque document présenté (compte tenu de nos sujets appris) et l'utiliser pour calculer la perplexité. Ce serait faisable, mais ce n'est pas aussi trivial que des articles tels que Horter et al et Blei et al semblent le suggérer, et il n'est pas immédiatement clair pour moi que le résultat sera équivalent au cas idéal ci-dessus.

drevicko
la source

Réponses:

17

C'est en effet quelque chose que l'on passe souvent sous silence.

Certaines personnes font quelque chose d'un peu effronté: tenir une proportion des mots dans chaque document, et donner en utilisant des probabilités prédictives de ces mots retenus étant donné les mélanges document-sujet ainsi que les mélanges sujet-mot. Ce n'est évidemment pas idéal car il n'évalue pas les performances des documents en attente.

Pour le faire correctement avec les documents suspendus, comme suggéré, vous devez "intégrer sur le Dirichlet avant pour tous les mélanges de sujets possibles". http://people.cs.umass.edu/~wallach/talks/evaluation.pdf passe en revue quelques méthodes pour s'attaquer à cette intégrale légèrement désagréable. Je suis sur le point d'essayer de l'implémenter moi-même, alors bonne chance!

Mat
la source
3
Merci d'avoir dragué cette question! Wallach et al ont également un article sur les évaluations des modèles de sujet: Méthodes d'évaluation pour les modèles de sujet
drevicko
1
Pas de soucis. J'ai trouvé qu'il y a du code pour la méthode de gauche à droite de Wallach dans la boîte à outils de modélisation du sujet MALLET, si vous êtes heureux d'utiliser leur implémentation LDA, c'est une victoire facile bien qu'il ne semble pas très facile de l'exécuter sur un ensemble des sujets appris ailleurs d'une autre variante de LDA, ce que je cherche à faire. J'ai fini par implémenter l'estimateur de style Chib à partir de leur papier en utilisant le code matlab qu'ils fournissent comme guide, bien que j'ai dû résoudre quelques problèmes en le faisant, faites-moi savoir si vous voulez le code.
Matt
Salut @Matt, est-il possible de me remettre le code matlab pour l'évaluation de la perplexité sur LDA? Merci
princesse de perse
@princessofpersia Je pense que l'auteur a résolu le problème auquel j'ai fait allusion avec le code matlab, voir ici: homepages.inf.ed.ac.uk/imurray2/pub/09etm
Matt
0

Nous savons que les paramètres de la LDA sont estimés par l'inférence variationnelle. Donc

Journalp(w|α,β)=E[Journalp(θ,z,w|α,β)]-E[Journalq(θ,z)]+(q(θ,z)||p(θ,z))

(q(θ,z)||p(θ,z))=0Journalp(w|α,β)=E[Journalp(θ,z,w|α,β)]-E[Journalq(θ,z)]

Journalp(w|α,β)

user32509
la source
1
Je pense qu'il est possible d'améliorer la réponse pour être plus précis sur la façon de calculer réellement la perplexité sur l'ensemble de test.
Momo