Data-Intensive Text Processing with MapReduce ch6.1

35
Data-Intensive Text Processing with MapReduce (Ch6 EM Algorithms for Text Processing, Part 1) 2010/10/17 shiumachi http://d.hatena.ne.jp/shiumachi/ http://twitter.com/shiumachi http://www.facebook.com/sho.shimauchi

description

This document is written about "Data-Intensive Text Processing with MapReduce" Chapter 6.1. Chapter 6 describes how to design Expectation Maximization with MapReduce algorithm. Section 6.1 focus to Expectation Maximization algorithm itself, and so there are no description about MapReduce.

Transcript of Data-Intensive Text Processing with MapReduce ch6.1

Page 1: Data-Intensive Text Processing with MapReduce ch6.1

Data-Intensive Text Processing with MapReduce

(Ch6 EM Algorithms for Text Processing, Part 1)

2010/10/17shiumachi

http://d.hatena.ne.jp/shiumachi/http://twitter.com/shiumachi

http://www.facebook.com/sho.shimauchi

Page 2: Data-Intensive Text Processing with MapReduce ch6.1

Agenda

● 6章 テキスト処理のためのEMアルゴリズム● イントロダクション● 6.1 Expectation Maximization(期待値最大化)

– 6.1.1 最尤推定– 6.1.2 潜在変数つきビー玉ゲーム– 6.1.3 潜在変数つき最尤推定– 6.1.4 Expectation Maximization

– 6.1.5 EMの例

Page 3: Data-Intensive Text Processing with MapReduce ch6.1

Chapter 6EM Algorithms for Text Processing

6章テキスト処理のためのEMアルゴリズム

Page 4: Data-Intensive Text Processing with MapReduce ch6.1

イントロダクション

Page 5: Data-Intensive Text Processing with MapReduce ch6.1

テキスト処理の歴史● 1980年代の終わりまではルールベース

● 分析や変換のルールをひたすら人力で書く形式● ルールに当てはまればいいけど、推定が全くできない

● 1990年から現代まではデータドリブンが主流● 訓練データを用いてパラメータ調整

– スパムフィルタとか● やがて、アルゴリズム自体も訓練データで改善して

→いくように 機械学習の世界へ

Page 6: Data-Intensive Text Processing with MapReduce ch6.1

データドリブンの利点● 気が利く

● 訓練データにより徐々にアルゴリズムを修正できるので、現実世界の複雑さに対応しやすい

● 安い● 元のデータはこのシステムを作るために新しく生成する必要がないことが多い– テキスト処理用の訓練データだったら、本やwebに既に大量に存在している

● ルールベースだと毎回書き直す必要がある

Page 7: Data-Intensive Text Processing with MapReduce ch6.1

統計モデル● この章で扱うデータドリブンの手法は統計モデル● 3つの課題がある

● モデル選択– HMM(隠れマルコフモデル)

● パラメータ推定・学習– 最尤推定とEMアルゴリズム

● デコーディング● この章ではパラメータ推定がメインだが、デコーディングにも触れる

Page 8: Data-Intensive Text Processing with MapReduce ch6.1

記号の定義とか

X : 入力データセット(観測可能)

Y : 存在し得るアノテーションの集合(アノテーションとはメタデータのようなもの)

x X, y Y∈ ∈

このとき与えられた x に対する y の確率を以下の2通りで表記するPr(x, y) … ジョイントモデルPr(y | x) … コンディショナルモデル

Page 9: Data-Intensive Text Processing with MapReduce ch6.1

デコーディングの手法

与えられた x に対してPr の最大値をとる y を出す

ジョイントモードで書くとこんな感じ

いずれにせよ片っ端から計算すれば算出可能

Page 10: Data-Intensive Text Processing with MapReduce ch6.1

機械学習の分類● 教師あり学習

● “事前に与えられたデータをいわば「例題(=先生からの助言)」とみなして、それをガイドに学習(=デー

” タへの何らかのフィッティング)を行う [5]● 例) SVM, ナイーブベイズ

