Bagaimana cara menghitung kebingungan ketidaksepakatan dengan Alokasi Dirichlet Laten?

18

Saya bingung tentang cara menghitung kebingungan sampel ketidaksepakatan saat melakukan Latent Dirichlet Allocation (LDA). Makalah-makalah tentang topik itu membahasnya, membuat saya berpikir saya kehilangan sesuatu yang jelas ...

Kesederhanaan dipandang sebagai ukuran kinerja yang baik untuk LDA. Idenya adalah bahwa Anda menyimpan sampel ketidaksepakatan, melatih LDA Anda pada sisa data, kemudian menghitung kebingungan dari ketidaksepakatan tersebut.

Kekacauan bisa diberikan oleh rumus:

per(Dtest)=exp{d=1Mlogp(wd)d=1MNd}

(Diambil dari Pengambilan gambar pada basis data gambar skala besar, Horster et al .)

Di sini adalah jumlah dokumen (dalam sampel uji, mungkin), mewakili kata-kata dalam dokumen , jumlah kata dalam dokumen .w d d N d dMwddNdd

Tidak jelas bagi saya bagaimana menghitung secara wajar , karena kami tidak memiliki campuran topik untuk dokumen yang . Idealnya, kami akan berintegrasi dengan Dirichlet sebelum melakukan semua campuran topik yang mungkin dan menggunakan topik multinomial yang kami pelajari. Menghitung integral ini tampaknya bukan tugas yang mudah.p(wd)

Sebagai alternatif, kami dapat mencoba mempelajari campuran topik yang optimal untuk setiap dokumen yang tersedia (mengingat topik yang kami pelajari) dan menggunakannya untuk menghitung kebingungan. Ini bisa dilakukan, namun tidak sepele seperti yang disarankan makalah seperti Horter dkk dan Blei dkk, dan tidak segera jelas bagi saya bahwa hasilnya akan setara dengan kasus ideal di atas.

drevicko
sumber

Jawaban:

17

Ini memang sesuatu yang sering dipoles.

Beberapa orang melakukan sesuatu yang agak kurang ajar: mengulurkan proporsi kata-kata dalam setiap dokumen, dan memberikan kemungkinan prediksi menggunakan kata-kata terulur ini memberikan campuran topik-dokumen serta campuran-gabungan topik-kata. Ini jelas tidak ideal karena tidak mengevaluasi kinerja pada dokumen yang ada.

Untuk melakukannya dengan benar dengan dokumen yang diulurkan, seperti yang disarankan, Anda perlu "berintegrasi ke Dirichlet sebelum semua campuran topik yang mungkin". http://people.cs.umass.edu/~wallach/talks/evaluation.pdf mengulas beberapa metode untuk mengatasi integral yang sedikit tidak menyenangkan ini. Saya hanya akan mencoba dan mengimplementasikan ini sendiri sebenarnya, semoga sukses!

Mat
sumber
3
Terima kasih telah mengeruk pertanyaan ini! Wallach et al juga memiliki makalah tentang evaluasi model topik: Metode evaluasi untuk model topik
drevicko
1
Jangan khawatir. Saya telah menemukan ada beberapa kode untuk metode Wallach dari kiri ke kanan dalam kotak alat pemodelan topik MALLET, jika Anda senang menggunakan implementasi LDA mereka itu adalah kemenangan yang mudah meskipun tampaknya tidak super mudah untuk menjalankannya di set topik yang dipelajari di tempat lain dari varian LDA yang berbeda, yang ingin saya lakukan. Saya akhirnya menerapkan penaksir gaya-Chib dari kertas mereka menggunakan kode matlab yang mereka berikan sebagai panduan meskipun harus memperbaiki beberapa masalah dalam melakukan itu, beri tahu saya jika Anda menginginkan kode tersebut.
Matt
Hai @Matt apakah mungkin untuk menyerahkan kode matlab untuk evaluasi kebingungan pada LDA? Terima kasih
putri persia
@princessofpersia Saya pikir penulis memperbaiki masalah yang saya singgung dengan kode matlab, lihat di sini: homepages.inf.ed.ac.uk/imurray2/pub/09etm
Matt
0

Kita tahu bahwa parameter LDA diestimasi melalui Variational Inference. Begitu

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

Jika distribusi variasional Anda cukup sama dengan distribusi asli, maka . Jadi, , yang adalah kemungkinannya.log p ( w | α , β ) = E [ log p ( θ , z , w | α , β ) ] - E [ log q ( θ , z ) ]D(q(θ,z)||p(θ,z))=0logp(w|α,β)=E[logp(θ,z,w|α,β)]E[logq(θ,z)]

logp(w|α,β) mendekati kemungkinan yang Anda dapatkan dari Variational Inference.

pengguna32509
sumber
1
Saya pikir ini mungkin untuk meningkatkan jawaban menjadi lebih spesifik tentang bagaimana sebenarnya menghitung kebingungan pada set tes.
Momo