Topic model
April 8, 2014
1 / 35
Topic model
Topic model
文書などのデータには、そこに現れる語に潜在的なトピック (話題) がある
と考え、文書からトピックを推定するモデル
トピックが分かると、類似する文書を分類 (クラスタリング) 可能に
個々の語ではなくトピックを単位として考えることで、類義語の集約が
可能に
(eg. 「ネコ」と「猫」を同じ語とみなせる)
類義語を集約することで、処理精度が向上
(eg. 「ネコ」で検索したとき、「猫」を含むページを発見可能に)
類義語を集約することで、必要なメモリ・時間が少なく
2 / 35
特異値分解 (SVD)
Singular Value Decomposition(SVD)
任意の行列 A に対し r ∶= rank(A) としたとき、次の分解が可能
∀
A ∈ M(m, n), ∃
U ∈ M(m, r), V ∈ M(r, n), 𝛴 ∈ diag(r); A = U 𝛴t
V
𝛴 = ⊕ 𝜎i(𝜎i ≥ 0) となり、 𝜎i を M の特異値という
U, V をは直交行列 (t
UU = t
VV = I) で、これらの列ベクトルを左特
異ベクトル、右特異ベクトルという
Notice
U = (𝒖i), V = (𝒗i) とすると、A = ∑ 𝜎i 𝒖i
t
𝒗i
固有値分解は A𝒖i = 𝜎i 𝒖i と表されるので、SVD の特殊な場合
3 / 35
特異値分解 (SVD)
SVD による次元削減
U, V の取り方によっては 𝜎1 ≥ 𝜎2 ≥ ⋯ ≥ 𝜎r > 0 とできるので、以下このよ
うな順序を仮定
このとき Ak ∶= ∑k
i=1 𝜎i 𝒖i
t
𝒗i ∈ M(m, n) とすると、ある程度大きな k
をとれば Ak ≃ A と近似できる
(∵ Eckart-Young の定理、後述)
Ak = Uk 𝛴kVk とすると、
Uk = (𝒖i) ∈ M(m, k), Vk = (𝒗i) ∈ M(k, n), 𝛴k = ⊕k
i=1 𝜎i ∈ diag(k)
Uk, Vk は U, V のうち第 1 列から第 k 列までを取り出した行列、 𝛴k は
特異値を (大きい順に)k 個並べた対角行列
A を記録するには O(mn) の空間が必要だが、Ak を記録するには
O(mk) + O(nk) + O(k) = O(m + n)(∵k: const.) で可能
4 / 35
特異値分解 (SVD)
Example
A = 󰀷 𝒖1 𝒖2 ⋯ 𝒖k ⋯ 𝒖r 󰀸
⎛
⎜
⎜
⎜
⎜
⎜
⎜
⎝
𝜎1
𝜎2
⋱
𝜎k
⋱
𝜎r
⎞
⎟
⎟
⎟
⎟
⎟
⎟
⎠
⎛
⎜
⎜
⎜
⎜
⎜
⎜
⎝
𝒗1
𝒗2
⋮
𝒗k
⋮
𝒗r
⎞
⎟
⎟
⎟
⎟
⎟
⎟
⎠
≃ 󰀷 𝒖1 𝒖2 ⋯ 𝒖r 𝒐 ⋯ 󰀸
⎛
⎜
⎜
⎜
⎜
⎜
⎜
⎝
𝜎1
𝜎2
⋱
𝜎k
𝒐
⋱
⎞
⎟
⎟
⎟
⎟
⎟
⎟
⎠
⎛
⎜
⎜
⎜
⎜
⎜
⎜
⎝
𝒗1
𝒗2
⋮
𝒗k
𝒐
⋮
⎞
⎟
⎟
⎟
⎟
⎟
⎟
⎠
5 / 35
特異値分解 (SVD)
Eckart-Young の定理
‖A − Ak‖Frobenius =
√
r
∑
i=k+1
𝜎2
i
Frobenius ノルムの定義は ‖A‖Frobenius ∶= √∑ a2
ij
この定理により limk→r ‖A − Ak‖Frobenius = 0 なので limk→r Ak = A で
あり、Ak は A の近似になっている
6 / 35
Latent Semantic Analysis(LSA)
Latent Semantic Analysis/Indexing(LSA/LSI)
文書集合を D = {di}、語集合を W = {wi}、トピック集合を
T = {ti|i = 1, ⋯ , r} とし、A = (aij) を次のように定める。
aij ∶=
󰃠
positive (wi ∈ dj)
0 (wi ∉ dj)
ここで A = U 𝛴t
V と特異値分解すると、 𝜎i はトピック ti の重要度を表
す (r は A の一次独立な (トピックの異なる) 文書数)
また U = (uij), V = (vij) とすると、aij = ∑ 𝜎kuikvkj となるので、uij
は語 wi がトピック tj に属する度合いを、vij は文書 di がトピック tj に
属する度合いを表す (と解釈できる)
A を近似した Ak は、重要な k 個のトピック t1, ⋯ , tk についてのみ考慮
した行列になる
7 / 35
Latent Semantic Analysis(LSA)
Problems of LSA
k の値 (トピック数) を予め ad-hoc に決定している (適切な k の選択法
がない)
U, V の成分には負の値が現れうるが、負の値を意味付けできない
1 文書に 1 つのトピックしかないと仮定している
Frobenius ノルム (‖A − Ak‖) の意味での最適化 (最小二乗法) は、誤差
が正規分布に従うことを仮定しているが、A の成分は頻度なので非負の
離散値であり、仮定を満たさない (ため、最小二乗法では最適化でき
ない)
⇨ LSA は理論的根拠が不十分で、発展性に乏しい
8 / 35
Probablistic LSA(pLSA)
Probablistic LSA(pLSA)
文書 d と語 w の結合確率を、トピック集合を Z として次のようにモデル化
(図 1(a))a
p(d, w) = ∑
z∈Z
p(d, w, z)(∵Z について周辺化)
= p(d) ∑
z∈Z
p(w, z|d)
= p(d) ∑
z∈Z
p(w|z, d)p(z|d)
= p(d) ∑
z∈Z
p(w|z)p(z|d)(∵d と w は条件付き独立)
d と w は条件付き独立だと仮定
p(d) という謎の確率が存在 (文書 d が観測される確率?)
a
Hofmann による論文のうち、[4][5] より [6] が詳しい。 9 / 35
Probablistic LSA(pLSA)
Probablistic LSA(pLSA)
pLSA は次のようにモデル化することも可能 (図 1(b))a
p(d, w) = ∑
z∈Z
p(d, w, z)(∵Z について周辺化)
= ∑
z∈Z
p(z)p(d, w|z)
= ∑
z∈Z
p(z)p(d|z)p(w|z)(∵d と w は条件付き独立)
実際に観測されている (学習データに含まれている)(d, w) の組につい
て、p(d, w) を最大化したい
⇨ EM 法による最尤推定で最適化
a
先のページの式に Bayes の定理を用いても同じ結果になる
10 / 35
Probablistic LSA(pLSA)
Graphical model
文書 d(∈ D) と語 w(∈ W) は、トピック z(∈ Z) を介して条件付き独立
文書数を M(= #
D)、語数を N = #
W とし、文書中の語ごとにトピック
があると仮定
p(d, w) は非対称なモデル (a) でも対称なモデル (b) でも表現・実装可能
M (= #D)
N (= #W)
z wd
(b) symmetric model
M (= #D)
N (= #W)
z wd
(a) asymmetric model
Figure: Graphical model of pLSA
11 / 35
Probablistic LSA(pLSA)
LSA and pLSA
P ∶= (p(di, wj)), U ∶= (p(di|zj)) ∈ M(#
D, #
Z), V ∶= (p(wi|zj)) ∈
M(#
W, #
Z), 𝛴 ∶= ⊕ p(zi) ∈ M(#
Z, #
Z) とおくと、P = U 𝛴t
V
条件付き独立の仮定により、uij はトピック j から文書 i が現れる確率、
vij はトピック j から語 i が現れる確率となり、U, V の成分を明瞭に解
釈可能
(どの成分も確率なので、負の値も現れない)
トピック Z から語 W が語毎に生成されるので、文書に複数のトピック
が含まれることを許容
最尤推定を用いるので、最適化の根拠が明瞭
EM-algorithm は局所解に陥りうるが、tempering により緩和可能
EM-algorithm の反復に必要な計算量は、SVD に比べてさほど多くない
12 / 35
Probablistic LSA(pLSA)
EM-algorithm
母数 p(zk|di, wj), p(di), p(wj|zk), p(zk|dj) を最適化するため、逐次的に最尤推
定を行う [6][7]
1 p(zk|di, wj), p(di), p(wj|zk), p(zk|dj) を適当な値に初期化
2 E-step(expectation)
p(zk|di, wj) を計算
3 M-step(maximization)
p(di), p(wj|zk), p(zk|dj) を計算
4 E-step へ戻る
13 / 35
Probablistic LSA(pLSA)
E-step
観測されたデータ (di, wj) がトピック zk である確率を求める
p(zk|di, wj) =
p(zk, di, wj)
p(di, wj)
=
p(wj|zk)p(zk|di)p(di)
p(di) ∑z p(wj|z)p(z|di)
=
p(wj|zk)p(zk|di)
∑z p(wj|z)p(z|di)
母数 p(w|z), p(z|d) に現時点での値を代入すれば、すべての k について
p(zk|di, wj) を求めることが可能
14 / 35
Probablistic LSA(pLSA)
M-step
観測データが現れる確率 (尤度)L を最大化 (d での w の出現頻度を n(d, w)、
d の語数を n(d)(= ∑ n(d, w)) とする)
log L ∶= log p((d1, w1), ⋯ , (dN , wn(dN))) = log
∏
i
∏
j
p(di, wj)n(di,wj)
= ∑
i
∑
j
n(di, wj) log p(di, wj)
= ∑
i
∑
j
n(di, wj) log p(di) ∑
k
p(wj|zk)p(zk|di)
対数尤度の期待値は、
Eq[log L] = ∑
i
∑
j
n(di, wj) ∑
k
p(zk|di, wj) log p(di)p(wj|zk)p(zk|di)
= ∑
i
∑
j
n(di, wj) ∑
k
p(zk|di, wj)(log p(di) + log p(wj|zk) + log p(zk|d
15 / 35
Probablistic LSA(pLSA)
M-step (cont.)
制約条件 ∑i log p(di) = 1, ∑j log p(wj|zk) = 1, ∑k log p(zk|di) = 1 の下で
Eq[log L] を最大化するので、 𝜆, 𝜏k, 𝜌i を Lagrange 乗数として、
H ∶= Eq[log L] + 𝜆(1 − ∑
i
log p(di))
+ ∑
k
𝜏k(1 − ∑
j
log p(wj|zk)) + ∑
i
𝜌i(1 − ∑
k
log p(zk|di))
これをそれぞれの母数で偏微分すると、H が最大となるとき、
𝜕
𝜕p(di)
H = ∑
j
n(di, wj) ∑
k
p(zk|di, wj)
p(di)
− 𝜆 = 0
𝜕
𝜕p(wj|zk)
H = ∑
i
n(di, wj)
p(zk|di, wj)
p(wj|zk)
− 𝜏k = 0
𝜕
H = n(d , w )
p(zk|di, wj)
− 𝜌 = 0 16 / 35
Probablistic LSA(pLSA)
M-step (cont.)
これらを解くと、
p(di) ∝ ∑
j
n(di, wj) ∑
k
p(zk|di, wj) = ∑
j
n(di, wj) = n(di)
p(wj|zk) ∝ ∑
i
n(di, wj)p(zk|di, wj), p(zk|di) ∝ ∑
j
n(di, wj)p(zk|di, wj)
以上より、母数の更新式は、
p(di) =
n(di)
∑i n(di)
, p(wj|zk) =
∑i n(di, wj)p(zk|di, wj)
∑j ∑i n(di, wj)p(zk|di, wj)
p(zk|di) =
∑j n(di, wj)p(zk|di, wj)
∑k ∑j n(di, wj)p(zk|di, wj)
=
∑j n(di, wj)p(zk|di, wj)
∑j n(di, wj) ∑k p(zk|di, wj)
=
∑j n(di, wj)p(zk|di, wj)
∑j n(di, wj)
=
∑j n(di, wj)p(zk|di, wj)
n(di) 17 / 35
Probablistic LSA(pLSA)
EM-algorithm (add-up)
母数 p(zk|di, wj), p(di), p(wj|zk), p(zk|dj) を最適化
1 p(zk|di, wj), p(di), p(wj|zk), p(zk|dj) を適当な値に初期化
2 E-step(expectation)
p(zk|di, wj) =
p(wj|zk)p(zk|di)
∑z p(wj|z)p(z|di)
3 M-step(maximization)
p(di) =
n(di)
∑i n(di)
, p(wj|zk) =
∑i n(di, wj)p(zk|di, wj)
∑j ∑i n(di, wj)p(zk|di, wj)
p(zk|di) =
∑j n(di, wj)p(zk|di, wj)
n(di)
4 E-step へ戻る 18 / 35
Probablistic LSA(pLSA)
Remark
Hofmann[6] では p(d) ∝ n(d) という近似を用い、p(d) を定数として
扱う
Hofmann[4] では z → d, z → w のモデルを用い、
p(z|d, w), p(z), p(d|z), p(w|z) を母数として最適化。M-step の更新式は、
p(zk) =
∑i ∑j n(di, wj)p(zk|di, wj)
∑i n(di)
p(wj|zk) =
∑i n(di, wj)p(zk|di, wj)
∑j ∑i n(di, wj)p(zk|di, wj)
p(di|zk) =
∑j n(di, wj)p(zk|di, wj)
∑i ∑j n(di, wj)p(zk|di, wj)
簡明な実装例には [9] などがある
19 / 35
Probablistic LSA(pLSA)
Problems of pLSA
pLSA で最適化する母数 p(zk|di, wj), p(di), p(wj|zk), p(zk|dj) の個数は、
O(#
D + #
W#
Z + #
Z#
D) = O(#
D + #
W)(∵#
Z: const.)
であり、訓練データの文書数 #
D、語数 #
W に対して線型に増加するた
め、訓練データへの過適合 (overfit) が生じやすい
pLSA では文書 d も観測データとして扱っているが、訓練データにない
文書 d に対する p(d) をどう割り当てるのか不明
20 / 35
Latent Dirichlet Allocation(LDA)
Latent Dirichlet Allocation(LDA)
文書を語のベクトル 𝒘 として表したとき、文書の生成確率を次のようにモ
デル化 [2]
1 文書の語数 N が選ばれる
2 その文書におけるトピックの混合比 𝜽 ∼ Dirichlet(𝜶) が選ばれる
3 個々の語 wn について、
1 トピック zn ∼ Multinomial(𝜽) が選ばれる
2 zn と行列 𝜷(𝛽ij ∶= p(wj|zi)) から wn が生成される
p(𝒘|𝜶, 𝜷) =
∫ ∑
z
p(𝜽, z, 𝒘|𝜶, 𝜷)d𝜽 =
∫
p(𝜽|𝜶)
∏
w
∑
z
p(z|𝜽)p(w|z, 𝜷)d𝜽
21 / 35
Latent Dirichlet Allocation(LDA)
Graphical model
トピック数を K(= #
Z)、文書数を M(= #
D)、個々の文書の語数を N と
し、文書中の語ごとにトピックがあると仮定 (モデル (a))
学習の際は、 𝜽 と z が条件付き独立になるような分布 q が存在すると仮
定 (因子化仮定) したモデル (b) を用いる
K (= #Z)
M (= #D)
N (= #W)
zθ
(b) variational distribution
M (= #D)
N (= #W)
z wθ
(a) LDA
α
β
ϕγ
η
Figure: Graphical model of LDA
22 / 35
Latent Dirichlet Allocation(LDA)
Graphical model
𝜶 は K 次元ベクトルで、一般的な各トピックの現れ易さを表す母数
𝜽 ∼ Dirichlet(𝜶) も K 次元ベクトルで、個々の文書における各トピック
の現れ易さを表す母数
𝜷 ∈ M(K, #
W) はトピック数×語彙数の行列で、i, j-成分はトピック i
での語 j の現れ易さを表す母数
⇨ 𝜶, 𝜷 を学習により最適化すれば、出現し易いトピックやトピック毎の頻
出語が分かる
Dirichlet 分布
母数 𝜶 = (𝛼1, ⋯ , 𝛼k) の Dirichlet 分布に従う連続型確率変数 𝜽 = (𝜃1, ⋯ , 𝜃k)
は、次の確率密度関数で表される
p(𝜽; 𝜶) =
𝛤(∑i 𝛼i)
∏i 𝛤(𝛼i) ∏
i
𝜃
𝛼i−1
i
23 / 35
Latent Dirichlet Allocation(LDA)
VB-EM-algorithm
p(w|𝜶, 𝜷) を最大化する母数 𝜶, 𝛽ij, 𝜸, 𝜙ni を求める (変分 Bayes
EM-algorithm)
1 𝜶, 𝛽ij, 𝜸, 𝜙ni を適当な値に初期化
2 E-step(expectation)
𝜸, 𝜙ni を計算
3 M-step(maximization)
𝜶, 𝛽ij を計算
4 E-step へ戻る
24 / 35
Latent Dirichlet Allocation(LDA)
VB-EM-algorithm
log p(𝒘|𝜶, 𝜷) = log
∫ ∑
z
p(𝜽, z, 𝒘|𝜶, 𝜷)d𝜽
= log
∫ ∑
z
q(𝜽, z)
p(𝜽, z, 𝒘|𝜶, 𝜷)
q(𝜽, z)
d𝜽
≥
∫ ∑
z
q(𝜽, z) log
p(𝜽, z, 𝒘|𝜶, 𝜷)
q(𝜽, z)
d𝜽(∵Jensen の不等式)
=
∫ ∑
z
q(𝜽, z) log p(𝜽, z, 𝒘|𝜶, 𝜷)d𝜽 −
∫ ∑
z
q(𝜽, z) log q(𝜽, z
= Eq[log p(𝜽, z, 𝒘|𝜶, 𝜷)] − Eq[log q(𝜽, z)]
この下限を F(𝜸, 𝝓, 𝜶, 𝜷) とおき、最大化する
25 / 35
Latent Dirichlet Allocation(LDA)
VB-EM-algorithm
F(𝜸, 𝝓, 𝜶, 𝜷) = Eq[log p(𝜽, z, 𝒘|𝜶, 𝜷)] − Eq[log q(𝜽, z)]
= Eq[log(p(𝒘|𝜽, z, 𝜶, 𝜷)p(𝜽, z|𝜶, 𝜷))] − Eq[log(q(𝜽)q(z))]
(∵𝜽, z は条件付き独立)
= Eq[log(p(𝒘|z, 𝜷)p(z|𝜽, 𝜶, 𝜷)p(𝜽|𝜶, 𝜷))] − Eq[log(q(𝜽)q(z))]
(∵𝒘 と 𝜽, 𝜶 は条件付き独立)
= Eq[log(p(𝒘|z, 𝜷)p(z|𝜽)p(𝜽|𝜶))] − Eq[log(q(𝜽)q(z))]
(∵z と 𝜶, 𝜷、 𝜽 と 𝜷 は条件付き独立)
= Eq[log p(𝜽|𝜶)] + Eq[log p(z|𝜽)] + Eq[log p(𝒘|z, 𝜷)]
− Eq[log q(𝜽)] − Eq[log q(z)]
26 / 35
Latent Dirichlet Allocation(LDA)
VB-EM-algorithm
更に F を展開しa
、 𝛹(z) ∶= d
dz
log 𝛤(z)(= 𝛤′
(z)
𝛤(z)
) をディガンマ関数とし、
F(𝜸, 𝝓, 𝜶, 𝜷) = log 𝛤(∑
j
𝛼j) − ∑
i
log 𝛤(𝛼i) + ∑
i
(𝛼i − 1)(𝛹(𝛾i) − 𝛹(∑
j
𝛾j))
+ ∑
n
∑
i
𝜙ni(𝛹(𝛾i) − 𝛹(∑
j
𝛾j))
+ ∑
n
∑
i
∑
j
𝜙niw
j
n log 𝛽ij
− log 𝛤(∑
j
𝛾j) + ∑
i
log 𝛤(𝛾i) − ∑
i
(𝛾i − 1)(𝛹(𝛾i) − 𝛹(∑
j
𝛾j))
− ∑
n
∑
i
𝜙ni log 𝜙ni
(各行は前ページの式における各項に対応)
a
途中の導出は [10][11] が詳しい。 27 / 35
Latent Dirichlet Allocation(LDA)
E-step
制約条件 ∑i 𝜙ni = 1 の下、F を最大化する 𝜙ni を求める
H 𝜙 ∶= F(𝜸, 𝜙, 𝜶, 𝜷) + 𝜆n(∑
j
𝜙nj − 1)
とおくと、H 𝜙 が最大となるとき、
𝜕
𝜕𝜙ni
H 𝜙 =
𝜕
𝜕𝜙ni
(𝜙ni(𝛹(𝛾i) − 𝛹(∑
j
𝛾j)) + 𝜙ni log 𝛽iv − 𝜙ni log 𝜙ni + 𝜆n 𝜙ni)
= 𝛹(𝛾i) − 𝛹(∑
j
𝛾j)) + log 𝛽iv − log 𝜙ni + 𝜆n = 0
∴𝜙ni ∝ 𝛽iv exp(𝛹(𝛾i) − 𝛹(∑
j
𝛾j))
正規化すると、
𝜙ni =
𝛽iv exp(𝛹(𝛾i) − 𝛹(∑j 𝛾j))
28 / 35
Latent Dirichlet Allocation(LDA)
E-step
次に、F を最大化する 𝛾i を求めると、F が最大となるとき、
𝜕
𝜕𝛾i
F =
𝜕
𝜕𝛾i
(𝛹(𝛾i)(𝛼i + ∑
n
𝜙ni − 𝛾i) − 𝛹(∑
j
𝛾j) ∑
j
(𝛼j + ∑
n
𝜙nj − 𝛾j) − log 𝛤(∑
= 𝛹′
(𝛾i)(𝛼i + ∑
n
𝜙ni − 𝛾i) − 𝛹′
(∑
j
𝛾j) ∑
j
(𝛼j + ∑
n
𝜙nj − 𝛾j) = 0
∴𝛾i = 𝛼i + ∑
n
𝜙ni
29 / 35
Latent Dirichlet Allocation(LDA)
M-step
E-step では文書という単位を考えずに 𝜙ni, 𝛾i の更新式を導いたが、
M-step では、すべての文書 𝒘1, ⋯ , 𝒘M について考える
以下、F ∶= ∑d F として、母数 𝛽ij, 𝛼i の更新式を求める
𝜙ni, 𝛾i と w
j
n は文書によって変わるので、以下 𝜙dni, 𝛾di, w
j
dn
と表す
30 / 35
Latent Dirichlet Allocation(LDA)
M-step
次に、制約条件 ∑j 𝛽ij = 1 の下、F を最大化する 𝛽ij を求める
H 𝛽 ∶= F(𝜸, 𝝓, 𝜶, 𝜷) + 𝜆i(∑
j
𝛽ij − 1)
とおくと、H 𝛽 が最大となるとき、
𝜕
𝜕𝛽ij
H 𝛽 =
𝜕
𝜕𝛽ij
∑d ∑n 𝜙dniw
j
dn
𝛽ij
+ 𝜆i = 0
∴𝛽ij ∝ ∑
d
∑
n
𝜙dniw
j
dn
正規化すると、
𝛽ij =
∑d ∑n 𝜙dniw
j
dn
∑l ∑d ∑n 𝜙dniwl
dn
31 / 35
Latent Dirichlet Allocation(LDA)
M-step
次に、F を最大化する 𝛼i を求めると、
𝜕
𝜕𝛼i
F =
𝜕
𝜕𝛼i
(∑
d
(log 𝛤(∑
j
𝛼j) − log 𝛤(𝛼i) + (𝛼i − 1)(𝛹(𝛾di) − 𝛹(∑
j
𝛾dj))))
= M(𝛹(∑
j
𝛼j) − 𝛹(𝛼i)) + ∑
d
(𝛹(𝛾di) − 𝛹(∑
j
𝛾dj))
このままでは
𝜕
𝜕𝛼i
F = 0 としても 𝛼i の更新式を求められないので、
Newton-Raphson 法などにより逐次更新し、 𝜶 の不動点を求める
Newton-Raphson 法
𝜶 の Hesse 行列を H(𝜶)(∶= ( 𝜕2
F
𝜕𝛼i 𝜕𝛼j
)) としたとき、次の更新式で 𝜶 を反復的
に更新
𝜶 ∶= 𝜶 − H(𝜶)−1
∇𝜶
32 / 35
Latent Dirichlet Allocation(LDA)
VB-EM-algorithm (add-up)
p(w|𝜶, 𝜷) を最大化する母数 𝜶, 𝛽ij, 𝜸, 𝜙ni を求める
1 𝜶, 𝛽ij, 𝜸, 𝜙ni を適当な値に初期化
2 E-step(expectation)
𝜙ni =
𝛽iv exp(𝛹(𝛾i) − 𝛹(∑j 𝛾j))
∑l 𝛽lv exp(𝛹(𝛾l) − 𝛹(∑j 𝛾j))
, 𝛾i = 𝛼i + ∑
n
𝜙ni
3 M-step(maximization)
𝛽ij =
∑d ∑n 𝜙dniw
j
dn
∑l ∑d ∑n 𝜙dniwl
dn
, 𝜶 = 𝜶 − H(𝜶)−1
∇𝜶
4 E-step へ戻る
33 / 35
Latent Dirichlet Allocation(LDA)
Remark
求めた 𝜶, 𝜷 は次のような意味を持つ
𝛼i は、トピック i の現れ易さを表す
𝛽ij は、トピック i での語 j の現れ易さを表す
簡明な実装例には [8] などがある
学習していない文書に対しては、学習した 𝜶, 𝜷 を用いて 𝝓, 𝜸 を再計算
することで、文書の語のトピックを算出可能
34 / 35
Latent Dirichlet Allocation(LDA)
Gibbs sampling
実際にサンプリングを繰り返して最適な z を求める手法 [3]
VB-EM より更新式の導出が簡単で高性能だが、VB-EM より若干遅い
最初に、一般にどのトピックも平等に現れうる、つまり 𝜶 のすべての成
分は等しい (𝛼i = 1
K
) と仮定する
更新式の導出の詳細は [13] を参照
35 / 35
EM-algorithm
EM-algorithm
パラメータ 𝜽 と潜在変数 z をもつデータについて、観測されたデータ D が
現れる確率 L(𝜽) が最大になるよう最適化する手法 [12][1]
L(𝜽) ∶= p(D|𝜽) =
∫
p(D, z|𝜽)dz
尤度関数 L(𝜽) を最大化するため、対数尤度を考え、任意の分布 q(z|D) を導
入する
log L(𝜽) = log
∫
p(D, z|𝜽)dz = log
∫
q(z|D)
p(D, z|𝜽)
q(z|D)
dz
≥
∫
q(z|D) log
p(D, z|𝜽)
q(z|D)
dz(∵Jensen の不等式)
この下限を F(q, 𝜽) とおくと、log L(𝜽) は常に F より大きくなるので、F を
最大化して L を底上げすればよい
36 / 35
EM-algorithm
E-step
F を q について最大化
F(q, 𝜽) =
∫
q(z|D) log
p(D, z|𝜽)
q(z|D)
dz =
∫
q(z|D) log
p(z|D, 𝜽)p(D|𝜽)
q(z|D)
dz
=
∫
q(z|D)(log p(D|𝜽) + log
p(z|D, 𝜽)
q(z|D)
)dz
=
∫
q(z|D)(log p(D|𝜽) − log
q(z|D)
p(z|D, 𝜽)
)dz
=
∫
q(z|D) log p(D|𝜽)dz −
∫
q(z|D) log
q(z|D)
p(z|D, 𝜽)
dz
= log p(D|𝜽)
∫
q(z|D)dz − D(q(z|D)||p(z|D, 𝜽))
= log p(D|𝜽) − D(q(z|D)||p(z|D, 𝜽))
KL-divergence D(q||p) は q = p のとき最小となるので、q(z|D) = p(z|D, 𝜽)
のとき F は最大 37 / 35
EM-algorithm
M-step
F を 𝜽 について最大化
F(q, 𝜽) =
∫
q(z|D) log
p(D, z|𝜽)
q(z|D)
dz
=
∫
q(z|D)(log p(D, z|𝜽) − log q(z|D))dz
=
∫
q(z|D) log p(D, z|𝜽)dz −
∫
q(z|D) log q(z|D)dz
= E[log p(D, z|𝜽)] − H(q(z|D))
第 2 項 (q のエントロピー) は 𝜽 に依らないので、E[log p] を 𝜽 について最
大化
38 / 35
Reference I
David Andrzejewski. Expectation Maximization. url:
http://pages.cs.wisc.edu/~andrzeje/research/em.pdf.
David M. Blei, Andrew Y. Ng, and Michael I. Jordan. “Latent Dirichlet Allocation”. In:
J. Mach. Learn. Res. 3 (2003), pp. 993–1022. url:
http://jmlr.org/papers/v3/blei03a.html.
Thomas L. Griffiths and Mark Steyvers. “Finding scientific topics”. In: Proceedings of
the National Academy of Sciences 101 (2004), pp. 5228–5235. doi:
10.1073/pnas.0307752101.
Thomas Hofmann. “Probabilistic Latent Semantic Analysis”. In: Proceedings of the
Fifteenth Conference on Uncertainty in Artificial Intelligence. 1999, pp. 289–296.
Thomas Hofmann. “Probabilistic Latent Semantic Indexing”. In: Proceedings of the
22Nd Annual International ACM SIGIR Conference on Research and Development in
Information Retrieval. 1999. doi: 10.1145/312624.312649.
Thomas Hofmann. “Unsupervised Learning by Probabilistic Latent Semantic Analysis”.
In: Machine Learning 42 (), pp. 177–196. doi: 10.1023/A:1007617005950.
Liangjie Hong. A Tutorial on Probabilistic Latent Semantic Analysis. 2012. url:
http://arxiv.org/abs/1212.3900.
39 / 35
Reference II
Makoto Sato. satomacoto: Python で LDA を実装してみる. 2009. url:
http://satomacoto.blogspot.jp/2009/12/pythonlda.html.
Makoto Sato. satomacoto: Python で PLSA を実装してみる. 2009. url:
http://satomacoto.blogspot.jp/2009/10/pythonplsa.html.
正田 備也. LDA における変分ベイズ法によるパラメータ推定 (1). url:
http://www.iris.dti.ne.jp/~tmasada/2006081101.pdf.
正田 備也. LDA における変分ベイズ法によるパラメータ推定 (2). url:
http://www.iris.dti.ne.jp/~tmasada/2006081701.pdf.
持橋 大地. 統計数理研究所公開講座「確率的トピックモデル」. url:
http://www.ism.ac.jp/~daichi/lectures/H24-TopicModels.html.
手塚 太郎. LDA(Latent Dirichlet Allocation) の更新式の導出. url:
http://yattemiyou.net/docs/lda_gibbs.pdf.
40 / 35

Topic model

  • 1.
  • 2.
    Topic model Topic model 文書などのデータには、そこに現れる語に潜在的なトピック(話題) がある と考え、文書からトピックを推定するモデル トピックが分かると、類似する文書を分類 (クラスタリング) 可能に 個々の語ではなくトピックを単位として考えることで、類義語の集約が 可能に (eg. 「ネコ」と「猫」を同じ語とみなせる) 類義語を集約することで、処理精度が向上 (eg. 「ネコ」で検索したとき、「猫」を含むページを発見可能に) 類義語を集約することで、必要なメモリ・時間が少なく 2 / 35
  • 3.
    特異値分解 (SVD) Singular ValueDecomposition(SVD) 任意の行列 A に対し r ∶= rank(A) としたとき、次の分解が可能 ∀ A ∈ M(m, n), ∃ U ∈ M(m, r), V ∈ M(r, n), 𝛴 ∈ diag(r); A = U 𝛴t V 𝛴 = ⊕ 𝜎i(𝜎i ≥ 0) となり、 𝜎i を M の特異値という U, V をは直交行列 (t UU = t VV = I) で、これらの列ベクトルを左特 異ベクトル、右特異ベクトルという Notice U = (𝒖i), V = (𝒗i) とすると、A = ∑ 𝜎i 𝒖i t 𝒗i 固有値分解は A𝒖i = 𝜎i 𝒖i と表されるので、SVD の特殊な場合 3 / 35
  • 4.
    特異値分解 (SVD) SVD による次元削減 U,V の取り方によっては 𝜎1 ≥ 𝜎2 ≥ ⋯ ≥ 𝜎r > 0 とできるので、以下このよ うな順序を仮定 このとき Ak ∶= ∑k i=1 𝜎i 𝒖i t 𝒗i ∈ M(m, n) とすると、ある程度大きな k をとれば Ak ≃ A と近似できる (∵ Eckart-Young の定理、後述) Ak = Uk 𝛴kVk とすると、 Uk = (𝒖i) ∈ M(m, k), Vk = (𝒗i) ∈ M(k, n), 𝛴k = ⊕k i=1 𝜎i ∈ diag(k) Uk, Vk は U, V のうち第 1 列から第 k 列までを取り出した行列、 𝛴k は 特異値を (大きい順に)k 個並べた対角行列 A を記録するには O(mn) の空間が必要だが、Ak を記録するには O(mk) + O(nk) + O(k) = O(m + n)(∵k: const.) で可能 4 / 35
  • 5.
    特異値分解 (SVD) Example A =󰀷 𝒖1 𝒖2 ⋯ 𝒖k ⋯ 𝒖r 󰀸 ⎛ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ 𝜎1 𝜎2 ⋱ 𝜎k ⋱ 𝜎r ⎞ ⎟ ⎟ ⎟ ⎟ ⎟ ⎟ ⎠ ⎛ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ 𝒗1 𝒗2 ⋮ 𝒗k ⋮ 𝒗r ⎞ ⎟ ⎟ ⎟ ⎟ ⎟ ⎟ ⎠ ≃ 󰀷 𝒖1 𝒖2 ⋯ 𝒖r 𝒐 ⋯ 󰀸 ⎛ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ 𝜎1 𝜎2 ⋱ 𝜎k 𝒐 ⋱ ⎞ ⎟ ⎟ ⎟ ⎟ ⎟ ⎟ ⎠ ⎛ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ 𝒗1 𝒗2 ⋮ 𝒗k 𝒐 ⋮ ⎞ ⎟ ⎟ ⎟ ⎟ ⎟ ⎟ ⎠ 5 / 35
  • 6.
    特異値分解 (SVD) Eckart-Young の定理 ‖A− Ak‖Frobenius = √ r ∑ i=k+1 𝜎2 i Frobenius ノルムの定義は ‖A‖Frobenius ∶= √∑ a2 ij この定理により limk→r ‖A − Ak‖Frobenius = 0 なので limk→r Ak = A で あり、Ak は A の近似になっている 6 / 35
  • 7.
    Latent Semantic Analysis(LSA) LatentSemantic Analysis/Indexing(LSA/LSI) 文書集合を D = {di}、語集合を W = {wi}、トピック集合を T = {ti|i = 1, ⋯ , r} とし、A = (aij) を次のように定める。 aij ∶= 󰃠 positive (wi ∈ dj) 0 (wi ∉ dj) ここで A = U 𝛴t V と特異値分解すると、 𝜎i はトピック ti の重要度を表 す (r は A の一次独立な (トピックの異なる) 文書数) また U = (uij), V = (vij) とすると、aij = ∑ 𝜎kuikvkj となるので、uij は語 wi がトピック tj に属する度合いを、vij は文書 di がトピック tj に 属する度合いを表す (と解釈できる) A を近似した Ak は、重要な k 個のトピック t1, ⋯ , tk についてのみ考慮 した行列になる 7 / 35
  • 8.
    Latent Semantic Analysis(LSA) Problemsof LSA k の値 (トピック数) を予め ad-hoc に決定している (適切な k の選択法 がない) U, V の成分には負の値が現れうるが、負の値を意味付けできない 1 文書に 1 つのトピックしかないと仮定している Frobenius ノルム (‖A − Ak‖) の意味での最適化 (最小二乗法) は、誤差 が正規分布に従うことを仮定しているが、A の成分は頻度なので非負の 離散値であり、仮定を満たさない (ため、最小二乗法では最適化でき ない) ⇨ LSA は理論的根拠が不十分で、発展性に乏しい 8 / 35
  • 9.
    Probablistic LSA(pLSA) Probablistic LSA(pLSA) 文書d と語 w の結合確率を、トピック集合を Z として次のようにモデル化 (図 1(a))a p(d, w) = ∑ z∈Z p(d, w, z)(∵Z について周辺化) = p(d) ∑ z∈Z p(w, z|d) = p(d) ∑ z∈Z p(w|z, d)p(z|d) = p(d) ∑ z∈Z p(w|z)p(z|d)(∵d と w は条件付き独立) d と w は条件付き独立だと仮定 p(d) という謎の確率が存在 (文書 d が観測される確率?) a Hofmann による論文のうち、[4][5] より [6] が詳しい。 9 / 35
  • 10.
    Probablistic LSA(pLSA) Probablistic LSA(pLSA) pLSAは次のようにモデル化することも可能 (図 1(b))a p(d, w) = ∑ z∈Z p(d, w, z)(∵Z について周辺化) = ∑ z∈Z p(z)p(d, w|z) = ∑ z∈Z p(z)p(d|z)p(w|z)(∵d と w は条件付き独立) 実際に観測されている (学習データに含まれている)(d, w) の組につい て、p(d, w) を最大化したい ⇨ EM 法による最尤推定で最適化 a 先のページの式に Bayes の定理を用いても同じ結果になる 10 / 35
  • 11.
    Probablistic LSA(pLSA) Graphical model 文書d(∈ D) と語 w(∈ W) は、トピック z(∈ Z) を介して条件付き独立 文書数を M(= # D)、語数を N = # W とし、文書中の語ごとにトピック があると仮定 p(d, w) は非対称なモデル (a) でも対称なモデル (b) でも表現・実装可能 M (= #D) N (= #W) z wd (b) symmetric model M (= #D) N (= #W) z wd (a) asymmetric model Figure: Graphical model of pLSA 11 / 35
  • 12.
    Probablistic LSA(pLSA) LSA andpLSA P ∶= (p(di, wj)), U ∶= (p(di|zj)) ∈ M(# D, # Z), V ∶= (p(wi|zj)) ∈ M(# W, # Z), 𝛴 ∶= ⊕ p(zi) ∈ M(# Z, # Z) とおくと、P = U 𝛴t V 条件付き独立の仮定により、uij はトピック j から文書 i が現れる確率、 vij はトピック j から語 i が現れる確率となり、U, V の成分を明瞭に解 釈可能 (どの成分も確率なので、負の値も現れない) トピック Z から語 W が語毎に生成されるので、文書に複数のトピック が含まれることを許容 最尤推定を用いるので、最適化の根拠が明瞭 EM-algorithm は局所解に陥りうるが、tempering により緩和可能 EM-algorithm の反復に必要な計算量は、SVD に比べてさほど多くない 12 / 35
  • 13.
    Probablistic LSA(pLSA) EM-algorithm 母数 p(zk|di,wj), p(di), p(wj|zk), p(zk|dj) を最適化するため、逐次的に最尤推 定を行う [6][7] 1 p(zk|di, wj), p(di), p(wj|zk), p(zk|dj) を適当な値に初期化 2 E-step(expectation) p(zk|di, wj) を計算 3 M-step(maximization) p(di), p(wj|zk), p(zk|dj) を計算 4 E-step へ戻る 13 / 35
  • 14.
    Probablistic LSA(pLSA) E-step 観測されたデータ (di,wj) がトピック zk である確率を求める p(zk|di, wj) = p(zk, di, wj) p(di, wj) = p(wj|zk)p(zk|di)p(di) p(di) ∑z p(wj|z)p(z|di) = p(wj|zk)p(zk|di) ∑z p(wj|z)p(z|di) 母数 p(w|z), p(z|d) に現時点での値を代入すれば、すべての k について p(zk|di, wj) を求めることが可能 14 / 35
  • 15.
    Probablistic LSA(pLSA) M-step 観測データが現れる確率 (尤度)Lを最大化 (d での w の出現頻度を n(d, w)、 d の語数を n(d)(= ∑ n(d, w)) とする) log L ∶= log p((d1, w1), ⋯ , (dN , wn(dN))) = log ∏ i ∏ j p(di, wj)n(di,wj) = ∑ i ∑ j n(di, wj) log p(di, wj) = ∑ i ∑ j n(di, wj) log p(di) ∑ k p(wj|zk)p(zk|di) 対数尤度の期待値は、 Eq[log L] = ∑ i ∑ j n(di, wj) ∑ k p(zk|di, wj) log p(di)p(wj|zk)p(zk|di) = ∑ i ∑ j n(di, wj) ∑ k p(zk|di, wj)(log p(di) + log p(wj|zk) + log p(zk|d 15 / 35
  • 16.
    Probablistic LSA(pLSA) M-step (cont.) 制約条件∑i log p(di) = 1, ∑j log p(wj|zk) = 1, ∑k log p(zk|di) = 1 の下で Eq[log L] を最大化するので、 𝜆, 𝜏k, 𝜌i を Lagrange 乗数として、 H ∶= Eq[log L] + 𝜆(1 − ∑ i log p(di)) + ∑ k 𝜏k(1 − ∑ j log p(wj|zk)) + ∑ i 𝜌i(1 − ∑ k log p(zk|di)) これをそれぞれの母数で偏微分すると、H が最大となるとき、 𝜕 𝜕p(di) H = ∑ j n(di, wj) ∑ k p(zk|di, wj) p(di) − 𝜆 = 0 𝜕 𝜕p(wj|zk) H = ∑ i n(di, wj) p(zk|di, wj) p(wj|zk) − 𝜏k = 0 𝜕 H = n(d , w ) p(zk|di, wj) − 𝜌 = 0 16 / 35
  • 17.
    Probablistic LSA(pLSA) M-step (cont.) これらを解くと、 p(di)∝ ∑ j n(di, wj) ∑ k p(zk|di, wj) = ∑ j n(di, wj) = n(di) p(wj|zk) ∝ ∑ i n(di, wj)p(zk|di, wj), p(zk|di) ∝ ∑ j n(di, wj)p(zk|di, wj) 以上より、母数の更新式は、 p(di) = n(di) ∑i n(di) , p(wj|zk) = ∑i n(di, wj)p(zk|di, wj) ∑j ∑i n(di, wj)p(zk|di, wj) p(zk|di) = ∑j n(di, wj)p(zk|di, wj) ∑k ∑j n(di, wj)p(zk|di, wj) = ∑j n(di, wj)p(zk|di, wj) ∑j n(di, wj) ∑k p(zk|di, wj) = ∑j n(di, wj)p(zk|di, wj) ∑j n(di, wj) = ∑j n(di, wj)p(zk|di, wj) n(di) 17 / 35
  • 18.
    Probablistic LSA(pLSA) EM-algorithm (add-up) 母数p(zk|di, wj), p(di), p(wj|zk), p(zk|dj) を最適化 1 p(zk|di, wj), p(di), p(wj|zk), p(zk|dj) を適当な値に初期化 2 E-step(expectation) p(zk|di, wj) = p(wj|zk)p(zk|di) ∑z p(wj|z)p(z|di) 3 M-step(maximization) p(di) = n(di) ∑i n(di) , p(wj|zk) = ∑i n(di, wj)p(zk|di, wj) ∑j ∑i n(di, wj)p(zk|di, wj) p(zk|di) = ∑j n(di, wj)p(zk|di, wj) n(di) 4 E-step へ戻る 18 / 35
  • 19.
    Probablistic LSA(pLSA) Remark Hofmann[6] ではp(d) ∝ n(d) という近似を用い、p(d) を定数として 扱う Hofmann[4] では z → d, z → w のモデルを用い、 p(z|d, w), p(z), p(d|z), p(w|z) を母数として最適化。M-step の更新式は、 p(zk) = ∑i ∑j n(di, wj)p(zk|di, wj) ∑i n(di) p(wj|zk) = ∑i n(di, wj)p(zk|di, wj) ∑j ∑i n(di, wj)p(zk|di, wj) p(di|zk) = ∑j n(di, wj)p(zk|di, wj) ∑i ∑j n(di, wj)p(zk|di, wj) 簡明な実装例には [9] などがある 19 / 35
  • 20.
    Probablistic LSA(pLSA) Problems ofpLSA pLSA で最適化する母数 p(zk|di, wj), p(di), p(wj|zk), p(zk|dj) の個数は、 O(# D + # W# Z + # Z# D) = O(# D + # W)(∵# Z: const.) であり、訓練データの文書数 # D、語数 # W に対して線型に増加するた め、訓練データへの過適合 (overfit) が生じやすい pLSA では文書 d も観測データとして扱っているが、訓練データにない 文書 d に対する p(d) をどう割り当てるのか不明 20 / 35
  • 21.
    Latent Dirichlet Allocation(LDA) LatentDirichlet Allocation(LDA) 文書を語のベクトル 𝒘 として表したとき、文書の生成確率を次のようにモ デル化 [2] 1 文書の語数 N が選ばれる 2 その文書におけるトピックの混合比 𝜽 ∼ Dirichlet(𝜶) が選ばれる 3 個々の語 wn について、 1 トピック zn ∼ Multinomial(𝜽) が選ばれる 2 zn と行列 𝜷(𝛽ij ∶= p(wj|zi)) から wn が生成される p(𝒘|𝜶, 𝜷) = ∫ ∑ z p(𝜽, z, 𝒘|𝜶, 𝜷)d𝜽 = ∫ p(𝜽|𝜶) ∏ w ∑ z p(z|𝜽)p(w|z, 𝜷)d𝜽 21 / 35
  • 22.
    Latent Dirichlet Allocation(LDA) Graphicalmodel トピック数を K(= # Z)、文書数を M(= # D)、個々の文書の語数を N と し、文書中の語ごとにトピックがあると仮定 (モデル (a)) 学習の際は、 𝜽 と z が条件付き独立になるような分布 q が存在すると仮 定 (因子化仮定) したモデル (b) を用いる K (= #Z) M (= #D) N (= #W) zθ (b) variational distribution M (= #D) N (= #W) z wθ (a) LDA α β ϕγ η Figure: Graphical model of LDA 22 / 35
  • 23.
    Latent Dirichlet Allocation(LDA) Graphicalmodel 𝜶 は K 次元ベクトルで、一般的な各トピックの現れ易さを表す母数 𝜽 ∼ Dirichlet(𝜶) も K 次元ベクトルで、個々の文書における各トピック の現れ易さを表す母数 𝜷 ∈ M(K, # W) はトピック数×語彙数の行列で、i, j-成分はトピック i での語 j の現れ易さを表す母数 ⇨ 𝜶, 𝜷 を学習により最適化すれば、出現し易いトピックやトピック毎の頻 出語が分かる Dirichlet 分布 母数 𝜶 = (𝛼1, ⋯ , 𝛼k) の Dirichlet 分布に従う連続型確率変数 𝜽 = (𝜃1, ⋯ , 𝜃k) は、次の確率密度関数で表される p(𝜽; 𝜶) = 𝛤(∑i 𝛼i) ∏i 𝛤(𝛼i) ∏ i 𝜃 𝛼i−1 i 23 / 35
  • 24.
    Latent Dirichlet Allocation(LDA) VB-EM-algorithm p(w|𝜶,𝜷) を最大化する母数 𝜶, 𝛽ij, 𝜸, 𝜙ni を求める (変分 Bayes EM-algorithm) 1 𝜶, 𝛽ij, 𝜸, 𝜙ni を適当な値に初期化 2 E-step(expectation) 𝜸, 𝜙ni を計算 3 M-step(maximization) 𝜶, 𝛽ij を計算 4 E-step へ戻る 24 / 35
  • 25.
    Latent Dirichlet Allocation(LDA) VB-EM-algorithm logp(𝒘|𝜶, 𝜷) = log ∫ ∑ z p(𝜽, z, 𝒘|𝜶, 𝜷)d𝜽 = log ∫ ∑ z q(𝜽, z) p(𝜽, z, 𝒘|𝜶, 𝜷) q(𝜽, z) d𝜽 ≥ ∫ ∑ z q(𝜽, z) log p(𝜽, z, 𝒘|𝜶, 𝜷) q(𝜽, z) d𝜽(∵Jensen の不等式) = ∫ ∑ z q(𝜽, z) log p(𝜽, z, 𝒘|𝜶, 𝜷)d𝜽 − ∫ ∑ z q(𝜽, z) log q(𝜽, z = Eq[log p(𝜽, z, 𝒘|𝜶, 𝜷)] − Eq[log q(𝜽, z)] この下限を F(𝜸, 𝝓, 𝜶, 𝜷) とおき、最大化する 25 / 35
  • 26.
    Latent Dirichlet Allocation(LDA) VB-EM-algorithm F(𝜸,𝝓, 𝜶, 𝜷) = Eq[log p(𝜽, z, 𝒘|𝜶, 𝜷)] − Eq[log q(𝜽, z)] = Eq[log(p(𝒘|𝜽, z, 𝜶, 𝜷)p(𝜽, z|𝜶, 𝜷))] − Eq[log(q(𝜽)q(z))] (∵𝜽, z は条件付き独立) = Eq[log(p(𝒘|z, 𝜷)p(z|𝜽, 𝜶, 𝜷)p(𝜽|𝜶, 𝜷))] − Eq[log(q(𝜽)q(z))] (∵𝒘 と 𝜽, 𝜶 は条件付き独立) = Eq[log(p(𝒘|z, 𝜷)p(z|𝜽)p(𝜽|𝜶))] − Eq[log(q(𝜽)q(z))] (∵z と 𝜶, 𝜷、 𝜽 と 𝜷 は条件付き独立) = Eq[log p(𝜽|𝜶)] + Eq[log p(z|𝜽)] + Eq[log p(𝒘|z, 𝜷)] − Eq[log q(𝜽)] − Eq[log q(z)] 26 / 35
  • 27.
    Latent Dirichlet Allocation(LDA) VB-EM-algorithm 更にF を展開しa 、 𝛹(z) ∶= d dz log 𝛤(z)(= 𝛤′ (z) 𝛤(z) ) をディガンマ関数とし、 F(𝜸, 𝝓, 𝜶, 𝜷) = log 𝛤(∑ j 𝛼j) − ∑ i log 𝛤(𝛼i) + ∑ i (𝛼i − 1)(𝛹(𝛾i) − 𝛹(∑ j 𝛾j)) + ∑ n ∑ i 𝜙ni(𝛹(𝛾i) − 𝛹(∑ j 𝛾j)) + ∑ n ∑ i ∑ j 𝜙niw j n log 𝛽ij − log 𝛤(∑ j 𝛾j) + ∑ i log 𝛤(𝛾i) − ∑ i (𝛾i − 1)(𝛹(𝛾i) − 𝛹(∑ j 𝛾j)) − ∑ n ∑ i 𝜙ni log 𝜙ni (各行は前ページの式における各項に対応) a 途中の導出は [10][11] が詳しい。 27 / 35
  • 28.
    Latent Dirichlet Allocation(LDA) E-step 制約条件∑i 𝜙ni = 1 の下、F を最大化する 𝜙ni を求める H 𝜙 ∶= F(𝜸, 𝜙, 𝜶, 𝜷) + 𝜆n(∑ j 𝜙nj − 1) とおくと、H 𝜙 が最大となるとき、 𝜕 𝜕𝜙ni H 𝜙 = 𝜕 𝜕𝜙ni (𝜙ni(𝛹(𝛾i) − 𝛹(∑ j 𝛾j)) + 𝜙ni log 𝛽iv − 𝜙ni log 𝜙ni + 𝜆n 𝜙ni) = 𝛹(𝛾i) − 𝛹(∑ j 𝛾j)) + log 𝛽iv − log 𝜙ni + 𝜆n = 0 ∴𝜙ni ∝ 𝛽iv exp(𝛹(𝛾i) − 𝛹(∑ j 𝛾j)) 正規化すると、 𝜙ni = 𝛽iv exp(𝛹(𝛾i) − 𝛹(∑j 𝛾j)) 28 / 35
  • 29.
    Latent Dirichlet Allocation(LDA) E-step 次に、Fを最大化する 𝛾i を求めると、F が最大となるとき、 𝜕 𝜕𝛾i F = 𝜕 𝜕𝛾i (𝛹(𝛾i)(𝛼i + ∑ n 𝜙ni − 𝛾i) − 𝛹(∑ j 𝛾j) ∑ j (𝛼j + ∑ n 𝜙nj − 𝛾j) − log 𝛤(∑ = 𝛹′ (𝛾i)(𝛼i + ∑ n 𝜙ni − 𝛾i) − 𝛹′ (∑ j 𝛾j) ∑ j (𝛼j + ∑ n 𝜙nj − 𝛾j) = 0 ∴𝛾i = 𝛼i + ∑ n 𝜙ni 29 / 35
  • 30.
    Latent Dirichlet Allocation(LDA) M-step E-stepでは文書という単位を考えずに 𝜙ni, 𝛾i の更新式を導いたが、 M-step では、すべての文書 𝒘1, ⋯ , 𝒘M について考える 以下、F ∶= ∑d F として、母数 𝛽ij, 𝛼i の更新式を求める 𝜙ni, 𝛾i と w j n は文書によって変わるので、以下 𝜙dni, 𝛾di, w j dn と表す 30 / 35
  • 31.
    Latent Dirichlet Allocation(LDA) M-step 次に、制約条件∑j 𝛽ij = 1 の下、F を最大化する 𝛽ij を求める H 𝛽 ∶= F(𝜸, 𝝓, 𝜶, 𝜷) + 𝜆i(∑ j 𝛽ij − 1) とおくと、H 𝛽 が最大となるとき、 𝜕 𝜕𝛽ij H 𝛽 = 𝜕 𝜕𝛽ij ∑d ∑n 𝜙dniw j dn 𝛽ij + 𝜆i = 0 ∴𝛽ij ∝ ∑ d ∑ n 𝜙dniw j dn 正規化すると、 𝛽ij = ∑d ∑n 𝜙dniw j dn ∑l ∑d ∑n 𝜙dniwl dn 31 / 35
  • 32.
    Latent Dirichlet Allocation(LDA) M-step 次に、Fを最大化する 𝛼i を求めると、 𝜕 𝜕𝛼i F = 𝜕 𝜕𝛼i (∑ d (log 𝛤(∑ j 𝛼j) − log 𝛤(𝛼i) + (𝛼i − 1)(𝛹(𝛾di) − 𝛹(∑ j 𝛾dj)))) = M(𝛹(∑ j 𝛼j) − 𝛹(𝛼i)) + ∑ d (𝛹(𝛾di) − 𝛹(∑ j 𝛾dj)) このままでは 𝜕 𝜕𝛼i F = 0 としても 𝛼i の更新式を求められないので、 Newton-Raphson 法などにより逐次更新し、 𝜶 の不動点を求める Newton-Raphson 法 𝜶 の Hesse 行列を H(𝜶)(∶= ( 𝜕2 F 𝜕𝛼i 𝜕𝛼j )) としたとき、次の更新式で 𝜶 を反復的 に更新 𝜶 ∶= 𝜶 − H(𝜶)−1 ∇𝜶 32 / 35
  • 33.
    Latent Dirichlet Allocation(LDA) VB-EM-algorithm(add-up) p(w|𝜶, 𝜷) を最大化する母数 𝜶, 𝛽ij, 𝜸, 𝜙ni を求める 1 𝜶, 𝛽ij, 𝜸, 𝜙ni を適当な値に初期化 2 E-step(expectation) 𝜙ni = 𝛽iv exp(𝛹(𝛾i) − 𝛹(∑j 𝛾j)) ∑l 𝛽lv exp(𝛹(𝛾l) − 𝛹(∑j 𝛾j)) , 𝛾i = 𝛼i + ∑ n 𝜙ni 3 M-step(maximization) 𝛽ij = ∑d ∑n 𝜙dniw j dn ∑l ∑d ∑n 𝜙dniwl dn , 𝜶 = 𝜶 − H(𝜶)−1 ∇𝜶 4 E-step へ戻る 33 / 35
  • 34.
    Latent Dirichlet Allocation(LDA) Remark 求めた𝜶, 𝜷 は次のような意味を持つ 𝛼i は、トピック i の現れ易さを表す 𝛽ij は、トピック i での語 j の現れ易さを表す 簡明な実装例には [8] などがある 学習していない文書に対しては、学習した 𝜶, 𝜷 を用いて 𝝓, 𝜸 を再計算 することで、文書の語のトピックを算出可能 34 / 35
  • 35.
    Latent Dirichlet Allocation(LDA) Gibbssampling 実際にサンプリングを繰り返して最適な z を求める手法 [3] VB-EM より更新式の導出が簡単で高性能だが、VB-EM より若干遅い 最初に、一般にどのトピックも平等に現れうる、つまり 𝜶 のすべての成 分は等しい (𝛼i = 1 K ) と仮定する 更新式の導出の詳細は [13] を参照 35 / 35
  • 36.
    EM-algorithm EM-algorithm パラメータ 𝜽 と潜在変数z をもつデータについて、観測されたデータ D が 現れる確率 L(𝜽) が最大になるよう最適化する手法 [12][1] L(𝜽) ∶= p(D|𝜽) = ∫ p(D, z|𝜽)dz 尤度関数 L(𝜽) を最大化するため、対数尤度を考え、任意の分布 q(z|D) を導 入する log L(𝜽) = log ∫ p(D, z|𝜽)dz = log ∫ q(z|D) p(D, z|𝜽) q(z|D) dz ≥ ∫ q(z|D) log p(D, z|𝜽) q(z|D) dz(∵Jensen の不等式) この下限を F(q, 𝜽) とおくと、log L(𝜽) は常に F より大きくなるので、F を 最大化して L を底上げすればよい 36 / 35
  • 37.
    EM-algorithm E-step F を qについて最大化 F(q, 𝜽) = ∫ q(z|D) log p(D, z|𝜽) q(z|D) dz = ∫ q(z|D) log p(z|D, 𝜽)p(D|𝜽) q(z|D) dz = ∫ q(z|D)(log p(D|𝜽) + log p(z|D, 𝜽) q(z|D) )dz = ∫ q(z|D)(log p(D|𝜽) − log q(z|D) p(z|D, 𝜽) )dz = ∫ q(z|D) log p(D|𝜽)dz − ∫ q(z|D) log q(z|D) p(z|D, 𝜽) dz = log p(D|𝜽) ∫ q(z|D)dz − D(q(z|D)||p(z|D, 𝜽)) = log p(D|𝜽) − D(q(z|D)||p(z|D, 𝜽)) KL-divergence D(q||p) は q = p のとき最小となるので、q(z|D) = p(z|D, 𝜽) のとき F は最大 37 / 35
  • 38.
    EM-algorithm M-step F を 𝜽について最大化 F(q, 𝜽) = ∫ q(z|D) log p(D, z|𝜽) q(z|D) dz = ∫ q(z|D)(log p(D, z|𝜽) − log q(z|D))dz = ∫ q(z|D) log p(D, z|𝜽)dz − ∫ q(z|D) log q(z|D)dz = E[log p(D, z|𝜽)] − H(q(z|D)) 第 2 項 (q のエントロピー) は 𝜽 に依らないので、E[log p] を 𝜽 について最 大化 38 / 35
  • 39.
    Reference I David Andrzejewski.Expectation Maximization. url: http://pages.cs.wisc.edu/~andrzeje/research/em.pdf. David M. Blei, Andrew Y. Ng, and Michael I. Jordan. “Latent Dirichlet Allocation”. In: J. Mach. Learn. Res. 3 (2003), pp. 993–1022. url: http://jmlr.org/papers/v3/blei03a.html. Thomas L. Griffiths and Mark Steyvers. “Finding scientific topics”. In: Proceedings of the National Academy of Sciences 101 (2004), pp. 5228–5235. doi: 10.1073/pnas.0307752101. Thomas Hofmann. “Probabilistic Latent Semantic Analysis”. In: Proceedings of the Fifteenth Conference on Uncertainty in Artificial Intelligence. 1999, pp. 289–296. Thomas Hofmann. “Probabilistic Latent Semantic Indexing”. In: Proceedings of the 22Nd Annual International ACM SIGIR Conference on Research and Development in Information Retrieval. 1999. doi: 10.1145/312624.312649. Thomas Hofmann. “Unsupervised Learning by Probabilistic Latent Semantic Analysis”. In: Machine Learning 42 (), pp. 177–196. doi: 10.1023/A:1007617005950. Liangjie Hong. A Tutorial on Probabilistic Latent Semantic Analysis. 2012. url: http://arxiv.org/abs/1212.3900. 39 / 35
  • 40.
    Reference II Makoto Sato.satomacoto: Python で LDA を実装してみる. 2009. url: http://satomacoto.blogspot.jp/2009/12/pythonlda.html. Makoto Sato. satomacoto: Python で PLSA を実装してみる. 2009. url: http://satomacoto.blogspot.jp/2009/10/pythonplsa.html. 正田 備也. LDA における変分ベイズ法によるパラメータ推定 (1). url: http://www.iris.dti.ne.jp/~tmasada/2006081101.pdf. 正田 備也. LDA における変分ベイズ法によるパラメータ推定 (2). url: http://www.iris.dti.ne.jp/~tmasada/2006081701.pdf. 持橋 大地. 統計数理研究所公開講座「確率的トピックモデル」. url: http://www.ism.ac.jp/~daichi/lectures/H24-TopicModels.html. 手塚 太郎. LDA(Latent Dirichlet Allocation) の更新式の導出. url: http://yattemiyou.net/docs/lda_gibbs.pdf. 40 / 35