● 教師なし学習● “出力すべきものがあらかじめ決まっていないという点

で教師あり学習とは大きく異なる。 データの背後に存” 在する本質的な構造を抽出するために用いられる [6]

● 例) クラスタリング, 自己組織化マップ

Page 11: Data-Intensive Text Processing with MapReduce ch6.1

教師あり学習

既に x と y の対応が分かっているデータセットを訓練データとするZ = < <x1, y1>, <x2,y2> ...>

ここで <xi, yi> X * Y∈

この対応づけはマニュアルで行わなければいけないため非常に大変

Page 12: Data-Intensive Text Processing with MapReduce ch6.1

教師なし学習

x さえ用意しておけばOK

Z = < x1, x2, x3 ...> ここで xi X∈

集合Yを定義して学習基準とモデル構造を作っておけば、事前にラベリングしていなくても学習できる教師なし学習アルゴリズムの一つ、EMアルゴリ

ズム と MapReduce の相性がいいため、この本ではEMアルゴリズムを取り扱う

Page 13: Data-Intensive Text Processing with MapReduce ch6.1

6.1 Expectation Maximization

Page 14: Data-Intensive Text Processing with MapReduce ch6.1

EMアルゴリズム● "確率モデルのパラメータを最尤法に基づいて推定する手

法のひとつであり、 観測不可能な潜在変数に確率モデルが依存する場合に用いられる" [7]

● Eステップ、Mステップの繰り返しで処理を行う● Eステップ

● 与えられたパラメータを元に、尤度関数の期待値を算出● Mステップ

● 期待値を最大化するパラメータを算出● このセクションでは、このEMアルゴリズムについて解説する(MapReduce一切なし)

Page 15: Data-Intensive Text Processing with MapReduce ch6.1

6.1.1 最尤推定

Page 16: Data-Intensive Text Processing with MapReduce ch6.1

最尤推定(MLE)

● 与えられたデータ x に対し一番尤もらしいパラ メータ θ を推測する方法(式6.1)

● 例えばビー玉ゲーム(図6.1、次ページ)では、ルールベースであれば物理モデルを作らなければいけないが、MLEであればどちらのバスケットに何回入ったかを観測するだけでいい

Page 17: Data-Intensive Text Processing with MapReduce ch6.1

図6.1 ビー玉ゲーム(単純バージョン)どちらにどれくらいの確率で入るかを調べる。ルールベースであれば、器具の長さや角度などの測定を行わなければいけないだろう。

Page 18: Data-Intensive Text Processing with MapReduce ch6.1

確率を出してみる

10回試行し、a に2回、b に8回入ったとする。a に入る確率を p とすると、

Pr を最大にするときの p を出すには微分すればいい

Page 19: Data-Intensive Text Processing with MapReduce ch6.1

確率を出してみる(続き)

対数をとって微分するとこうなる

これを解けば p = 0.2 とわかる。

さらに調べていけば、N回試行でaにN0回、bにN1回入ったときに 尤もらしい p は、p = N0 / (N0 + N1)

※ テキストの式は誤植

Page 20: Data-Intensive Text Processing with MapReduce ch6.1

6.1.2 潜在変数つきビー玉ゲーム

Page 21: Data-Intensive Text Processing with MapReduce ch6.1

ビー玉ゲーム改● バスケットを3つにし、段を1つ増やす● 第1 段で右に行く確率を p0, 第1段で左に行き、第2 段で右に行く確率を p1, 第1段・第2段とも

に右に行く確率を p2 とする(次ページ参照)

● 「どのパスを通ったか」が観測できる場合はとっても簡単

Page 22: Data-Intensive Text Processing with MapReduce ch6.1

図6.2 ビー玉ゲーム改どのパスを通ったかを観測できる場合は簡単。しかし、バスケットに入ったビー玉の数だけしか観測できない場合どうするか?

p0

p2p1

Page 23: Data-Intensive Text Processing with MapReduce ch6.1

6.1.3 潜在変数つき最尤推定

