第5章時系列データのモデリング補助情報を考慮したモデリング
第 7回「トピックモデルによる統計的潜在意味解析」読書会
@ksmzn
会場:株式会社ALBERT西新宿
December 17, 2015
@ksmzn 第 5 章時系列データのモデリング補助情報を考慮したモデリング December 17, 2015 1 / 39
自己紹介
Koshi @ksmznデータ分析のお仕事をしています。リサンプリング法を研究してました最近は Python
@ksmzn 第 5 章時系列データのモデリング補助情報を考慮したモデリング December 17, 2015 2 / 39
目次
1 5.3.1モデリング
2 5.3.2カルマンフィルタの基礎
3 5.3.3学習アルゴリズム
4 DTMおまけ
5 5.4補助情報を考慮したモデリング
6 References
@ksmzn 第 5 章時系列データのモデリング補助情報を考慮したモデリング December 17, 2015 4 / 39
目次
1 5.3.1モデリング
2 5.3.2カルマンフィルタの基礎
3 5.3.3学習アルゴリズム
4 DTMおまけ
5 5.4補助情報を考慮したモデリング
6 References
@ksmzn 第 5 章時系列データのモデリング補助情報を考慮したモデリング December 17, 2015 5 / 39
モデリング
モデリングに必要な要件▶ 対象にどのような性質があるのか
▶ 時系列的にトピックが変化する▶ 時間的に近接する文書集合は類似したトピックを共有する
▶ データからどのような情報を抽出したいのか▶ 各トピックの単語出現確率 ϕkがどのように変化したか
例:▶ ニュース記事で考える▶ 十年前の政治トピックと今年の政治トピックがどのように変化したか
@ksmzn 第 5 章時系列データのモデリング補助情報を考慮したモデリング December 17, 2015 6 / 39
DTMとは
▶ Dynamic Topic Model (Bleiら [2008])▶ LDAに状態空間モデルを組み合わせたモデル▶ 各時刻におけるトピック kの単語分布 ϕ(1:T )
k を考える
ϕ(1:T )k =
(ϕ(1)
k , ϕ(2)k , . . . , ϕ
(T )k
)▶ 時刻 tと t − 1の間にはそれぞれ依存関係を仮定▶ トピックとしてµ(t)
k ∼ N(µ(t−1)
k , σ2I)を生成し、
確率化して ϕ(t)k とする
@ksmzn 第 5 章時系列データのモデリング補助情報を考慮したモデリング December 17, 2015 7 / 39
目次
1 5.3.1モデリング
2 5.3.2カルマンフィルタの基礎
3 5.3.3学習アルゴリズム
4 DTMおまけ
5 5.4補助情報を考慮したモデリング
6 References
@ksmzn 第 5 章時系列データのモデリング補助情報を考慮したモデリング December 17, 2015 9 / 39
この章でやってること
▶ 状態空間モデルにおいて、全ての条件付き分布が、対角行列を分散に持つ正規分布であることの証明
▶ 事前分布と事後分布間のKL情報量の計算▶ 事後分布の情報エントロピーの計算
@ksmzn 第 5 章時系列データのモデリング補助情報を考慮したモデリング December 17, 2015 10 / 39
状態空間モデルのグラフィカルモデル
y(t) ∼ N(x(t), ρ2I
), x(t) ∼ N
(x(t−1), σ2I
)隠れ状態の推定値として、x̂(t)を考える
@ksmzn 第 5 章時系列データのモデリング補助情報を考慮したモデリング December 17, 2015 11 / 39
事後確率の期待値を求める
▶ 観測 y(1:T )が与えられた下で条件付き平均二乗誤差を最小にする x̂(t)は、本書 (5.44)式より
x̂(t) = E[x(t)|y(1:T )]
▶ つまり、観測 y(1:T )が与えられた下で、隠れ状態 x(t)の事後確率 p
(x(t)|y(1:T )
)を推定し、
その期待値を求めればよい
@ksmzn 第 5 章時系列データのモデリング補助情報を考慮したモデリング December 17, 2015 12 / 39
事後確率を変形してみる
ベイズの定理と条件付き独立性を用いると、p189-190により、(途中式略)
p(x(t)|y(1:T )
)=
∫ p(x(t+1)|x(t), σ2
)p(x(t+1)|y(1:t), σ2, ρ2) × p
(x(t)|y(1:t), σ2, ρ2
)× p(x(t+1)|y(1:T ), σ2, ρ2
)dx(t+1)
▶ p(x(t)|y(1:t), σ2, ρ2
)を考える
@ksmzn 第 5 章時系列データのモデリング補助情報を考慮したモデリング December 17, 2015 13 / 39
事後確率を変形してみる
ベイズの定理と条件付き独立性、正規分布の対称性を用いると、
p(x(t)|y(1:t), σ2, ρ2
)∝ N(x(t)|y(t), ρ2
)p(x(t)|y(1:t−1), σ2, ρ2
)となるので、
「p(x(t)|y(1:t−1), σ2, ρ2
)が正規分布ならば、
p(x(t)|y(1:t), σ2, ρ2
)も正規分布となる」
@ksmzn 第 5 章時系列データのモデリング補助情報を考慮したモデリング December 17, 2015 14 / 39
事後確率を変形してみるさらに、
p(x(t+1)|y(1:t), σ2, ρ2
)=
∫p(x(t+1)|x(t), σ2
)p(x(t)|y(1:t), σ2, ρ2
)dx(t)
なので、
「p(x(t)|y(1:t), σ2, ρ2
)が正規分布ならば、
p(x(t+1)|y(1:t), σ2, ρ2
)も正規分布となる」
こともわかる!@ksmzn 第 5 章時系列データのモデリング補助情報を考慮したモデリング December 17, 2015 15 / 39
事後確率を変形してみる
つまり、
「p(x(t)|y(1:t−1), σ2, ρ2
)が正規分布ならば、
p(x(t)|y(1:t), σ2, ρ2
)も正規分布であり、
p(x(t+1)|y(1:t), σ2, ρ2
)も正規分布となる」
したがって、p(x(1)|y(0)
)を正規分布と仮定すれば、
再帰的に p(x(t)|y(1:t−1)
)も正規分布となり、
全ての条件付き分布が正規分布となる。よって、p
(x(t)|y(1:t)
)は正規分布となる
@ksmzn 第 5 章時系列データのモデリング補助情報を考慮したモデリング December 17, 2015 16 / 39
事後確率を変形してみる
式 (5.46)に戻ると、
p(x(t)|y(1:T )
)=
∫ p(x(t+1)|x(t), σ2
)p(x(t+1)|y(1:t), σ2, ρ2) × p
(x(t)|y(1:t), σ2, ρ2
)× p(x(t+1)|y(1:T ), σ2, ρ2
)dx(t+1)
において、式 (5.54)より
p(x(t+1)|y(1:t), σ2, ρ2
)も正規分布である。
@ksmzn 第 5 章時系列データのモデリング補助情報を考慮したモデリング December 17, 2015 17 / 39
事後確率を変形してみる
先ほどの式は tが減る向きに再帰的構造をしているため、p
(x(T )|y(1:T ), σ2, ρ2
)が正規分布であることから、
p(x(t)|y(1:T ), σ2, ρ2
)も正規分布である。
@ksmzn 第 5 章時系列データのモデリング補助情報を考慮したモデリング December 17, 2015 18 / 39
事後確率の期待値を求める
欲しい値は、p(x(t)|y(1:T ), σ2, ρ2
)の期待値である。
p191, p195より、p(x(t)|y(1:t), σ2, ρ2
)と
p(x(t)|y(1:T ), σ2, ρ2
)は分散が対角行列であるため、
p(x(t)|y(1:t), σ2, ρ2
)= N(x(t)|m(t), ν(t)2I
)p(x(t)|y(1:T ), σ2, ρ2
)= N(x(t)|m̃(t), ν̃(t)2I
)とおける。計算すると m̃(t)はm(t)と m̃(t+1) の式で表せるため、再帰的に求まる。
@ksmzn 第 5 章時系列データのモデリング補助情報を考慮したモデリング December 17, 2015 19 / 39
目次
1 5.3.1モデリング
2 5.3.2カルマンフィルタの基礎
3 5.3.3学習アルゴリズム
4 DTMおまけ
5 5.4補助情報を考慮したモデリング
6 References
@ksmzn 第 5 章時系列データのモデリング補助情報を考慮したモデリング December 17, 2015 20 / 39
LDA+状態空間モデル
▶ 各時刻におけるトピック kの単語分布 ϕ(1:T )k
ϕ(t)k,v =
exp(µk,v
(t))
∑Vv′=1 exp
(µ(t)
k,v′
) , µ(t)k ∼ N
(µ(t−1)
k , σ2I)
▶ 単語、トピック、トピック分布はそれぞれ、
w(t)d,i ∼ Multi
(ϕ(t)
d
), z(t)
d,i ∼ Multi(θ(t)
d
), θ(t)
d ∼ Dir(α(t))
@ksmzn 第 5 章時系列データのモデリング補助情報を考慮したモデリング December 17, 2015 22 / 39
変分ベイズ法おさらい
おさらい目的
▶ KL[q (z, θ,ϕ) || p (z, θ,ϕ | w,α,β)]を最小にするq (z, θ,ϕ)を求める.
手法▶ 対数周辺尤度 log p (w | α,β)の変分下限
F[q (z, θ,ϕ)]を求め、それを最大にする q (z, θ,ϕ)を変分法により求める.
▶ q (z, θ,ϕ)に対して因子分解仮定をおき, q (z), q (θ),q (ϕ)を順に繰り返し更新する.
@ksmzn 第 5 章時系列データのモデリング補助情報を考慮したモデリング December 17, 2015 23 / 39
DTMの近似事後分布
このとき、近似事後分布は以下のように仮定する
q(µ(1:T ), θ(1:T ), z(1:T )
)=
K∏k=1
q(µ(1:T )
k
) T∏t=1
M(t)∏d=1
q(θ(t)
d
)q(z(t)
d
)▶ μの時系列関係は壊さない仮定をする▶ こういうモデリングなので、こういう仮定をする、ということを学べるのがこの章の最大のポイント(な気がする)
@ksmzn 第 5 章時系列データのモデリング補助情報を考慮したモデリング December 17, 2015 24 / 39
q(µ(1:T )
k
)の導出
▶ 仮想的な観測 µ̂(1:T )k をパラメータとする。
▶ この値の大小が現実の現象の何を表す…とかはわからない。ただの仮想的なパラメータ?
▶ µ̂(1:T )k をうまく選んで、変分下限を最大にする
@ksmzn 第 5 章時系列データのモデリング補助情報を考慮したモデリング December 17, 2015 25 / 39
q(µ(1:T )
k
)の導出
µ̂(1:T )k の導入により、q
(µ(t)
k
)は以下のようになる
q(µ(t)
k |µ̂(1:T )k
)= N(µ(t)
k |m̃(t)k , ν̃
(t)2k I)
よって、µ̂(1:T )k の値が推定できればよい
@ksmzn 第 5 章時系列データのモデリング補助情報を考慮したモデリング December 17, 2015 26 / 39
変分下限の導出
p207-208より、変分下限は
logp(w(1:T )
)≥ F̃[q(µ(1:T )
)]+(q(θ(t)
d
)q(z(t)
d
)に関係する項
)≥ L̃[q(µ(1:T )
)]+(q(θ(t)
d
)q(z(t)
d
)に関係する項
)となるので、(具体的な式は本書を参照)この L̃
[q(µ(1:T )
)]を最大にする q
(µ(t)
k |µ̂(1:T )k
)を求める。
q(θ(t)
d
), q(z(t)
d
)に関しては解析的に求まる。
@ksmzn 第 5 章時系列データのモデリング補助情報を考慮したモデリング December 17, 2015 27 / 39
目次
1 5.3.1モデリング
2 5.3.2カルマンフィルタの基礎
3 5.3.3学習アルゴリズム
4 DTMおまけ
5 5.4補助情報を考慮したモデリング
6 References
@ksmzn 第 5 章時系列データのモデリング補助情報を考慮したモデリング December 17, 2015 28 / 39
DTMで何ができるかScienceの解析
▶ 1881~1999年の 120年間 15955単語▶ 20トピックの時系列変化を考える▶ トピック「ニューロサイエンス」の単語変化
@ksmzn 第 5 章時系列データのモデリング補助情報を考慮したモデリング December 17, 2015 29 / 39
その他ブログ記事など
「太宰治の文学の変化をTopic Modelで分析する」
▶ 太宰治の私生活の変化と、トピックの時系列変化が連動しているかどうか
▶ コード公開されず?「トピックモデルを用いてWeb小説のジャンル・流行を分析しよう」
▶ 各ジャンルの流行り廃りをトピック変化から推察▶ 「異世界転生モノ」が人気急上昇らしい
@ksmzn 第 5 章時系列データのモデリング補助情報を考慮したモデリング December 17, 2015 30 / 39
DTMのライブラリなど▶ Rでは見当たらなかった。▶ gensimhttps:
//radimrehurek.com/gensim/models/dtmmodel.html
▶ Sean M GerrishによるC++実装もあるhttps://code.google.com/p/
princeton-statistical-learning/downloads/detail?
name=dtm_release-0.8.tgz
▶ berobero11さんによるStanコード例http:
//heartruptcy.blog.fc2.com/blog-entry-138.html
@ksmzn 第 5 章時系列データのモデリング補助情報を考慮したモデリング December 17, 2015 31 / 39
目次
1 5.3.1モデリング
2 5.3.2カルマンフィルタの基礎
3 5.3.3学習アルゴリズム
4 DTMおまけ
5 5.4補助情報を考慮したモデリング
6 References
@ksmzn 第 5 章時系列データのモデリング補助情報を考慮したモデリング December 17, 2015 32 / 39
補助情報を考慮したモデリング
補助情報とは▶ 分析対象に付加されたさまざまな情報▶ 論文の場合には、著者情報・参照している文献など
▶ 購入履歴の場合には、ユーザー属性など▶ こういった情報もトピック推定に役立てたい!モデリング要件
1. 文書ごとに付加された補助情報をトピック推定に用いる
2. 補助情報とトピックの関係も明示的に抽出する
@ksmzn 第 5 章時系列データのモデリング補助情報を考慮したモデリング December 17, 2015 33 / 39
補助情報をLDAに組み込む文書-トピック分布θdに補助情報を
▶ θd ∼ Dir (α)に補助情報を入れる▶ αが補助情報によって、文書ごとに変化すればよい
補助情報▶ 補助情報を xd =
(xd,1, xd,2, . . . , xd,C
)とする▶ 著者名を補助情報とすると、Cは文書全体の著者数
▶ 文書 dに著者 aの名前がある場合は、xd = 1,ない場合は xd = 0
▶ xdを用いてαkが文書ごとに変化するようにモデリング
@ksmzn 第 5 章時系列データのモデリング補助情報を考慮したモデリング December 17, 2015 34 / 39
補助情報をLDAに組み込むMimnoらの方法
▶ 「αkが xdの関数」とする▶ 線形回帰モデル f (xd) = λT
k xd
▶ λkの要素から、トピックに寄与する情報の重要度がわかる
▶ Dirichlet分布のパラメータなので、αk = exp
(λT
k xd
)とする
Dirichlet多項回帰モデルλk ∼ N
(0, σ2I
)θd ∼ Dir
(exp(λT
1 xd
), exp
(λT
2 xd
), . . . , exp
(λT
k xd
))@ksmzn 第 5 章時系列データのモデリング補助情報を考慮したモデリング December 17, 2015 35 / 39
学習アルゴリズム
▶ 周辺化ギブスサンプリングを用いて、zd,iをサンプリング
▶ 基本的にはαkを exp(λT
k xd
)に置き換えればよい
▶ zが与えられた上で、勾配法を用いて λの対数尤度を最大化する
@ksmzn 第 5 章時系列データのモデリング補助情報を考慮したモデリング December 17, 2015 36 / 39
References
[1] 佐藤一誠 (2015)『トピックモデルによる統計的潜在意味解析』 (自然言語処理シリーズ)コロナ社
[2] Blei, D.M. and Lafferty, J.D. (2006) Dynamic Topic Models. Proceedings of the 23rdinternational Conference on Machine Learning. 113-120.
[3] Mimno, D.M. and McCallum, A. (2008) Topic Models Conditioned on Arbitrary Features withDirichlet-multinomial Regression. in UAI. 411-418.
[4] 太宰治の文学の変化を Topic Model で分析する - NAOKI ORII’S BLOGhttp://mrorii.github.io/blog/2013/12/27/
analyzing-dazai-osamu-literature-using-topic-models/
[5] トピックモデルを用いて Web 小説のジャンル・流行を分析しよう - #kichi-memohttp://seikichi.hatenablog.com/entry/2013/04/29/013608
@ksmzn 第 5 章時系列データのモデリング補助情報を考慮したモデリング December 17, 2015 38 / 39