¿Cómo calcular la perplejidad de una reserva con la asignación de Dirichlet latente?

18

Estoy confundido acerca de cómo calcular la perplejidad de una muestra reservada cuando se realiza la Asignación de Dirichlet Latente (LDA). Los documentos sobre el tema brillan sobre él, haciéndome pensar que me falta algo obvio ...

La perplejidad se ve como una buena medida de rendimiento para LDA. La idea es mantener una muestra reservada, entrenar su LDA en el resto de los datos y luego calcular la perplejidad de la reserva.

La perplejidad podría estar dada por la fórmula:

pagmir(retmist)=miXpag{-re=1METROIniciar sesiónpag(wre)re=1METROnortere}

(Tomado de la recuperación de imágenes en bases de datos de imágenes a gran escala, Horster et al .)

Aquí es el número de documentos (en la muestra de prueba, presumiblemente), w d representa las palabras en el documento d , N d el número de palabras en el documento d .METROwrerenorterere

Para mí no está claro cómo calcular con sensatez , ya que no tenemos mezclas de temas para los documentos extendidos. Idealmente, deberíamos integrarnos sobre el Dirichlet antes de todas las posibles mezclas de temas y usar los temas multinomiales que aprendimos. Sin embargo, calcular esta integral no parece una tarea fácil.pag(wre)

Alternativamente, podríamos intentar aprender una combinación óptima de temas para cada documento extendido (dados nuestros temas aprendidos) y usar esto para calcular la perplejidad. Esto sería factible, sin embargo, no es tan trivial como parecen sugerir documentos como Horter et al y Blei et al, y no me queda claro de inmediato que el resultado sea equivalente al caso ideal anterior.

drevicko
fuente

Respuestas:

17

Esto es de hecho algo que a menudo se pasa por alto.

Algunas personas están haciendo algo un poco descarado: mostrar una proporción de las palabras en cada documento, y dar usando probabilidades predictivas de estas palabras extendidas dadas las mezclas de documento-tema, así como las mezclas de tema-palabra. Obviamente, esto no es ideal, ya que no evalúa el rendimiento de los documentos retenidos.

Para hacerlo correctamente con documentos retenidos, como se sugiere, es necesario "integrar sobre el Dirichlet antes de todas las posibles mezclas de temas". http://people.cs.umass.edu/~wallach/talks/evaluation.pdf revisa algunos métodos para abordar esta integral ligeramente desagradable. De hecho, estoy a punto de intentar implementar esto, ¡así que buena suerte!

Mate
fuente
3
¡Gracias por desenterrar esta pregunta! Wallach et al también tienen un documento sobre evaluaciones de modelos de tema: Métodos de evaluación para modelos de tema
drevicko
1
Sin preocupaciones. Descubrí que hay un código para el método de izquierda a derecha de Wallach en la caja de herramientas de modelado de temas de MALLET, si está contento de usar su implementación LDA, es una victoria fácil, aunque no parece muy fácil ejecutarlo en un conjunto de temas aprendidos en otra parte de una variante diferente de LDA, que es lo que estoy buscando hacer. Terminé implementando el estimador de estilo Chib de su artículo usando el código matlab que proporcionan como guía, aunque tuve que solucionar un par de problemas al hacerlo, avíseme si desea el código.
Matt
Hola @Matt, ¿es posible entregarme el código matlab para la evaluación de perplejidad en LDA? Gracias
princesa de persia
@princessofpersia Creo que el autor solucionó el problema al que aludí con el código matlab, ver aquí: homepages.inf.ed.ac.uk/imurray2/pub/09etm
Matt
0

Sabemos que los parámetros de LDA se estiman mediante inferencia variacional. Entonces

Iniciar sesiónpag(wEl |α,β)=mi[Iniciar sesiónpag(θ,z,wEl |α,β)]-mi[Iniciar sesiónq(θ,z)]+re(q(θ,z)El |El |pag(θ,z))

re(q(θ,z)El |El |pag(θ,z))=0 0Iniciar sesiónpag(wEl |α,β)=mi[Iniciar sesiónpag(θ,z,wEl |α,β)]-mi[Iniciar sesiónq(θ,z)]

Iniciar sesiónpag(wEl |α,β)

user32509
fuente
1
Creo que es posible mejorar la respuesta para ser más específico sobre cómo calcular realmente la perplejidad en el conjunto de prueba.
Momo