Latent Dirichlet Allocation (LDA) 理論
透過層次結構來執行自然語言處理 (Natural Language Processing),介紹 Latent Dirichlet Allocation。
最後更新:
介紹
Latent dirichlet allocation (LDA) 一種常用於文字探勘的非監督式機器學習,目標是將大量文件 (documents),依據其使用單字 (words) 頻率,為其生成主題分佈 (topics),以此達成文件分類,是 latent semantic analysis (LSA) 的擴展模型,連結的文章會介紹 LDA 應用。
LSA 假設
- 每個文件 (document) 是主題 (topics) 的 multinomial 分佈,稱為主題分佈
- 每個主題 (topics) 是單字 (words) 的 multinomial 分佈,稱為單字分佈
其中主題分佈與單字分佈都是未知的,僅有文件的用字頻率是已知的;而 LDA 引入 Dirichlet distribution,作為主題分佈與單字分佈的先驗 (prior) 分佈。
分配
Multinomial Distribution
假設有 k 種可能的輸出,第 i 種輸出的機率為 pi≥0,且 ∑i=1kpi=1,對應的出現次數為 xi,則隨機變數 X=(X1,X2,⋯,Xk) 有以下 PDF,
P(X=x∣n,p)=∏i=1k(xi)!n!i=1∏kpixi其中 ∑i=1kxi=n,且 xi∈N (>0),寫作 X∼Mult(n,p);若 n=1 時,簡寫為 Mult(p)。
Dirichlet Distribution
Dirichlet distribution 是 beta distribution 的擴展版,或稱 multivariate beta distribution。給定參數 α=(α1,α2,⋯,αk),αi>0 對任意 i=1,2,⋯,k,則隨機變數 θ=(θ1,θ2,⋯,θk) 有以下 PDF,
P(θ∣α)=∏i=1kΓ(αi)Γ(∑i=1kαi)i=1∏kθiαi−1其中 ∑i=1kθi=1,且 θi≥0 對任意 i=1,2,⋯,k,寫作 θ∼Dir(α)。
Properties
Γ(s) 是 gamma function,定義 multivariate beta function
B(α)=Γ(∑i=1kαi)∏i=1kΓ(αi)使得 Dirichlet distribution 的 PDF 寫成
P(θ∣α)=B(α)1i=1∏kθiαi−1因 PDF 的性質
1=∫P(θ∣α)dθ=B(α)1∫i=1∏kθiαi−1dθ所以
B(α)=∫i=1∏kθiαi−1dθConjugate Prior
基於 Bayes' theorem
posteriorp(θ∣x)=priorp(θ)×likehoodp(x∣θ)÷marginalp(x)=∫p(θ)p(x∣θ)dθp(θ)p(x∣θ)∝p(θ)p(x∣θ)若 prior p(θ) 和 posterior p(θ∣x) 是相同類型的分佈,則稱此 prior 為 conjugate prior,而選用 conjugate distribution 能較容易從 prior 計算 posterior。
給定 X∼Mult(n,θ),其中參數的 prior 為 θ∼Dir(α),則 posterior 為
p(θ∣x,α)∝p(θ∣α)p(x∣θ)=[B(α)1i=1∏kθiαi−1][∏i=1k(xi!)n!i=1∏kθixi]∝i=1∏kθiαi+xi−1即 θ∣x,α∼Dir(x+α),因此 Dirichlet 為 Multinomial 的 conjugate prior。
模型定義
簡化模型
給定 K 個主題、V 種單字、參數 α∈RK 和 β∈RV,LDA 假設一份 N 字的文件生成為順序為
- 生成每個主題下的單字分佈 φk∼Dir(β) 對 k=1,2,⋯,K。
- 生成文件下的主題分佈 θ∼Dir(α)。
- 生成文件下的單字
- 選定每個位置下的主題 zn∼Mult(θ),對 n=1,2,⋯,N。
- 選定每個位置下的單字 wn∼Mult(φzn),對 n=1,2,⋯,N。
範例
例如2個主題、100個單字、參數 α=(2,1) 表示為 (數學、體育) 和 β=(2,2,0.1,2,2,⋯) 表示為 (數字、函數、共軛、勝率、運動),則一份10個字的文件生成順序如下
- 生成每個主題下的單字分佈
- 例如主題1 φ1=(0.4,0.4,0.08,0.01,0.01,⋯),常用字為數字、函數、共軛
- 例如主題2 φ2=(0.08,0.01,0.01,0.4,0.4,⋯),常用字為勝率、運動
- 生成文件下的主題分佈
- 例如偏向數學主題 θ=(0.9,0.1)
- 生成文件下的單字
- 因 ϕ 偏第1維度,Mult(θ) 採樣結果容易為1,而不容易為2;假設 z1=z2=⋯=z9=1,z10=2。
- 生成第1個字,w1∼Mult(φz1)=Mult(φ1) 容易出現數字、函數、共軛等字
- 生成第2個字,w2∼Mult(φz2)=Mult(φ1) 容易出現數字、函數、共軛等字
- ⋮
- 生成第10個字,w10∼Mult(φz10)=Mult(φ2) 容易出現勝率、運動
在此範例中能看出,φ1 與 φ2 決定每個主題下的常用字。
完整模型
LDA 假設 K 是已知的,實務上透過實驗選擇出來,某些實驗結果表明 20 種主題已經足夠;α 與 β 若無先驗知識的情況下,建議將 α 與 β 的所有分量均設為1。現在考慮 K 個主題、V 種單字、M 份文件,文件字數分別為 (N1,N2,⋯,NM) 則 LDA 的生成順序為
- 生成每個主題下的單字分佈 φk∼Dir(β) 對 k=1,2,⋯,K。
- 生成每份文件下的主題分佈 θm∼Dir(α) 對 m=1,2,⋯,M。
- 生成文件下的單字
- 選定每個位置下的主題 zmn∼Mult(θm),對 m=1,2,⋯,M 與 n=N1,N2,⋯,Nm
- 選定每個位置下的單字 wmn∼Mult(φzmn),對 m=1,2,⋯,M 與 n=N1,N2,⋯,Nm
其中 φk 決定每個主題下的單字分佈,θm 決定每個文件的主題分佈。現在簡化符號
- 以 φ={φk}k=1K∈RK×V 表示單字分佈矩陣
- 以 θ={θm}m=1M∈RM×K 表示主題分佈矩陣
- 以 z={zm}m=1M 表示主題矩陣
- 以 w={wm}m=1M 表示單字矩陣
則給定參數 α 與 β 後,完整的機率模型可以被表示為 m 份文件的機率相乘
p(w,z,θ,φ∣α,β)=k=1∏Kp(φk∣β)m=1∏Mp(θm∣α)n=1∏Nmp(zmn∣θm)p(wmn∣φzmn)=m=1∏Mp(wm,zm,θm,φ∣α,β)其中第 m 份文件的機率為
p(wm,zm,θm,φ∣α,β)=k=1∏Kp(φk∣β)p(θm∣α)n=1∏Nmp(zmn∣θm)p(wmn∣φzmn)前半部的 p(φk∣β)p(θm∣α) 為兩個獨立的 Dirichlet 機率,後半部的 p(zmn∣θm)p(wmn∣φzmn) 為兩步驟的 Multinomial 機率,然而 z 是未知的,僅有觀測到 w,因此轉而計算 (wm∣θm,φ) 的 marginal PDF
p(wm∣θm,φ)=k=1∑K[n=1∏Nmp(zmn∣θm)p(wmn∣φzmn)zmn=k]=n=1∏Nm[k=1∑Kp(zmn=k∣θm)p(wmn∣φk)]然而 θ 與 φ 也仍然是未知的。再次計算條件機率,即可計算出給定 prior 參數 α 與 β 下,每份文件出現的機率
p(wm∣α,β)=k=1∏K∫∫p(φk∣β)p(θm∣α)p(wm∣θm,φ)dθmdφk所有文件的 joint PDF 為
p(w∣α,β)=m=1∏Mp(wm∣α,β)參數估計
機率模型中包含3個隱藏參數 z (每個單字的主題)、θ (主題分佈) 與 φ (單字分佈) 是估計目標,從 z 開始。考慮第1份文件,以 w,z,φ,θ 表示 第一份文件對應的 w1,z1,φ1,θ1 ,在給定文件與參數下,每個單字的主題分佈機率如下
p(z∣w,α,β)=p(w∣α,β)p(w,z∣α,β)分母的部分已知,而分子可以拆分為兩部分
p(w,z∣α,β)=p(w∣z,α,β)p(z∣α,β)=p(w∣z,β)p(z∣α)先處理第一部分,令 φkv 為第 k 個主題下,第 v 個單字的機率,令nkv 為第 k 個主題下,第 v 個字出現的次數,且 nk={nk1,nk2,⋯,nkV}
p(w∣z,β)=∫p(w∣z,φ)p(φ,β)dφ=∫[k=1∏Kv=1∏Vφkvnkv][B(β)1v=1∏Vφkvβv−1]dφ=k=1∏KB(β)1∫v=1∏Vφkvnkv+βv−1dφ=k=1∏KB(β)B(nk+β)相似的,令 nmk 為第 m 篇文件下,第 k 個主題出現的次數,且 nm={nm1,nm2,⋯,nmK}
p(z∣α)=∫p(z∣θ)p(θ,α)dθ=m=1∏MB(α)B(nm+α)綜合上式,可獲得
p(w,z∣α,β)=k=1∏KB(β)B(nk+β)m=1∏MB(α)B(nm+α)使得
p(z∣w,α,β)=p(w∣α,β)1k=1∏KB(β)B(nk+β)m=1∏MB(α)B(nm+α)不過其中的 nk 與 nm 是未知的,可以透過 Gibbs sampling 與下列式估計
P(zi=k∣z−i,w,α,β)∝∑v=1V(nkv+βv)nkv+βv⋅∑k=1K(nmk+αk)nmk+αk參考資料
- LI, Hang. Machine Learning Methods. Springer Nature, 2023.
勘誤
這篇文章帶有一定量的錯誤,我會列出有錯誤的式子,紅色是錯誤,綠色是修正
p(θ∣α)=∏i=1kΓ(α)kΓ(∑i=1kαi)i=1∏kθiαi−1p(θ∣α)=∏i=1kΓ(α)Γ(∑i=1kαi)i=1∏kθiαi−1(20.2)==p(wm,zm,θm,φ∣α,β)k=1∏Kp(ϕk∣β)p(θm∣α)m=1∏Nmp(zmn∣θm)p(wmn∣zmn,φ)k=1∏Kp(ϕk∣β)p(θm∣α)n=1∏Nmp(zmn∣θm)p(wmn∣zmn,φ)(20.16)p(wm,∣θm,φ)=n=1∏K∫p(φk∣β)=k=1∏K∫p(φk∣β)(20.18)p(w∣z,β)=∫p(w∣z,β)p(φ∣β)dφ=∫p(w∣z,φ)p(φ∣β)dφ(20.23)∝∝p(zi∣z−i,w,α,β)∑v−1V(nkv+βv)nkv+βv⋅∑k=1K(nmk+αk)nmk+αk∑v=1V(nkv+βv)nkv+βv⋅∑k=1K(nmk+αk)nmk+αk(20.27)