420 likes | 572 Views
数理 言語情報論 第 10 回. 2009 年 12 月 9 日. 数理言語情報学研究室 講師 二宮 崇. 今日の講義の予定. 品詞解析 ( 系列ラベリング ) 解析 ( ビタビアルゴリズム ) パラメータ推定 ( 前向き後向きアルゴリズム ) 構文解析の教師無し学習 内側外側アルゴリズム 教科書 北研二 ( 著 ) 辻井潤一 ( 編 ) 言語と計算 4 確率的言語モデル 東大出版会
E N D
数理言語情報論 第10回 2009年12月9日 数理言語情報学研究室 講師 二宮 崇
今日の講義の予定 • 品詞解析 (系列ラベリング) • 解析 (ビタビアルゴリズム) • パラメータ推定 (前向き後向きアルゴリズム) • 構文解析の教師無し学習 • 内側外側アルゴリズム • 教科書 • 北研二(著) 辻井潤一(編) 言語と計算4 確率的言語モデル 東大出版会 • C. D. Manning & HinrichSchütze “FOUNDATIONS OF STATISTICAL NATURAL LANGUAGE PROCESSING” MIT Press, 1999 • Christopher M. Bishop “PATTERN RECOGNITION AND MACHINE LEARNING” Springer, 2006
EMアルゴリズム(一般) 1/3 パラメータ: θ 入力: x 隠れ状態: y 観測データ: X={x1, x2, …, xn} 対数尤度: log pθ(X)
EMアルゴリズム(一般) 2/3 ポイント! 前ページのように式を展開するよりもここに を代入して等式が成り立つことを確認するほうがわかりやすい とおくと パラメータ: θ 入力: x 隠れ状態: y 観測データ: X={x1, x2, …, xn} 対数尤度: log pθ(X)
EMアルゴリズム(一般) 3/3 パラメータが固定されているので、pθ(X)は変わらない → Lを最大化 ⇔ KLを最小化 Q関数 隠れ状態の確率とパラメータを交互に動かして、Lを最大化 Eステップ Mステップ
品詞解析(系列ラベリング ) POS Tagging(Sequential labeling)
品詞解析 “I have a pen.” トーカナイザー I have a pen . POSタガー I have a pen . 動詞 不定冠詞 名詞 ピリオド 代名詞 品詞タガー
隠れマルコフモデル (1/3) I 名詞 he 出力 (emission) Mary ピリオド … 代名詞 不定 冠詞 動詞 遷移 (transition) I have a pen . 動詞 不定冠詞 名詞 ピリオド 文頭 代名詞
隠れマルコフモデル (2/3) I 0.3 名詞 he 0.25 出力 (emission) 0.3 Mary ピリオド 0.01 0.43 0.01 … 代名詞 0.1 0.5 不定 冠詞 動詞 遷移 (transition) I have a pen . 0.3 動詞 不定冠詞 名詞 ピリオド 文頭 代名詞 0.01
隠れマルコフモデル (3/3) • Q: 状態の有限集合 • Σ: 出力記号の有限集合 • q0: 初期状態 • a(i, j): 状態iから状態jへの遷移確率 • Σj∈Qa(i, j)=1 • a(q0, i): 文頭が状態iになる確率 • b(i, o): 状態iにおける記号oの出力確率 • Σo∈Σb(i,o) = 1
状態と記号の列の確率生成確率と解析 (生成確率) (品詞解析) (パラメータ推定) 計算量がO(|Q|n ) 状態と記号の列が与えられた時 記号列のみが与えられた時
効率的な品詞解析: ビタビアルゴリズム (1/4) δ(t, q): 時刻t(otが出力される時)に状態qとなる状態列の中で最大確率となる列の確率 maxq∈ Q δ(n, q)を求めれば良い 1 2 3 n 時刻 出力記号 o1 o2 o3 on … 状態1 … 状態2 … 状態3 … 状態4 トレリス 動的計画法
効率的な品詞解析: ビタビアルゴリズム (2/4) 最大確率で遷移したパスをバックポインタで保存 o1 o2 ot-1 ot on 状態1 … … 状態2 … … … … … 状態q … … …
効率的な品詞解析: ビタビアルゴリズム (3/4) o1 o2 on-2 on-2 on 状態1 … 状態2 … … 状態 3 状態 4 … 最後にバックポインタを辿ることで最大確率となる状態列が得られる
効率的な品詞解析: ビタビアルゴリズム (4/4) δ[1,q] := a(q0, q) (for all q) for t =2 to n for q ∈ Q δ[t, q] := maxq’∈Q {δ[t-1, q’]a(q’,q)b(q, ot)} bp[t,q] := argmaxq’∈Q {δ[t-1, q’]a(q’,q)b(q, ot)}
パラメータ推定 • パラメータ推定 • 前向きアルゴリズム • 後向きアルゴリズム • 前向き後向きアルゴリズムによる推定
前向きアルゴリズム (1/3) α(t, q): o1 … otを出力し、otが出力される時(時刻t)に状態qである確率 Σq∈ Q α(n, q)を求めれば良い 1 2 3 n 時刻 出力記号 o1 o2 o3 on … 状態1 … 状態2 … 状態3 … 状態4 トレリス 動的計画法
前向きアルゴリズム (2/3) 全ての遷移確率の和 o1 o2 ot-1 ot on 状態1 … … 状態2 … … … … … 状態q … … …
前向きアルゴリズム (3/3) α[1,q] := a(q0, q) (for all q) for t =2 to n for q ∈ Q α[t, q] := Σq’∈Q {α[t-1, q’]a(q’,q)b(q, ot)}
後向きアルゴリズム (1/2) • 前向きアルゴリズムを逆方向に適用 • 文末から文頭に向かって実行 • 向きが逆になることを除けば前向きアルゴリズムとまったく同じ • β(t, q) :時刻tに状態qから始める状態遷移によってot+1…onまで出力する確率
後向きアルゴリズム (2/2) β[n,q] := 1 (for all q) for t := n-1 to 1 for q ∈ Q β[t, q] := Σq’∈Q {a(q, q’)b(q’, ot+1)β[t+1, q’]}
EMアルゴリズムによるパラメータ推定 パラメータ更新式
状態列を列挙した場合の期待値 • 例 • q, r, sの3つの状態があるとする (例えば、名詞、動詞、形容詞) • o1o2o3に対する状態列を列挙 qからrに遷移する回数の期待値: 0.02+0.02+0.001+0.03+0.085+0.07=0.226
前向き後向きアルゴリズム (1/2) あるパラメータa,bが与えられているとする αを求める(前向きアルゴリズム) βを求める(後向きアルゴリズム) γ(t,q,r): 記号列o1…onに対し、時刻tに状態qから状態rに遷移する確率 次のようにa,bを更新する
前向き後向きアルゴリズム (2/2) 前向き確率 後向き確率 o1 o2 ot ot+1 on … … … … 状態q … … … 状態r … … … γ(t,q,r): 記号列o1…onに対し、時刻tに状態qから状態rに遷移する確率
内側外側アルゴリズム inside outside algorithm
PCFGのEMアルゴリズム θ(0) := 適当な値 [Eステップ]θ(i)を用いて各構文木の確率を計算。文sに対する各構文木の相対確率を計算。 [Mステップ] θ(i+1)を求める 2.に戻る
PCFGのEMアルゴリズム C’(r;t) = 0.6×C(r; t) parse s1 p(t|s1)=p(t)/Z1= 0.1 0.3 0.6 parse s2 p(t|s2)=p(t)/Z2= 1.0 parse s3 p(t|s3)=p(t)/Z3= 0.21 0.16 0.51 0.05 0.07 ... ... ... • [Eステップ]各構文木の文sに対する確率 • 仮のパラメータθ(i)を用いてフルパーズした結果の各々の構文木の確率を計算。 • 文sに対するそれぞれの構文木の相対確率p(t|s)を計算 • [Mステップ]パラメータ更新 • 書換規則の適用回数の期待値を計算 • 単純な数え上げと同じ方法でパラメータを求める
PCFGに対するEMアルゴリズムの問題点 parse s ... p(t)/Z= 0.21 0.06 0.001 0.05 0.07 数百億続く! 構文木が多すぎて現実的な時間で各構文木の相対確率を計算できない!(文長に対して指数爆発的に増加。簡単に数百億ぐらいになる。)
内側外側アルゴリズム • 畳みこまれた構文木集合に対して効率的にEMアルゴリズムを実行する手法 • アイデア • CKYアルゴリズムでフルパーズした後のCKYテーブルから構文木を展開することなく各書換規則の適用回数の期待値が計算できればよい • バイナリールールを仮定し、内側確率と外側確率を動的計画法で効率的に計算 • 内側確率と外側確率から書換規則の適用回数の期待値が計算
内側確率 A w1,...,wi wi+1, ..................,wj wj+1,...,wn • 内側確率β(i,j,A) • 非終端記号Aから単語列wi+1,...,wjを導出する確率(=単語列wi+1,...,wjを構文解析してルート(根)がAとなる構文木集合の確率の和)
内側確率の計算 sumをmaxにするとビタビアルゴリズムになる • Si,jをビタビアルゴリズムと同様に計算 • ただし、ファクタリングの際にmaxをとっていたのをsumにする • Si,j: <X, p>の集合 (X: 非終端記号, p: 部分木の確率) • Si,jの求め方 for k = i+1 to j-1 forall <B, pX>∈ Si,k forall <C, pY>∈ Sk,j forall A ∈ G(B, C) if( <A, p> exists in Si,j) p := p + pX×pY×θZ→X Y else Si,j := Si,j∪ <A, pX×pY×θZ→X Y>
外側確率 S B w1,...,wi wi+1, ..................,wj wj+1,...,wn • 外側確率α(i,j,B) • S(開始記号)からw1...wiBwj+1...wnを導出する確率
外側確率計算のアイデア S S A A C B B C w1..wi wi+1 ..wj w1..wk wj+1 ..wk • バイナリールールなので、次の2通りとACの組み合わせからα(i,j,B)が計算できる • A→B C: Aの外側確率×Cの内側確率×θA→B C • A→C B :Aの外側確率×Cの内側確率×θA→C B wk+1..wn wk+1 ..wi wi+1 ..wj wj+1..wn
外側確率の計算 α(i,j,B)の計算
外側確率の計算 S0,6 スタート S0,5 S1,6 S0,4 S1,5 S2,6 S0,3 S1,4 S2,5 S3,6 S0,2 S1,3 S2,4 S3,5 S4,6 S0,1 S1,2 S2,3 S3,4 S4,5 S5,6 0 1 2 3 4 5 6 w1 w2 w3 w4 w5 w6 α(i,j,X)の計算の順番
外側確率計算アルゴリズム Ai,j→ Bi,kCk,j in Si,jはフルパージングの際にSi,j中の非終端記号Aを生成するに到った履歴 ・書換規則がA→B C ・BはSi,kの中の要素 ・CはSk,jの中の要素 フルパージングと内側確率計算後を仮定 for all 0 ≦i < j≦n, X∈VN α(i,j,X) := 0 α(0,n,S) := 1.0 for l = n – 1 to 1 for i = 0 to n-l j := i + l forallAi,j→ Bi,kCk,j in Si,j α(i, k, B):=α(i, k, B)+α(i,j,A)×β(k,j,C)×θA→ B C α(k, j, C):=α(k, j, C)+α(i,j,A)×β(i,k,B)×θA→B C
書換規則の適用回数の期待値 Ai,j Ai,j Ai,j ... parse s Bi,k Ck,j Bi,k Ck,j Bi,k Ck,j p(t)/Z= 0.21 0.16 0.07 内側確率と外側確率を使って書換規則の適用回数の期待値を計算 Ai,j→Bi,kCk,jの適用回数の期待値= Ai,j→Bi,kCk,jの出現した構文木の確率の和
書換規則の適用回数の期待値 S A C B w1..wi wi+1 ..wk wk+1 ..wj wj+1..wn Ai,j→Bi,kCk,jの適用回数の期待値 =1/Z×(Ai,j→Bi,kCk,jの出現した構文木の確率の和) =1/Z×(Bi,kの内側確率×Ck,jの内側確率×θA→B C×Ai,jの外側確率)
内側外側アルゴリズム θ(0) := 適当な値 [Eステップ]θ(i)を用いて内側確率と外側確率を計算。 [Mステップ] 書換規則の適用回数の期待値を計算。θ(i+1)を求める 2.に戻る
まとめ • 品詞解析 (系列ラベリング) • 解析 (ビタビアルゴリズム) • パラメータ推定 (前向き後向きアルゴリズム) • 構文解析の教師無し学習 • 内側外側アルゴリズム • 次回は、12/16(水) 16:30~ 確率的HPSG(単一化アルゴリズム、フルパージングアルゴリズム、確率的HPSG) • 講義資料 • http://www.r.dl.itc.u-tokyo.ac.jp/~ninomi/mistH21w/cl/