転送:https://blog.csdn.net/kisslotus/article/details/78427585
1.はじめに
線形判別分析し、潜在的ディリクレ配分:機械学習の分野では、LDAは、一般的に二つのモデルと呼ばれています。LDAは、この記事では、唯一の潜在的ディリクレ配分を指します。LDAは、テキストを分類するために使用対象モデルで非常に重要な位置を占めています。
LDAはBLEI、デイビッドM.、呉、アンドリューY.、2003年にヨルダン、文書の配布のための投機の対象によって提案されました。それは彼らの主題の分布を解析することにより、抽出された文書の一部は、彼らはテーマやトピッククラスタリングテキスト分類に応じて配布することができるように、各ドキュメントのドキュメントのテーマは、確率分布の形で与えられて集中することができます。
2.事前知識
LDAモデルは、おそらく無名の主な理由のLDAで数学的知識の多くが含まれます。このセクションでは、LDAに関わる数学的な知識について説明します。数学的なスキルより良い読者は、このセクションをスキップすることができます。
関与LDAの知識は、以下のとおりです。二項、ガンマ関数、ベータ分布、分布の数、ディリクレ分布、マルコフ連鎖、MCMC、ギブスサンプリング、EMアルゴリズム。
言葉モデルの2.1袋
LDAは言葉モデルの袋を使用しています。言葉モデルのいわゆるバッグ、ドキュメントで、我々は関係なく、それらが現れる順序の、用語集があるかどうかだけを検討します。バッグモデルの言葉で、「私はあなたを愛して」と同等である「私はあなたを愛して」。言葉モデル反しnグラム、nグラムの袋を持つモデルは、単語の順番が表示されます考えます。
Nは二項分布ベルヌーイ重量で、すなわちX〜B(N、P)は、確率密度の式であります:
2.3多項分布
多項分布は、二項分布は、より多くの分布はランダム変数の単一の値は、もはや試験0-1であることを意味しない。多次元の場合に拡張するが、種々の可能な離散値(1,2があるれています3 ...、K)の確率密度関数です。
2.4ガンマ関数
ガンマ関数の定義:
部分積分した後に、そのような機能は、ガンマのプロパティで見つけることができるとします。
ガンマ階乗関数が延長上に実数の集合として見ることができる、それは次のプロパティがあります。
2.5ベータ分布
パラメータα> 0の場合はβ> 0、範囲内の確率密度関数[0、1]の確率変数Xである:ベータ分布が定義されます。
その中でも、
2.6共役事前分布
ベイズ確率論事後確率P(θ| x)の場合、同じ流通法則を満たす事前確率P(θ)、事前分布と事後分布は先験的、同時に、共役分布と呼ばれています分布は尤度関数の共役事前分布と呼ばれます。
ベータ分布は、二項分布共役事前分布であり、ディリクレ(ディリクレ)分布は共役分布の多項分布です。
コンジュゲートは、例えば、ベータ分布及び二項分布に平均、パラメータの事前分布と事後分布はベータ分布の形で維持することができる二項分布に沿って、データ、利益のこの形式は同じです我々は非常に明確な物理的な意味での事前分布のパラメータを与えることができ、物理的な意味は、物理的な解釈を持っている可能性も高い知識から事後プロセス補足データに先験的からの後続の分布、および変換を説明するために拡張することができます。
2.7ディリクレ分布
ディリクレ確率密度関数は次のようになります。
その中でも、
ベータ分布、二項分布、ディリクレ分布、多項式の分布によれば、我々は、二項分布ベータ分布が共役事前分布であることを確認することができ、およびディリクレ(ディリクレ)分布は、多項式共役分布の分布です。
確率変数ベータ分布のために、平均値はα/(α+β)によって推定することができます。ディリクレ分布は同様の結論を持っています、
これらの2つの結果がLDA数学的な導出過程はこの結論に後で使用される、非常に重要です。
2.9 MCMCとギブスサンプリング
実際のアプリケーションでは、私たちはしばしば困難正確に、多くの場合、おおよその推論方法を使用して、正確な確率分布を得ることができます。おおよその推定方法は、大きく2つのカテゴリに分けることができる:最初のカテゴリは、サンプリング(サンプリング)であり、近似はランダムな方法を使用することによって達成され、第二の近似近似が完了した決定論的推定であり、変分推論(変分推論)に代表されます。(実際に解決する方法は、あなたが理解することができ、これは移動されません)
モデリング3.テキスト
文書は、単語列D =(ω1、ω2、⋯の順序集合として見ることができる 、数ωn) 統計的観点から、文書生成は、神が生成されたサイコロを投げるように見ることができます結果は、サイコロを投げるたびに、文書を生成するN個の単語を投げ、語彙を生成します。2つのコアの問題を伴う統計的モデリングのテキスト、私たちは神がこのゲームをプレイする方法を推測したいです、:
どのような神はサイコロを持っています。
神はサイコロを投げているか、
最初の質問は、モデルのパラメータは、サイコロの各面の確率がモデルのパラメータに対応して表しているもの、である; 2番目の質問を、と言います神はサイコロの様々な異なるタイプのを持っていることであるゲームのどのようなルール、神は単語列を生じる一定の規則に従って、これらのサイコロを投げることができます。
3.1ユニグラムモデル
ユニグラムモデルでは、我々は文書が独立し、互いに独立した文書の語彙であると仮定し、言葉モデルの袋を使用しています。Vのν1、ν2の合計で、私たちの辞書の単語を仮定し、⋯、νVは、最も簡単なユニグラムモデルは、神がゲームのルールのテキストに従って製造され、次のようにしているされていることを考えることです。
1.神は、サイコロがVは、それぞれ顔がワード、それぞれ異なる面の確率であるべきで、対向する一方のみダイス有している。
ダイススロー表面2.各スローは、対応するワードを生成し、文書場合別スローダイスn回にNワードがnワードを生成します。
ここでは移動されません。
3.1.2バイユーSpiraxの観点
モデル上の統計については、ベイズ統計の学校は異なる意見を持って、彼らは唯一の神は無理がある唯一の固定サイコロを持っていることを前提と非常にうるさい批判になります。ベイジアンビューでは、すべてのパラメータが確率変数で、サイコロの上記のモデルは唯一の定数ではありません、それはまた、確率変数です。したがって、ビューのベイズポイントに合わせて、神はゲームをプレイするには、次の手順に従ったものです。
1.無限V-面を有するダイスのすべての種類、各ダイが装備されている従来のダイス、複数の装備ジャー;
2.今ジャーから引き出さダイス、ダイススローを使用し続けます、すべての語彙のコーパスまで
LDAは、ベイズモデルに基づいて、ベイズモデルは切り離せない「事前分布」、「データ(尤度)」及び「後方プロファイル」3を含みます。ここではベイズには:
事前分布データ+(尤度)は、事後分布を=
あなたはそれが半々である100 100悪者と善玉、良い人と悪い思います、今:それは思考の私達の人々の方法であるため、この事実は、事前分布は、このような良い男と悪者のあなたの意識として、よく理解されています102 101への良い点、悪い:あなたは新しい事後分布を取得するので、あなたは、2(データ)良い面と悪い嘘の助けを借りています。その内部に今すぐあなたの事後分布悪い男よりいい男。その後、事後分布と、彼らは後にだまさ悪者と3(データを)助けるためにあなたがあなたの新しい事前分布、良い人(データ)となって、あなたの事後分布を更新する必要があります。103善と悪の104。今度はそれを更新し続けます。
実際に、ここでの重要な問題が離れて説明したが、それは、ディリクレ分布を事前分布、その後、事前分布を近似するベイズ式を用いて(例えばMCMCとして配布多項式で表現されると、我々は、データ(尤度)を表す、と言うことですサンプリング)、再計算後の事後分布(前および後結合体)。常にモデル分布の反復を更新しました。
LDAトピックモデル
フロントはそんなに土台を行って、我々は最終的にLDAトピックモデルを開始することができます。
私たちの問題はこれです、私たちは、ND言葉がそこに持っているのd番目の文書に対応し、文書のMを公開しています。次のように入力されます。
私たちの目標は、各文書のトピック分布の分布とテーマの各単語を見つけることです。LDAモデルでは、我々はすべてのディストリビューションは、Kのテーマに基づいているように、テーマKの数を想定する必要があります。あまり具体的なLDAモデルは、どのようにそれのようなものでしょうか?図は次のとおりです。
LDAは、任意の文書dに対して、すなわち、前ディリクレ分布に関連する文書が分布であると仮定し、θdは分布の主題である。θD=ディリクレ(α→)、前記パラメータαはK次元ベクトルである超流通、です。
LDA假设主题中词的先验分布是Dirichlet分布,即对于任一主题k, 其词分布βk为:βk=Dirichlet(η→)其中,η为分布的超参数,是一个V维向量。V代表词汇表里所有词的个数。
对于数据中任一一篇文档d中的第n个词,我们可以从主题分布θd中得到它的主题编号zdn的分布为:zdn=multi(θd)
而对于该主题编号,得到我们看到的词wdn的概率分布为:wdn=multi(βzdn)
理解LDA主题模型的主要任务就是理解上面的这个模型。这个模型里,我们有M个文档主题的Dirichlet分布,而对应的数据有M个主题编号的多项分布,这样(α→θd→z→d)就组成了Dirichlet-multi共轭,可以使用前面提到的贝叶斯推断的方法得到基于Dirichlet分布的文档主题后验分布。
如果在第d个文档中,第k个主题的词的个数为:n(k)d, 则对应的多项分布的计数可以表示为n→d=(nd(1),nd(2),...nd(K))
利用Dirichlet-multi共轭,得到θd的后验分布为:Dirichlet(θd|α→+n→d)
同样的道理,对于主题与词的分布,我们有K个主题与词的Dirichlet分布,而对应的数据有K个主题编号的多项分布,这样η→βk→w→(k))就组成了Dirichlet-multi共轭,可以使用前面提到的贝叶斯推断的方法得到基于Dirichlet分布的主题词的后验分布。
如果在第k个主题中,第v个词的个数为:n(v)k, 则对应的多项分布的计数可以表示为n→k=(nk(1),nk(2),...nk(V))
利用Dirichlet-multi共轭,得到βk的后验分布为:Dirichlet(βk|η→+n→k)
由于主题产生词不依赖具体某一个文档,因此文档主题分布和主题词分布是独立的。理解了上面这M+K组Dirichlet-multi共轭,就理解了LDA的基本原理了。
现在的问题是,基于这个LDA模型如何求解我们想要的每一篇文档的主题分布和每一个主题中词的分布呢?
、最初の1は、ギブスサンプラーのアルゴリズムに基づいて、2つの一般的な方法があり、第二は、変分EMアルゴリズムの推定に基づいています。