潜在狄利克雷分布(LDA)初探
文章目錄
- 多項式分布與狄利克雷分布
- 多項式分布
- 狄利克雷分布
- 潛在狄利克雷分布模型
- 文本生成
- 模型定義
- LDA 與 PLSA 異同
潛在狄利克雷分布(Latent Dirichlet Allocation, LDA),是一種無監督學習算法,用于識別文檔集中潛在的主題詞信息。在訓練時不需要手工標注的訓練集,需要的僅僅是文檔集以及指定主題的數量 k 即可。對于每一個主題均可找出一些詞語來描述它。
LDA是一種典型的詞袋模型,即它認為一篇文檔是由一組詞構成的一個集合,詞與詞之間沒有順序以及先后的關系。一篇文檔可以包含多個主題,文檔中每一個詞都由其中的一個主題生成。
多項式分布與狄利克雷分布
狄利克雷分布是多項式分布的共軛先驗概率分布。
多項式分布
假設重復進行nnn次獨立隨機試驗,每次試驗可能出現的結果有kkk種,第iii種結果出現的概率為pip_ipi?,第iii種結果出現的次數為nin_ini?,隨機變量X=(X1,X2,…,Xk)X=(X_1,X_2,\ldots,X_k)X=(X1?,X2?,…,Xk?) 表示試驗所有可能的結果的次數,XiX_iXi?表示第iii種結果出現的次數。那么隨機變量X服從多項分布:
P(X1=n1,X2=n2,…,Xk=nk)=n!n1!n2!…nk!p1n1p2n2…pknkP(X_1=n_1,X_2=n_2,\ldots,X_k = n_k) = \frac{n!}{n_1!n_2!\ldots n_k!} p_1^{n_1} p_2^{n_2}\ldots p_k^{n_k} P(X1?=n1?,X2?=n2?,…,Xk?=nk?)=n1?!n2?!…nk?!n!?p1n1??p2n2??…pknk??
其中p=(p1,p2,...,pk),∑i=1kpi=1,∑i=1kni=np=(p_1, p_2,...,p_k),\sum_{i=1}^k p_i =1, \sum_{i=1}^k n_i =np=(p1?,p2?,...,pk?),∑i=1k?pi?=1,∑i=1k?ni?=n 。我們稱變量X服從參數為(n,p)(n,p)(n,p)的多項式分布,記作:X~Mult(n,p)X \sim Mult(n,p)X~Mult(n,p)。
狄利克雷分布
多元連續隨機變量θ=(θ1,θ2,…,θk)\theta = (\theta_1,\theta_2,\ldots,\theta_k)θ=(θ1?,θ2?,…,θk?)的概率密度為:
P(θ∣α)=Γ(∑i=1Kαi)∏i=1KΓ(αi)∏i=1Kθiαi?1P(\theta| \alpha) = \frac{\Gamma(\sum\limits_{i=1}^K\alpha_i)}{\prod_{i=1}^K\Gamma(\alpha_i)}\prod_{i=1}^K\theta_i^{\alpha_i-1} P(θ∣α)=∏i=1K?Γ(αi?)Γ(i=1∑K?αi?)?i=1∏K?θiαi??1?
其中∑i=1kθi=1,θi≥0,α=(α1,α2,…,αk),αi>0\sum_{i=1}^k \theta_i =1,\theta_i \geq 0, \alpha=(\alpha_1,\alpha_2,\ldots,\alpha_k), \alpha_i \gt 0∑i=1k?θi?=1,θi?≥0,α=(α1?,α2?,…,αk?),αi?>0,且Γ(s)\Gamma(s)Γ(s)是伽馬函數:
Γ(s)=∫0∞xs?1e?xdxs>0\Gamma(s) = \int_{0}^\infty x^{s-1}e^{-x}dx \qquad s>0 Γ(s)=∫0∞?xs?1e?xdxs>0
則稱隨機變量θ\thetaθ 服從參數為α\alphaα的狄利克雷分布,記作θ~Dir(α)\theta \sim Dir(\alpha)θ~Dir(α)。
狄利克雷分布有一些重要性質:(1)狄利克雷分布屬于指數分布族;(2)狄利克雷分布是多項分布的共軛先驗。
如果后驗分布與先驗分布屬于同類,則二者稱為共軛分布,先驗分布稱為共軛先驗。使用共軛分布的好處是便于從先驗分布計算后驗分布。
由于多項分布的先驗分布和后驗分布都是狄利克雷分布,所以狄利克雷分布是多項分布的共軛先驗;狄利克雷后驗分布的參數等于狄利克雷先驗分布參數α=(α1,α2,…,αk)\alpha=(\alpha_1,\alpha_2,\ldots,\alpha_k)α=(α1?,α2?,…,αk?) 加上多項分布的觀測計數n=(n1,n2,…,nk)n=(n_1,n_2,\ldots,n_k)n=(n1?,n2?,…,nk?)。
潛在狄利克雷分布模型
文本生成
LDA 模型是概率圖模型,特點是以狄利克雷分布為多項式分布的先驗分布,學習過程就是給定文本集合,通過后驗概率分布的估計,推斷模型的所有參數。利用LDA進行話題分析,就是對給定文本集合,學習每個文本的話題分布,以及每個話題的單詞分布。文本生成過程如下圖所示:
可以認為LDA是概率潛在語義分析(PLSA)的擴展,在文本生成過程中,LDA使用狄利克雷分布作為先驗分布,而PLSA不使用先驗分布(或者說假設先驗分布是均勻分布)。LDA的優點是:使用先驗概率分布,可以防止學習過程中產生的過擬合 。
模型定義
LDA使用三個集合:
給定狄利克雷分布的超參數α和β,LDA文本集合的生成過程如下:
(1) 生成話題的單詞分布
隨機生成K個話題的單詞分布:按照狄利克雷分布Dir(β)Dir(\beta)Dir(β) 隨機生成一個參數向量φk=(φk1,φk2,…,φkV),φk~Dir(β)\varphi_k = (\varphi_{k1},\varphi_{k2},\ldots,\varphi_{kV}), \varphi_k \sim Dir(\beta)φk?=(φk1?,φk2?,…,φkV?),φk?~Dir(β),φkV\varphi_{kV}φkV?表示話題zkz_kzk? 生成單詞wvw_vwv?的概率,φk\varphi_{k}φk?作為話題zkz_kzk?的單詞分布P(w∣zk)P(w|z_k)P(w∣zk?)。
(2) 生成文本的話題分布
隨機生成MMM個文本的話題分布:按照狄利克雷分布Dir(α)Dir(\alpha)Dir(α) 隨機生成一個參數向量θm=(θm1,θm2,…,θmk),θm~Dir(α)\theta_m = (\theta_{m1},\theta_{m2},\ldots,\theta_{mk}), \theta_m \sim Dir(\alpha)θm?=(θm1?,θm2?,…,θmk?),θm?~Dir(α),θmk\theta_{mk}θmk?表示文本 wm\mathbf w_mwm? 生成話題zkz_kzk?的概率,θm\theta_mθm?作為文本wm\mathbf w_mwm?的話題分布P(z∣wm)P(z|\mathbf w_m)P(z∣wm?)。
(3) 生成文本的單詞序列
要隨機生成MMM個文本的NmN_mNm?個單詞,則文本 wm,(m=1,2,...,M)\mathbf w_m,(m= 1,2,... ,M)wm?,(m=1,2,...,M) 的單詞wmn(n=1,2,..,Nm)w_{mn} (n=1,2,.. ,Nm)wmn?(n=1,2,..,Nm)的生成過程如下:
(3-1) 首先按照多項分布Mult(θm)Mult(\theta_m)Mult(θm?)隨機生成一個話題zmnz_{mn}zmn?,zmn~Mult(θm)z_{mn} \sim Mult(\theta_m)zmn?~Mult(θm?)。
(3-2) 然后按照多項分布Mult(φzmn)Mult(\varphi_{z_{mn}})Mult(φzmn??)隨機生成一個單詞wmn,wmn~Mult(φzmn)w_{mn}, w_{mn} \sim Mult(\varphi_{z_{mn}})wmn?,wmn?~Mult(φzmn??),文本wm\mathbf w_mwm?本身是單詞序列wm=(wm1,…,wmn,…,wmNm)\mathbf w_m = (w_{m1},\ldots,w_{mn},\ldots,w_{mN_m})wm?=(wm1?,…,wmn?,…,wmNm??),對應著隱式的話題序列Z={zm1,zm2,…,zmNm}Z=\{z_{m1},z_{m2},\ldots,z_{mN_m}\}Z={zm1?,zm2?,…,zmNm??}。
上述過程對應的概率圖模型如下:
展開后如下圖所示:
LDA 與 PLSA 異同
相同點:兩者都假設話題是單詞的多項分布,文本是話題的多項分布。
不同點:
在文本生成過程中,LDA使用狄利克雷分布作為先驗分布,而PLSA不使用先驗分布(或者說假設先驗分布是均勻分布。;使用先驗概率分布,可以防止學習過程中產生的過擬合 。
學習過程LDA基于貝葉斯學習,而PLSA基于極大似然估計。
參考文章:
《統計學習方法 第二版》
【轉】LDA數學八卦
總結
以上是生活随笔為你收集整理的潜在狄利克雷分布(LDA)初探的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 概率潜在语义分析(pLSA) 相关知识
- 下一篇: 就看这款了!蔚来全新ES6上市定档:“高