潜在ディリクレ割り当て(LDA)と階層ディリクレプロセス(HDP)は、両方ともトピックモデリングプロセスです。主な違いは、LDAではトピックの数を指定する必要がありますが、HDPでは指定しないことです。どうしてこんなことに?そして、両方のトピックモデリング方法の違い、長所、短所は何ですか?
潜在ディリクレ割り当て(LDA)と階層ディリクレプロセス(HDP)は、両方ともトピックモデリングプロセスです。主な違いは、LDAではトピックの数を指定する必要がありますが、HDPでは指定しないことです。どうしてこんなことに?そして、両方のトピックモデリング方法の違い、長所、短所は何ですか?
回答:
HDPはLDAの拡張であり、混合成分の数(ドキュメントモデリング用語での「トピック」の数)が事前にわからない場合に対処するように設計されています。それが違いがある理由です。
ドキュメントモデリングにLDAを使用すると、各「トピック」をいくつかの既知の語彙の単語の分布として扱います。各ドキュメントについて、トピックの混合物がディリクレ分布から引き出され、ドキュメント内の各単語はその混合物から独立した描画です(つまり、トピックを選択し、それを使用して単語を生成します)。
HDP(ドキュメントモデリングに適用)の場合、ディリクレプロセスを使用して、トピック数の不確実性をキャプチャします。そのため、コーパスの数え切れないほどの可能なトピックのセットを表す共通の基本分布が選択され、各基本ドキュメントからトピックの有限分布がサンプリングされます。
長所と短所に関しては、HDPには、事前に指定するのではなく、トピックの最大数を制限せずにデータから学習できるという利点があります。実装はより複雑であり、限られた数のトピックが受け入れられる場合は不要だと思います。
逸話的に、私は階層LDAからの出力に感銘を受けたことはありません。トピックの数を選択するのに最適な粒度のレベルを見つけることができないようです。通常のLDAを数回繰り返し、生成されたトピックを手動で検査し、トピックの数を増やすか減らすかを決定し、探している粒度が得られるまで繰り返し続けることで、はるかに良い結果が得られました。
覚えておいてください:階層型LDAはあなたの心を読むことができません...あなたが実際にトピックモデリングを使用する意図を知らないのです。k-meansクラスタリングの場合と同様に、ユースケースに最も意味のあるkを選択する必要があります。
これは、このトピックのGoogleのヒットの1つであるため、潜在ディリクレ割り当て(LDA)、階層ディリクレプロセス(HDP)、および階層潜在ディリクレ割り当て(hLDA)はすべて別個のモデルであるということを指摘したかったのです。
LDAは、ユーザーがモデルのパラメーターとして選択した固定数のトピックのディリクレ混合物としてドキュメントをモデル化します。これは、単語のディリクレ混合物です。これにより、用語をトピックに、ドキュメントをトピックにフラットでソフトな確率的クラスタリングを生成します。
HDPは、LDAによく似た単語の混合物としてトピックをモデル化しますが、ドキュメントが固定数のトピックの混合物ではなく、ディリクレプロセスによってトピック数が生成されるため、トピック数もランダム変数になります。名前の「階層」部分は、トピック自体ではなく、生成モデル(トピックの数を生成するディリクレプロセス)に追加される別のレベルを指します。トピックは依然としてフラットなクラスタリングです。
一方、hLDAは、ディリクレ分布から引き出された、新しい、明確なレベルのトピックの混合物としてトピックをモデル化するLDAの適応です。プロセスではありません。それでも、トピックの数はハイパーパラメーターとして、つまりデータとは無関係に扱われます。違いは、クラスタリングが階層化されたことです。つまり、トピック自体の最初のセットのクラスタリングを学習し、トピック(したがって、単語とドキュメント)間のより一般的な抽象的な関係を提供します。データサイエンスとクロス検証を抽象的な統計やプログラミングトピックにクラスタリングするのではなく、スタック交換を数学、科学、プログラミング、履歴などにクラスタリングするようなものだと考えてください。交換はコンピューターサイエンス交換とより具体的なレベルでクラスター化されており、前述の交換のすべての間の類似性はクラスターの上位層まではあまり現れません。