Alokasi Dirichlet Laten vs Proses Dirichlet Hierarkis

49

Alokasi Dirichlet Laten (LDA) dan Proses Hirarki Dirichlet (HDP) keduanya merupakan proses pemodelan topik. Perbedaan utama adalah LDA membutuhkan spesifikasi jumlah topik, dan HDP tidak. Kenapa begitu? Dan apa perbedaan, pro, dan kontra dari kedua metode pemodelan topik?

alva
sumber
Apakah HDP seharusnya didorong oleh data sehubungan dengan jumlah topik yang akan dipilih? Di sisi praktis, saya mencoba menjalankan implementasi HDP Blei dan hanya memakan semua memori sampai saya mematikan prosesnya. Saya memiliki 16GB RAM dan lebih dari 100 ribu dokumen pendek untuk dianalisis.
Vladislavs Dovgalecs

Jawaban:

35

HDP adalah perpanjangan dari LDA, yang dirancang untuk mengatasi kasus di mana jumlah komponen campuran (jumlah "topik" dalam istilah pemodelan dokumen) tidak diketahui secara apriori. Jadi itulah alasan mengapa ada perbedaan.

Menggunakan LDA untuk pemodelan dokumen, satu memperlakukan setiap "topik" sebagai distribusi kata dalam beberapa kosakata yang dikenal. Untuk setiap dokumen, campuran topik diambil dari distribusi Dirichlet, dan kemudian setiap kata dalam dokumen adalah undian independen dari campuran itu (yaitu, memilih topik dan kemudian menggunakannya untuk menghasilkan kata).

Untuk HDP (diterapkan pada dokumen pemodelan), seseorang juga menggunakan proses Dirichlet untuk menangkap ketidakpastian dalam sejumlah topik. Jadi distribusi basis umum dipilih yang mewakili sekumpulan topik yang mungkin tak terhingga jumlahnya untuk corpus, dan kemudian distribusi terbatas topik untuk setiap dokumen diambil sampelnya dari distribusi basis ini.

Sejauh pro dan kontra, HDP memiliki keuntungan bahwa jumlah maksimum topik dapat dibatasi dan dipelajari dari data daripada ditentukan sebelumnya. Saya kira meskipun itu lebih rumit untuk diterapkan, dan tidak perlu dalam kasus di mana sejumlah topik terbatas dapat diterima.

Tim Goodman
sumber
22

Secara anekdot, saya tidak pernah terkesan dengan output dari LDA hirarkis. Sepertinya tidak menemukan tingkat granularity optimal untuk memilih jumlah topik. Saya mendapatkan hasil yang lebih baik dengan menjalankan beberapa iterasi LDA biasa, memeriksa secara manual topik yang dihasilkannya, memutuskan apakah akan menambah atau mengurangi jumlah topik, dan terus mengulangi sampai saya mendapatkan rincian yang saya cari.

Ingat: LDA hirarkis tidak dapat membaca pikiran Anda ... tidak tahu apa yang sebenarnya Anda inginkan untuk menggunakan pemodelan topik. Sama seperti dengan k-means clustering, Anda harus memilih k yang paling masuk akal untuk use case Anda.

Charlie Greenbacker
sumber
16

Saya ingin menunjukkan, karena ini adalah salah satu hit Google teratas untuk topik ini, bahwa Latent Dirichlet Allocation (LDA), Hierarchical Dirichlet Processes (HDP), dan Latent Dirichlet Allocation (hLDA) adalah model yang berbeda.

LDA memodelkan dokumen sebagai campuran dirichlet dari sejumlah topik yang tetap - dipilih sebagai parameter model oleh pengguna - yang pada gilirannya merupakan campuran kata-kata dirichlet. Ini menghasilkan pengelompokan istilah yang datar dan lunak ke dalam topik dan dokumen menjadi topik.

HDP memodelkan topik sebagai campuran kata, seperti LDA, tetapi alih-alih dokumen merupakan campuran dari sejumlah topik, jumlah topik dihasilkan oleh proses balon, sehingga jumlah topik menjadi variabel acak juga. Bagian "hierarkis" dari nama mengacu pada level lain yang ditambahkan ke model generatif (proses balon yang menghasilkan jumlah topik), bukan topik itu sendiri - topik tersebut masih berupa pengelompokan yang datar.

hLDA, di sisi lain, adalah adaptasi dari LDA yang memodelkan topik sebagai campuran dari topik yang baru dan berbeda, diambil dari distribusi dirichletdan bukan proses. Itu masih memperlakukan sejumlah topik sebagai hyperparameter, yaitu, independen dari data. Perbedaannya adalah bahwa pengelompokan sekarang hirarkis - itu belajar pengelompokan dari set pertama topik itu sendiri, memberikan hubungan yang lebih umum, abstrak antara topik (dan karenanya, kata-kata dan dokumen). Anggap saja seperti mengelompokkan pertukaran tumpukan ke dalam matematika, sains, pemrograman, sejarah, dll. Yang bertentangan dengan pengelompokan ilmu data dan validasi silang ke dalam statistik abstrak dan topik pemrograman yang berbagi beberapa konsep dengan, katakanlah, rekayasa perangkat lunak, tetapi rekayasa perangkat lunak pertukaran dikelompokkan pada tingkat yang lebih konkret dengan pertukaran ilmu komputer, dan kesamaan antara semua pertukaran yang disebutkan tidak muncul sampai lapisan atas cluster.

user38663
sumber
0

Saya memiliki situasi di mana HDP bekerja dengan baik dibandingkan dengan LDA. Saya memiliki sekitar 16000 dokumen milik berbagai kelas. Karena saya tidak mengetahui berapa banyak topik berbeda yang dapat saya kumpulkan untuk setiap kelas, HDP sangat membantu dalam kasus ini.

Nischal Hp
sumber