潜在狄利克雷分配(Latent Dirichlet Allocation,LDA)
文章目錄
- 1. 狄利克雷分布
- 2. 潛在狄利克雷分配模型
- 3. 學(xué)習(xí)推理
- 4. sklearn.decomposition.LatentDirichletAllocation
 
潛在狄利克雷分配(latent Dirichlet allocation,LDA),作為基于 貝葉斯學(xué)習(xí)的話題模型,是潛在語(yǔ)義分析、概率潛在語(yǔ)義分析的擴(kuò)展,于2002年由Blei等提出。LDA在文本數(shù)據(jù)挖掘、圖像處理、生物信息處理等領(lǐng)域被廣泛使用。
LDA模型是文本集合的生成概率模型
-  假設(shè)每個(gè)文本由話題的一個(gè)多項(xiàng)分布表示 
-  每個(gè)話題由單詞的一個(gè)多項(xiàng)分布表示 
-  特別假設(shè)文本的話題分布的先驗(yàn)分布是狄利克雷分布 
-  話題的單詞分布的先驗(yàn)分布也是狄利克雷分布 
-  先驗(yàn)分布的導(dǎo)入使LDA能夠更好地應(yīng)對(duì)話題模型學(xué)習(xí)中的過擬合現(xiàn)象 
LDA的文本集合的生成過程如下:
- 首先隨機(jī)生成一個(gè)文本的話題分布
- 之后在該文本的每個(gè)位置,依據(jù)該文本的話題分布隨機(jī)生成一個(gè)話題
- 然后在該位置依據(jù)該話題的單詞分布隨機(jī)生成一個(gè)單詞
- 直至文本的最后一個(gè)位置,生成整個(gè)文本。重復(fù)以上過程生成所有文本
LDA模型是含有隱變量的概率圖模型
- 模型中,每個(gè)話題的單詞分布,每個(gè)文本的話題分布,文本的每個(gè)位置的話題是隱變量
- 文本的每個(gè)位置的單詞是觀測(cè)變量
- LDA模型的學(xué)習(xí)與推理無(wú)法直接求解,通常使用吉布斯抽樣(Gibbs sampling)和變分EM算法(variational EM algorithm),前者是蒙特卡羅法,而后者是近似算法
1. 狄利克雷分布
狄利克雷分布(Dirichlet distribution)是一種多元連續(xù)隨機(jī)變量的概率分布,是貝塔分布(beta distribution)的擴(kuò)展。在貝葉斯學(xué)習(xí)中,狄利克雷分布常作為多項(xiàng)分布的先驗(yàn)分布使用。
定義:
多元連續(xù)隨機(jī)變量 θ=(θ1,θ2,...,θk)\theta = (\theta_1,\theta_2,...,\theta_k)θ=(θ1?,θ2?,...,θk?) 的概率密度函數(shù)為:
 p(θ∣α)=Γ(∑i=1kαi)∏i=1kΓ(αi)∏i=1kθiαi?1∑i=1kθi=1,θi≥0,αi>0,記作θ~Dir(α)p(\theta|\alpha) = \frac{\Gamma \bigg(\sum\limits_{i=1}^k \alpha_i\bigg)}{\prod\limits_{i=1}^k \Gamma(\alpha_i)} \prod\limits_{i=1}^k \theta_i^{\alpha_i-1}\quad \sum\limits_{i=1}^k \theta_i = 1, \theta_i\ge 0,\alpha_i >0,記作\theta \sim Dir(\alpha)p(θ∣α)=i=1∏k?Γ(αi?)Γ(i=1∑k?αi?)?i=1∏k?θiαi??1?i=1∑k?θi?=1,θi?≥0,αi?>0,記作θ~Dir(α)
 伽馬函數(shù),Γ(s)=∫0∞xs?1e?xdx,s>0伽馬函數(shù),\Gamma(s) = \int_0^{\infty} x^{s-1}e^{-x}dx, \quad s>0伽馬函數(shù),Γ(s)=∫0∞?xs?1e?xdx,s>0
 伽馬函數(shù)性質(zhì):
 Γ(s+1)=sΓ(s)\Gamma(s+1) = s\Gamma(s)Γ(s+1)=sΓ(s)
 當(dāng) sss 是自然數(shù)時(shí),有 Γ(s+1)=s!\Gamma(s+1) = s!Γ(s+1)=s!
2. 潛在狄利克雷分配模型
 LDA模型是概率圖模型:
- 特點(diǎn):以狄利克雷分布為多項(xiàng)分布的先驗(yàn)分布
- 學(xué)習(xí):就是給定文本集合,通過后驗(yàn)概率分布的估計(jì),推斷模型的所有參數(shù)
利用LDA進(jìn)行話題分析,就是對(duì)給定文本集合,學(xué)習(xí)到每個(gè)文本的話題分布,以及每個(gè)話題的單詞分布。
- 可以認(rèn)為L(zhǎng)DA是PLSA(概率潛在語(yǔ)義分析)的擴(kuò)展
- 相同點(diǎn):兩者都假設(shè)話題是單詞的多項(xiàng)分布,文本是話題的多項(xiàng)分布
- 不同點(diǎn):LDA使用狄利克雷分布作為先驗(yàn)分布,而PLSA不使用先驗(yàn)分布(或者說假設(shè)先驗(yàn)分布是均勻分布),兩者對(duì)文本生成過程有不同假設(shè)
- 學(xué)習(xí)過程:LDA基于貝葉斯學(xué)習(xí),而PLSA基于極大似然估計(jì)
- LDA的優(yōu)點(diǎn)是:使用先驗(yàn)概率分布,可以防止學(xué)習(xí)過程中產(chǎn)生的過擬合(over-fitting)
3. 學(xué)習(xí)推理
LDA模型的學(xué)習(xí)與推理不能直接求解。
- 通常采用的方法是吉布斯抽樣算法和變分EM算法
- 前者是蒙特卡羅法,而后者是近似算法
4. sklearn.decomposition.LatentDirichletAllocation
sklearn.decomposition.LatentDirichletAllocation官網(wǎng)介紹
class sklearn.decomposition.LatentDirichletAllocation(n_components=10, doc_topic_prior=None, topic_word_prior=None, learning_method='batch', learning_decay=0.7, learning_offset=10.0, max_iter=10, batch_size=128, evaluate_every=-1, total_samples=1000000.0, perp_tol=0.1, mean_change_tol=0.001, max_doc_update_iter=100, n_jobs=None, verbose=0, random_state=None)n_components, optional (default=10),話題數(shù)量
實(shí)踐參考:https://www.cnblogs.com/pinard/p/6908150.html
總結(jié)
以上是生活随笔為你收集整理的潜在狄利克雷分配(Latent Dirichlet Allocation,LDA)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: LeetCode 1239. 串联字符串
- 下一篇: LeetCode 293. 翻转游戏
