背景
我們生活中總是產生大量的文本,分析這些觀察到的語料庫是如何生成的就需要對文本進行建模。常見的文本建模方法包括:Unigram、PLSA、LDA 、詞向量模型(CBOW、Skip-gram)等。LDA模型是一種主題模型(topic model),屬於詞袋(不關心詞與詞之間的次序)模型。
模型描述
人類所產生的所有語料文本我們都可以看成是上帝拋骰子生成的。我們觀察到的只是上帝玩這個遊戲的結果——詞序列構成的語料,而上帝玩這個遊戲的過程對我們來說是個黑盒子。所以在統計文本建模中,我們希望猜測出上帝是如何玩這個遊戲的。具體一點,最核心的問題是:
- 上帝都有什麼樣的骰子?
- 上帝是如何拋這些骰子的?
第一個問題就對應着模型包含哪些參數,第二個問題就對應着遊戲的規則,上帝可以按照一定的規則拋骰子從而產生詞序列。
LDA算法:
LDA過程圖示:
LDA 概率圖模型:
整個語料庫共包含
M
篇 文檔。其中第
m(m∈[1,M])
篇文檔中的第
n(n∈Nm)
個詞記爲
wm,n
。這個概率圖模型可以分解成兩個主要的過程:
-
α⃗ →θ⃗ m→zm,n
,這個過程表示在生成第
m
篇文檔的時候,先從第一個罈子中抽取一個 doc-topic 骰子
θ⃗ m
,然後拋這個骰子生成了第
m
篇文檔中的第
n
個詞的 topic 編號
zm,n
;
-
β⃗ →φ⃗ k→wm,n|k=zm,n
,目前上帝從第二個罈子中獨立抽取了
K
個 top-word 骰子,這個過程表示採用如下過程生成語料中第
m
篇文檔的第
n
個詞。在上帝手中的
K
個topic-word 骰子
φ⃗ k(k∈[1,K])
中,挑選編號爲
k=zm,n
(第1步得到的結果)的那個骰子進行投擲,然後生成 word
wm,n
。
LDA 模型求解
LDA模型求解的目標主要包括以下兩個方面
- 估計模型中的隱含變量
φ⃗ 1,…,φ⃗ K
和
θ⃗ 1,…,θ⃗ M
;
- 對於新來的一篇文檔
docnew
,計算這篇文檔的topic分佈
θ⃗ new
。
總體思路
隱含變量
Θ
和
Φ
後驗概率分佈難以精確求解,可以通過採樣的方法來近似求解。從LDA概率圖模型可以發現:
-
zm,n
服從 參數爲
θ⃗ m
的 multinomial 分佈,若能獲得
zm,n
的觀測值就很容易得到
θ⃗ m
的後驗概率分佈。
- 若
zm,n
可以被觀測到,假定
zm,n=k
,則第
m
篇文檔的第
n
個詞
wm,n
服從參數爲
φ⃗ k
的multinomial分佈,就能很容易的估計
φ⃗ k
的後驗概率分佈。
但遺憾的是
z⃗
也是隱含變量,不能被直接觀測到。一種可行的方法是:我們首先計算
z⃗
的後驗概率分佈
p(z⃗ |w⃗ )
,然後對該後驗概率分佈進行採樣。將得到的樣本作爲隱含變量
z⃗
的觀察值,這樣就可以對
Θ
和
Φ
的後驗概率分佈進行估計。
計算
z⃗
的後驗概率分佈
p(z⃗ |w⃗ )
(1) 這裏首先介紹一個定理:
若隨機變量
θ⃗ =(θ1,…,θK)
服從參數爲
α⃗ =(α1,…,αK)
的Dirichlet分佈。隨機變量
x
服從參數爲
θ⃗
的 multinomial 分佈(共
K
個類),重複進行
N
次試驗,得到
x⃗
。如下圖所示:
α⃗ ⟶⏟Dirichletθ⃗ ⟶⏟Multinomialx⃗
n⃗ =(n1,…,nK)
表示
x⃗
中各個類別出現的次數,即
n⃗ ∼Multi(θ⃗ ,N)
,有下式成立:
p(x⃗ |α⃗ )=Δ(α⃗ +n⃗ )Δ(α⃗ ) (∗)
證明如下:
p(x⃗ |α⃗ )=∫p(θ⃗ |α⃗ )⋅p(x⃗ |θ⃗ ) dθ⃗ =∫Dir(θ⃗ |α⃗ )⋅Multi(θ⃗ ,N) dθ⃗ =∫1Δ(α)∏k=1Kθαk−1k⋅∏k=1Kθnkk dθ⃗ =1Δ(α⃗ )∫∏k=1Kθαk+nk−1k dθ⃗ =Δ(α⃗ +n⃗ )Δ(α⃗ )
(2)在LDA概率圖模型的第一個物理過程中,
α⃗ →θ⃗ m→z⃗ m
表示生成第
m
篇文檔中所有詞對應的 topic。顯然
α⃗ →θ⃗ m
對應於Dirichlet分佈,
θ⃗ m→z⃗ m
對應於 Multinomial 分佈,所以整個過程是一個 Dirichlet-Multinomial 共軛結構。
α⃗ ⟶⏟Dirichletθ⃗ m⟶⏟Multinomialz⃗ m
根據定理
(∗)
有:
p(z⃗ m|α⃗ )=Δ(α⃗ +n⃗ m)Δ(α⃗ )
其中
n⃗ m=(n(1)m,…,n(K)m)
。
n(k)m
表示在第
m
篇文檔中第
k
個topic 產生的詞的個數。
由於語料中
M
篇文檔的 topic 生成過程是相互獨立的,所以我們得到
M
個相互獨立的 Dirichlet-Multinomial 共軛結構。從而整個語料中 topic 生成的概率爲:
p(z⃗ |α⃗ )=∏m=1Mp(z⃗ m|α⃗ )=∏m=1MΔ(α⃗ +n⃗ m)Δ(α⃗ )
(3)在LDA概率圖模型的第二個物理過程中,
β⃗ →φ⃗ k→w⃗ k
表示語料中由 topic
k
生成詞的過程。其中
w⃗ k
表示語料中由 topic
kβ⃗ →φ⃗ k→w⃗ k
表示語料中由 topic
k
生成詞的過程。其中
w⃗ k
表示語料中由 topic
k→w⃗ k
表示語料中由 topic
k
生成詞的過程。其中
w⃗ k
表示語料中由 topic
k
生成的所有詞。顯然
β⃗ →
生成詞的過程。其中