1

一般的なトピック モデルである潜在的ディリクレ配分 (LDA) は、コーパスからトピックを抽出するために使用されると、辞書の単語に対してさまざまな確率分布を持つさまざまなトピックを返します。

一方、Latent Semantic Indexing (LSI) は、反復ごとに同じトピックと同じ分布を提供します。

実際、LDA はトピックの抽出に広く使用されています。分類が行われるたびに異なるトピック分布を返す場合、LDA はどのように一貫性を維持しますか?

この簡単な例を考えてみましょう。D がドキュメントを表すドキュメントのサンプルを取得します。

D1: Linear Algebra techniques for dimensionality reduction
D2: dimensionality reduction of a sample database
D3: An introduction to linear algebra
D4: Measure of similarity and dissimilarity of different web documents
D5: Classification of data using database sample
D6: overfitting due lack of representative samples
D7: handling overfitting in descision tree
D8: proximity measure for web documents
D9: introduction to web query classification
D10: classification using LSI 

各行はドキュメントを表します。上記のコーパスでは、ドキュメントからトピックを生成するために LDA モデルが使用されています。Gensim は LDA に使用され、選択されたトピック数が 4、パス数が 20 のバッチ LDA が実行されます。

元のコーパスでバッチ LDA が実行され、20 回のパス後に生成されるトピックは次のとおりです。

topic #0: 0.045*query + 0.043*introduction + 0.042*similarity + 0.042*different + 0.041*reduction + 0.040*handling + 0.039*techniques + 0.039*dimensionality + 0.039*web + 0.039*using

topic #1: 0.043*tree + 0.042*lack + 0.041*reduction + 0.040*measure + 0.040*descision + 0.039*documents + 0.039*overfitting + 0.038*algebra + 0.038*proximity + 0.038*query

topic #2: 0.043*reduction + 0.043*data + 0.042*proximity + 0.041*linear + 0.040*database + 0.040*samples + 0.040*overfitting + 0.039*lsi + 0.039*introduction + 0.039*using

topic #3: 0.046*lsi + 0.045*query + 0.043*samples + 0.040*linear + 0.040*similarity + 0.039*classification + 0.039*algebra + 0.039*documents + 0.038*handling + 0.037*sample

ここで、同じ元のコーパスに対してバッチ LDA が再度実行され、その場合に生成されるトピックは次のとおりです。

topic #0: 0.041*data + 0.041*descision + 0.041*linear + 0.041*techniques + 0.040*dimensionality + 0.040*dissimilarity + 0.040*database + 0.040*reduction + 0.039*documents + 0.038*proximity

topic #1: 0.042*dissimilarity + 0.041*documents + 0.041*dimensionality + 0.040*tree + 0.040*proximity + 0.040*different + 0.038*descision + 0.038*algebra + 0.038*similarity + 0.038*techniques

topic #2: 0.043*proximity + 0.042*data + 0.041*database + 0.041*different + 0.041*tree + 0.040*techniques + 0.040*linear + 0.039*classification + 0.038*measure + 0.038*representative

topic #3: 0.043*similarity + 0.042*documents + 0.041*algebra + 0.041*web + 0.040*proximity + 0.040*handling + 0.039*dissimilarity + 0.038*representative + 0.038*tree + 0.038*measure

各トピックの単語分布は、両方の場合で同じではありません。実際、単語の分布は決して同じではありません。

では、LSI のようなトピックで同じ単語分布を持たない場合、LDA はどのように効果的に機能するのでしょうか?

4

4 に答える 4

4

ここには2つの問題があると思います。まず、LDAトレーニングは LSI のように決定論的ではありません。LDA の一般的なトレーニング アルゴリズムはサンプリング法です。複数のトレーニング実行の結果が大幅に異なる場合、それはバグであるか、間違った設定を使用しているか、単に不運です。一部の関数を最適化しようとしている場合は、LDA トレーニングを複数回実行することができます。

次に、クラスタリング、クエリ、および分類について説明します。トレーニング済みの LDA モデルがあれば、そのモデルを決定論的な方法で他のドキュメントに適用できます。LDA モデルが異なれば結果も異なりますが、最終モデルとしてラベル付けした 1 つの LDA モデルからは、常に同じ結果が得られます。

于 2012-02-28T10:57:41.250 に答える
0

LDA がトレーニングと推論の両方のステップでランダム性を使用する場合、毎回異なるトピックが生成されます。このリンクを参照してください: LDA モデルは、同じコーパスでトレーニングするたびに異なるトピックを生成します

于 2013-11-20T09:20:42.217 に答える
0

問題を理解しているかどうかは完全にはわかりませんが、正確に言うと、LDAは同じデータセットに対して異なる実行で異なるトピック分布を生成すると言っています。

最初の LDA はランダム性を使用してこれらの確率分布を取得するため、実行ごとに異なるトピックの重みと単語が得られますが、このランダム性は制御できます。

gensim.models.ldamodel.LdaModel(
    corpus, num_topics=number_of_topics, id2word=dictionary, passes=15, random_state=1)

random_stateこの数値を修正すると、出力を簡単に再現できます。

于 2019-05-22T10:12:59.287 に答える