『トピックモデルによる統計的潜在意味解析』読書会
3.7  評価⽅方法 〜~ 3.9 モデル選択
@hoxo_m
2016/01/28
1
⾃自⼰己紹介
•     hoxo_m
•  所属:匿匿名知的集団ホクソエム
本⽇日の内容
•  3.7  評価⽅方法
– 3.7.1 Perplexity
– 3.7.2  アルゴリズム別 Perplexity の計算⽅方法
– 3.7.3 新規⽂文書における Perplexity
– 3.7.4 Coherence
•  3.8 各種学習アルゴリズムの⽐比較
•  3.9 モデル選択
3
3.7  評価⽅方法
•  トピックモデルの評価指標として
Perplexity  と  Coherence  の 2 つが広く
使われている。
•  Perplexity:予測性能
•  Coherence:トピックの品質
•  拡張モデルに対しては⽬目的に応じた評価
指標が使われる
4
Perplexity とは
•  辞書で引くと・・
– the feeling of being confused or worried by
something you cannot understand
(理理解できないものにより困惑する感覚)
5
http://www.ldoceonline.com/dictionary/perplexity
⇨  ⽇日本語で考えるのはやめよう
Perplexity とは
•  ①〜~⑤の⽬目が出るスロットマシン
•  予測モデル M を作成
•  次に出たスロットの⽬目  n
•  P(n | M) が⾼高いほど良良い予測モデル
•  予測モデルに従って正解を当てるための
困難さ  = Perplexity
6
Perplexity とは
•  予測モデルがない場合
①1/5  ②1/5  ③1/5  ④1/5  ⑤1/5
•  それぞれの⽬目が出る確率率率は等しい
•  P(n) = 1/5
•  選択肢は  5  つ( = 1/P(n) )
•  5 つの中から 1 つを選ぶという困難さ
7
Perplexity とは
•  予測モデル M  がある場合
①1/2  ②1/8  ③1/8  ④1/8  ⑤1/8
•  実際に出た⽬目が①だった  ⇨ P(①|M) = 1/2
•  ①が出る確率率率とその他が出る確率率率は等しい
•  ①を選ぶかその他を選ぶか、選択肢が 2 つ
あったのと同じ
( = 2  つから  1  つを選ぶ困難さ)
8
Perplexity とは
•  予測モデル M  がある場合
①1/2  ②1/8  ③1/8  ④1/8  ⑤1/8
•  実際に出た⽬目が②だった  ⇨ P(②|M) = 1/8
•  正解するには他の選択肢の誘惑をすべて
振り切切る必要があった
•  誘惑度度:①4 ②1 ③1 ④1 ⑤1
•  選択肢が 8 つあったのと同じ困難さ
9
Perplexity とは
•  Perplexity は、予測モデルに従って正解
を当てるためのある種の困難性である
•  Perplexity が低いほど、困難性は⼩小さい
•  Perplexity は、予測モデルにおける予測
確率率率の逆数である PPL = 1 / P(n | M)
•  選択肢が  PPL  個あったのと同じ困難さ
10
Perplexity  とは
•  予測モデルに反して②ばかり出ると、
Perplexity  は予測なしより悪くなる
•  予測モデルに従って  ①①①①②③④⑤  と
出た場合
•  Perplexity  の平均値は 5 (予測なしと同じ)
(2+2+2+2+8+8+8+8)/8 = 5
•  この場合、幾何平均(相乗平均)を取るべき
(2*2*2*2*8*8*8*8)^(1/8) = 4
11
3.7.1 Perplexity
•  トピックモデルの Perplexity
•  モデル  M のもとで単語 w が得られる確率率率
の逆数
•  PPL[w|M] = 1 / p(w | M)
•  テストデータ中の全ての単語に対してこ
れを計算し、幾何平均(相乗平均)を取る
12
13
⇦ 相乗平均
⇦  対数尤度度
Perplexity の計算
•  LDA において、単語の出現確率率率 p(w|M)
は、各トピックにおいて w が出現する  
確率率率の積分
•  Φk,w : トピック k における単語 w の出現確率率率
•  θd,k : ⽂文書 d におけるトピック k の出現確率率率
14
3.7.2 Perplexity の計算⽅方法
•  学習アルゴリズムによっては、Φk や  θd が
求まらない(ベイズなので分布している)
①  ギブスサンプリング
②  周辺化ギブスサンプリング
③  変分ベイズ
④  周辺化変分ベイズ
•  各種アルゴリズムにおける Perplexity の
計算⽅方法を⽰示す
15
① ギブスサンプリング
•  求まるのは  Φk および  θd のサンプル
•  サンプル全体の平均確率率率を出す
•  S  :  サンプリング数
16
②  周辺化ギブスサンプリング
•  求まるのは単語に割り当てられたトピック  z  の
サンプル
•  ただし、nk,w および  nd,k も同時にサンプリング
されるので、これを使えば近似的に  Φk および  
θd が求まる
17
※事前分布の情報を⼊入れよう!
③ 変分ベイズ
•  求まるのは  p(Φ,  θ)  の近似事後分布  
q(Φ)q(θ)
18
④ 周辺化変分ベイズ
•  求まるのは  p(z)  の近似事後分布 q(z)
•  同じ戦略略を取ると・・・
19
④ 周辺化変分ベイズ
•  この式は解析的には求まらない・・・
⇨ q(z)  からサンプリングして近似計算?
•  細かいことは気にせず、変分ベイズとき
の式をそのまま使う!
20
学習データとテストデータの分割
•  モデルは学習データで学習し、Perplexity  
はテストデータで計算する
•  ⽂文書に対するトピックの出現率率率  θd を学習
するために、ひとつひとつの⽂文書を学習
データとテストデータに分割する
21
w11, w12, w13, ...
wi1, wi2, wi3, …
d1
di
・・・
w1_test1, …
wi_test1, …
3.7.3 新規⽂文書における Perplexity
•  新規⽂文書に対しても、学習⽤用とテスト⽤用
に分ける
22
w11, w12, w13, ...
wi1, wi2, wi3, …
d1
di
・・・
wj1, wj2, wj3, …dj wj_test1, …
・・・
学
習
⽤用
テスト⽤用
3.7.4 Coherence
•  Coherence:  抽出されたトピックの品質
•  意味の近い単語が集まっているトピック
をより多く抽出できる⼿手法が良良いモデル
•  詳しくは LT で!
23
本⽇日の内容
•  3.7  評価⽅方法
– 3.7.1 Perplexity
– 3.7.2  アルゴリズム別 Perplexity の計算⽅方法
– 3.7.3 新規⽂文書における Perplexity
– 3.7.4 Coherence
•  3.8 各種学習アルゴリズムの⽐比較
•  3.9 モデル選択
24
3.8 各種アルゴリズムの⽐比較
学習アルゴリズム GS CGS VB CVB0
1反復復当りの計算
コスト
◯ ◉ ✖ ◯
学習に必要な反復復
回数
厳密には多い 厳密には多い 少ない 少ない
学習の収束判定 ✖ ✖ ◉ ◯
メモリコスト ◯ △ ◉ ✖
予測分布の計算コ
スト
✖ ✖ ◉ ◉
予測性能
(Perplexity)
◯ ◉ ✖ ◉
学習の並列列性 容易易に可 厳密には不不可 容易易に可 厳密には不不可
適⽤用可能性 ◉ △ ◯ △
25
本⽇日の内容
•  3.7  評価⽅方法
– 3.7.1 Perplexity
– 3.7.2  アルゴリズム別 Perplexity の計算⽅方法
– 3.7.3 新規⽂文書における Perplexity
– 3.7.4 Coherence
•  3.8 各種学習アルゴリズムの⽐比較
•  3.9 モデル選択
26
3.9  モデル選択
•  LDA におけるトピック数の決定法
1.  データを学習⽤用、テスト⽤用に分ける
2.  特定のトピック数を⽤用いて LDA を学習し、
テストデータで  Perplexity を求める
3.  LDA 学習時に必要な初期値を変えて学習を
繰り返し、Perplexity の平均を求める
4.  トピック数で⽐比較し、最も良良いものを選ぶ
27
3.9  モデル選択
•  変分ベイズ法の場合、変分下限がモデル
選択の基準になる
1.  特定のトピック数に対して  LDA  を学習し、
変分下限の値を求める
2.  初期値を変えて学習を繰り返し、変分下限の
値の平均を求める
3.  トピック数で⽐比較し、最も良良いものを選ぶ
•  変分下限は学習データのみから求められ
るため、テストデータは必要無い
28
3.9  モデル選択
•  Perplexity の値は結構ばらつくので平均
値を求めているのかなぁと思いました。
•  参照:
LDA のパープレキシティを使うとき
29
まとめ
•  主要な  LDA  ライブラリは Perplexity を
計算してくれるので安⼼心してください!
•  gensim: log_perplexity()
•  scikit-learn: perplexity()
•  MLlib: logPerplexity()
30

トピックモデルによる統計的潜在意味解析読書会 3.7 評価方法 - 3.9 モデル選択 #トピ本