More Related Content
Similar to 第二回機械学習アルゴリズム実装会 - LDA
Similar to 第二回機械学習アルゴリズム実装会 - LDA (20)
More from Masayuki Isobe (18)
第二回機械学習アルゴリズム実装会 - LDA
- 2. 自己紹介
• 礒部正幸(いそべ まさゆき)
• 職業: ソフトウェアエンジニア
• 現在: アドファイブ(株) 代表 http://www.adfive.net
– 今のところ代表1名の会社です
– アドテク、データドリブンマーケティング事業
• ソフトウェアコンサルティング及び受託開発
• 理系大学院卒
• インターネット活動
– TwitterID: @chiral
– (ブログ:アドファイブ日記) http://d.hatena.ne.jp/isobe1978/
• 最近実装したアルゴリズム
– カルマンフィルタ、粒子フィルタ、Restricted Boltzmann
Machine、ベイズロジスティック回帰、uplift modeling,
SCW, LDA
- 3. Topic Modelingとは
• 主に文書データを想定したクラスタリング
– クラスタリング = 教師なし分類
文書データの例)
文書1 = “明日は機械学習ハッカソンの日だ。予習はバッチリだ。”
文書2 = “ワールドカップのせいで夜更かししちゃいそうで怖い。”
文書3 = “日本人のせいで鰻が絶滅したら末代まで世界の恥だ。”
…
• Bag of Words (BoW) というデータを統計モデル化
Bag of wordsの例)
BoW1 = { “明日”:1, ”機械学習”:1, “ハッカソン”:1, “日”:1, “予習”:1, “バッチリ”:1 }
BoW2 = { “ワールドカップ”:1, “夜更かし”:1, “怖い”:1 }
BoW3 = { “日本人”:1, “鰻”:1, “絶滅”:1, “末代”:1, “世界”:1, “恥”:1 }
・単語の順番を無視して、文書内に出現する単語の頻度だけ考える
・教師データを与えずに、単語の出現傾向(=トピック)をモデル化する
- 4. LDAとは
• TopicModelingの1手法
– 入力=文書(BoW)の集合 、 トピック数K( K=5とか、人間が与える)
→ 出力=各文書の各単語のトピック番号が確率分布で得られる
例)文書100個、トピック数K=3
BoW1 = { “明日”: [ 0.1,0.1 ,0.8], ”機械学習”:[ 0.2,0.3,0.5 ], “ハッカソン”:[ 0.4,0.3,0.3 ],
“日”:[ 0.2,0.2,0.6 ] , “予習”:[ 0.3,0.5,0.2 ], “バッチリ”:[ 0.2,0.6,0.2 ] }
BoW2 = …
• 代表的な確率計算アルゴリズム(下に行くほど新しい)
– 変分ベイズ法
• LDAの考案者であるBlei博士の論文で実装
– Collapsed Gibbs sampler
• Mallet(Java), Gensim(Python) で実装されている
– 周辺化変分ベイズ法Zero
• Mahout(Java)で実装されている
K=3なので3面サイコロの確率分布が各単語について計算される
今日はこれを
実装します。
(LDAの実装
といえば、まず
最初にこれを
やるのが定番
となっている)
- 5. LDAの統計モデル(1)
K = トピック数
α =ハイパーパラメータ
Β =ハイパーパラメータ
人が天下り的に与える
統計モデルを数式じゃなくてこういう図であらわすことを
グラフィカルモデルって言います
矢印は 「何かサイコロを振る行為」を表します。
黒く塗りつぶした変数(下図だとw)は、観測データ
白抜きの変数は、パラメータ
四角い箱の囲みは、その中にある丸と矢印を繰り返す
という意味。
φ = V面サイコロ
Θ =K面サイコロ
Z =サイコロΘの出目
モデルの中で使うパラメータ
M = 文書の数
N =その文書の単語の数
W =その文書の単語
(あと、図に無いけど便宜上
V =単語の種類数とする)
観測データ(学習データ)
=