Як обчислити недоумкування утримування за допомогою латентного розподілу Діріхле?


18

Мене бентежить питання про те, як обчислити здивування зразка затримки, коли роблять приховане розподілення Діріхле (LDA). Документи на тему бризнуть над нею, змушуючи мене думати, що я пропускаю щось очевидне ...

Здивування сприймається як хороший показник ефективності для LDA. Ідея полягає в тому, щоб ви зберігали зразок проведення, навчали свій LDA на решті даних, а потім обчислювали недоумкування утримань.

Враженість може бути задана формулою:

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

огляду на пошук зображень у масштабних базах зображень, Horster та ін .)

Тут - кількість документів (у тестовій вибірці, імовірно), w d являє собою слова в документі d , N d - кількість слів у документі d .MwddNdd

Мені незрозуміло, як розумно розрахувати , оскільки у нас немає тематичних сумішей для розданих документів. В ідеалі, ми б об'єдналися за допомогою Dirichlet до всіх можливих сумішей тем і використали б багатозначні теми, які ми дізналися. Однак обчислення цього інтегралу не представляється легким завданням.p(wd)

Крім того, ми могли б спробувати вивчити оптимальну суміш тем для кожного розібраного документа (враховуючи наші вивчені теми) та використати це для обчислення невдачі. Це можна зробити, однак це не так банально, як виглядають такі документи, як Horter et al та Blei et al, і мені не відразу зрозуміло, що результат буде еквівалентний ідеальному випадку вище.

Відповіді:


17

Це справді щось, що часто засклилося.

Деякі люди роблять щось трохи нахабне: роздають частину слів у кожному документі та використовують прогнозну ймовірність цих витриманих слів, заданих сумішами тема-тема документа, а також сумішами тема-слово. Це, очевидно, не ідеально, оскільки це не оцінює ефективність жодних витриманих документів.

Щоб зробити це належним чином з витриманими документами, як це пропонується, вам потрібно "інтегруватися за допомогою Dirichlet до всіх можливих тематичних сумішей". http://people.cs.umass.edu/~wallach/talks/evaluation.pdf розглядає кілька методів боротьби з цим трохи неприємним інтегралом. Я ось-ось спробую реалізувати це власне, так що удачі!


3
Дякуємо, що заглушили це питання! Wallach та ін. Також мають статтю про оцінку моделей теми: Методи оцінювання для тематичних моделей
drevicko

1
Не хвилюйтесь. Я знайшов якийсь код для методу Wallach зліва направо в панелі інструментів моделювання теми MALLET, якщо ви раді використовувати їх реалізацію LDA, це легко виграти, хоча запустити його на наборі не дуже просто з тем, вивчених в іншому місці з іншого варіанту LDA, що я хочу зробити. Я в кінцевому підсумку реалізував оцінювач у стилі Чіб із їхньої роботи, використовуючи код matlab, який вони постачають як керівництво, хоча довелося виправити пару питань, роблячи це, дайте мені знати, чи хочете ви код.
Метт

Привіт @Matt, чи можна подати мені код matlab для оцінки недоумкувань на LDA? Спасибі
принцеса Персії

@princessofpersia Я думаю, що автор вирішив проблему, на яку я натякав з кодом matlab, дивіться тут: homepages.inf.ed.ac.uk/imurray2/pub/09etm
Мет

0

Ми знаємо, що параметри LDA оцінюються за допомогою варіативного виводу. Так

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

If your variational distribution is enough equal to the original distribution, then D(q(θ,z)||p(θ,z))=0. Так,журналp(ш|α,β)=Е[журналp(θ,z,ш|α,β)]-Е[журналq(θ,z)], яка є ймовірністю.

журналp(ш|α,β) наближається до ймовірності, яку ви отримали з Варіаційного висновку.


1
Я думаю, що можна вдосконалити відповідь, щоб бути більш конкретним щодо того, як насправді обчислити здивування на тестовому наборі.
Момо
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.