Latent Dirichlet Allocationでホールドアウトの困惑度を計算する方法は?


18

Latent Dirichlet Allocation(LDA)を行う際に、ホールドアウトサンプルの困惑度を計算する方法について混乱しています。トピックに関する論文はそれ以上に簡単で、私は明らかな何かを見逃していると思うようにしています...

複雑さは、LDAのパフォーマンスの良い尺度と見なされます。アイデアは、ホールドアウトサンプルを保持し、残りのデータでLDAをトレーニングし、ホールドアウトの複雑さを計算することです。

困惑は次の式で与えられます。

perDtest=eバツp{d=1Mログpwdd=1MNd}

大規模画像データベースでの画像検索、Horster et alから引用)

ここで、 は(おそらくテストサンプルの)ドキュメントの数であり、はドキュメントの単語を表し、はドキュメントの単語の数をます。MwddNdd

を賢明に計算する方法は、保留されたドキュメントのトピック混合物がないため、私には明確ではありません。理想的には、可能なすべてのトピック混合物について事前にディリクレを介して統合し、学習したトピック多項式を使用します。ただし、この積分を計算するのは簡単なことではありません。pwd

または、(学習したトピックが与えられた)各保留文書の最適なトピック混合を学習し、これを使用して困惑を計算することもできます。これは実行可能ですが、Horter et alやBlei et alなどの論文が示唆しているように些細なことではなく、結果が上記の理想的な場合と同等であることはすぐにはわかりません。

回答:


17

実際、これはよく見直されます。

一部の人は少し生意気なことをしています:各文書の単語の割合を保持し、文書とトピックの混合物とトピックと単語の混合物を与えられたこれらの保留された単語の予測確率を使用して与える。これは、保留されているドキュメントのパフォーマンスを評価しないため、明らかに理想的ではありません。

提案されているように、手持ちの文書で適切に行うには、「考えられるすべてのトピックの混合物の前にディリクレに統合する」必要があります。http://people.cs.umass.edu/~wallach/talks/evaluation.pdfは、このわずかに不快な統合に取り組むためのいくつかの方法をレビューしています。私は実際にこれを自分で実装しようとしていますが、幸運を祈ります!


3
この質問をd​​rしてくれてありがとう!Wallachほかにもトピックモデルの評価に関する論文があります。トピックモデルの評価方法
drevicko

1
心配ない。MALLETトピックモデリングツールボックスにWallachの左から右へのメソッドのコードがいくつかあることがわかりました。LDA実装を使用して満足している場合、セットで実行するのは簡単ではないようですが、 LDAの異なるバリアントから他の場所で学んだトピックの、これは私がやろうとしていることです。最終的には、彼らが提供するmatlabコードをガイドとして使用して、論文からChibスタイルの推定器を実装しましたが、それを行う際にいくつかの問題を修正する必要がありました。コードが必要かどうか教えてください。
マット

こんにちは、@ MattはLDAの困惑度評価のためにmatlabコードを渡すことができますか?ありがとう
ペルシャの王女

@princessofpersia私は著者が、私はMathWorks社のMATLABコードと示唆した問題を修正だと思い、こちらを参照してください。homepages.inf.ed.ac.uk/imurray2/pub/09etm
マット

0

LDAのパラメーターは変分推論によって推定されることがわかっています。そう

ログpw|αβ=E[ログpθzw|αβ]E[ログqθz]+Dqθz||pθz

変分分布が元の分布と十分に等しい場合、です。したがって、、尤度です。log p w | α β = E [ log p θ z w | α β ] E [ log q θ z ]Dqθz||pθz=0ログpw|αβ=E[ログpθzw|αβ]E[ログqθz]

ログpw|αβは、変分推論から得られた尤度に近似します。


1
テストセットでの困惑度を実際に計算する方法をより具体的にするために、答えを改善することが可能であると思います。
モモ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.