Page 24: Data-Intensive Text Processing with MapReduce ch6.1

パスを観測できないとき● 教師なし学習の出番● 部分的な情報だけで Pr を推定する● Ys を全ての潜在変数 y の合計として前述の式を書き直す● ここでの y は x と同様インプット側のパラメータであることに注意(最終的には求める値だが)

Page 25: Data-Intensive Text Processing with MapReduce ch6.1

最尤値を求める ある観測値 x に対する Pr は、

全ての観測ベクトル x = <x1, x2 ...> に対する Pr は、

よって一番尤もらしいパラメータ θ は、

Page 26: Data-Intensive Text Processing with MapReduce ch6.1

6.1.4 Expectation Maximization

Page 27: Data-Intensive Text Processing with MapReduce ch6.1

EMアルゴリズムの解説● EMアルゴリズムは訓練データの周辺確率を増加させていく一連のパラメータを求めるための繰り返しアルゴリズム

● EMアルゴリズムは以下の式を保証する

Page 28: Data-Intensive Text Processing with MapReduce ch6.1

Eステップ 現在のパラメータに基づき、それぞれの観測値 x に対する y の事

後確率を求める

このとき、x が集合 X に出てくる相対確率に基づき重み付けする

この事後確率を q(X = x, Y = y; θ(i)) とする

Page 29: Data-Intensive Text Processing with MapReduce ch6.1

MステップE ステップで求めた qの分布における結合分布の確率の対数を最大

化する θ(i+1) を求める

θ(i+1) による尤度は必ず θ(i) 以上になるということは証明されてるらしい(テキストではそこまで説明していない)

Page 30: Data-Intensive Text Processing with MapReduce ch6.1

6.1.5 EMの例

Page 31: Data-Intensive Text Processing with MapReduce ch6.1

ビー玉問題にEMを適用するx {a,b,c}, y {0,1,2,3} ∈ ∈ として EM アルゴリズムを適用する

まず x の相対頻度は、

図6.2 から、明らかに Pr(0|a)=1, Pr(3|c)=1 なので計算不要。

残りの y = {1,2} について計算すると、

Page 32: Data-Intensive Text Processing with MapReduce ch6.1

Mステップで最大化

結局最適化すると、p は以下のようになる。

これは完全に観測できた場合と非常に似ている。

Page 33: Data-Intensive Text Processing with MapReduce ch6.1

参考文献

Page 34: Data-Intensive Text Processing with MapReduce ch6.1

1. Facebook has the world's largest Hadoop cluster!, Facebook has the world's largest Hadoop cluster!, http://hadoopblog.blogspot.com/2010/05/facebook-has-worlds-largest-hadoop.html

2. ユーティリティコンピューティング, wikipedia, http://ja.wikipedia.org/wiki/%E3%83%A6%E3%83%BC%E3%83%86%E3%82%A3%E3%83%AA%E3%83%86%E3%82%A3%E3%82%B3%E3%83%B3%E3%83%94%E3%83%A5%E3%83%BC%E3%83%86%E3%82%A3%E3%83%B3%E3%82%B0

3.Hadoop 第1版, Tom White, オライリー・ジャパン, 2009

4.Simple-9 – について解説 tsubosakaの日記, http://d.hatena.ne.jp/tsubosaka/20090810/1249915586

5.” ”教師あり学習 , wikipedia, http://ja.wikipedia.org/wiki/%E6%95%99%E5%B8%AB%E3%81%82%E3%82%8A%E5%AD%A6%E7%BF%92

6. “ ”教師なし学習 , wikipedia, http://ja.wikipedia.org/wiki/%E6%95%99%E5%B8%AB%E3%81%AA%E3%81%97%E5%AD%A6%E7%BF%92

7.”EM ”アルゴリズム , wikipedia, http://ja.wikipedia.org/wiki/EM%E3%82%A2%E3%83%AB%E3%82%B4%E3%83%AA%E3%82%BA%E3%83%A0

Page 35: Data-Intensive Text Processing with MapReduce ch6.1

Thank you !