Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Crfと素性テンプレート

49,142 views

Published on

tokyo nlp 6

Published in: Economy & Finance, Technology
  • accessibility Books Library allowing access to top content, including thousands of title from favorite author, plus the ability to read or download a huge selection of books for your pc or smartphone within minutes ,Download or read Ebooks here ... ......................................................................................................................... Download FULL PDF EBOOK here { https://urlzs.com/UABbn }
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • (Unlimited)....ACCESS WEBSITE Over for All Ebooks ................ accessibility Books Library allowing access to top content, including thousands of title from favorite author, plus the ability to read or download a huge selection of books for your pc or smartphone within minutes ......................................................................................................................... DOWNLOAD FULL PDF EBOOK here { https://urlzs.com/UABbn } ......................................................................................................................... Download Full EPUB Ebook here { https://urlzs.com/UABbn } ......................................................................................................................... Download Full PDF EBOOK here { https://urlzs.com/UABbn }
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • -- DOWNLOAD THIS BOOKS INTO AVAILABLE FORMAT -- ......................................................................................................................... ......................................................................................................................... Download FULL PDF EBOOK here { http://bit.ly/2m77EgH } ......................................................................................................................... (Unlimited)
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • Download or read that Ebooks here ... ......................................................................................................................... DOWNLOAD FULL PDF EBOOK here { http://bit.ly/2m6jJ5M } ......................................................................................................................... Download EPUB Ebook here { http://bit.ly/2m6jJ5M } ......................................................................................................................... Download Doc Ebook here { http://bit.ly/2m6jJ5M } ......................................................................................................................... .........................................................................................................................
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • ..............ACCESS that WEBSITE Over for All Ebooks ................ ......................................................................................................................... DOWNLOAD FULL PDF EBOOK here { http://bit.ly/2m6jJ5M } ......................................................................................................................... Download Full EPUB Ebook here { http://bit.ly/2m6jJ5M } .........................................................................................................................
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here

Crfと素性テンプレート

  1. 1. CRFと素性テンプレート @uchumik
  2. 2. 自己紹介● 某IT企業勤務● ものぐさ
  3. 3. 今日のお話1. CRF の説明(実装に必要な部分のみ)2. 素性テンプレートのお話
  4. 4. CRF に入る前に…● マシンラーニング界での CRF の立ち居値は何処? ML界 Logistic Regression SVM 識別モデル Perceptron M^3N CRF Structured SVM PA Structured Perceptron MIRA HMM 識別関数 構造学習 ベイジアンの集う修羅の地 生成モデル 僕は立ち入れないので説明不可 NB※ @echizen_tm さんのネタパクりました。
  5. 5. CRFを理解するには?● CRFはいろんな技術があれこれ使われる● ラベル推定 Viterbi アルゴリズム● パラメータ学習 Forward-Backward アルゴリズム
  6. 6. (最低限な)CRFの説明● CRFとは何するものぞ?● 素性関数とは?● Viterbi アルゴリズム?● パラメータ推定ってどうやるの? ● Forward-Backward アルゴリズム
  7. 7. CRFとは何するものぞ?
  8. 8. Conditional Random Fields って?● 系列ラベリングに対数線形モデルを適用した物 Y B B I B I X 今すぐ ここ から 逃げだし たい B: 文節の開始を示すラベル I: 文節に含まれることを示すラベル系列ラベリング:入力系列Xが与えられた時に、適切なラベル列Yを与えるこの発表では CRF と言えば Linear Chain CRF を指すよ。
  9. 9. 適切なラベリングとは exp(W ・Φ ( X ,Y )) P(Y | X )= Z X ,W Z X ,W : Σ Y P(Y | X )=1 を保証するための分配関数 Φ : 素性関数 W : 素性関数に対する重みベクトル訓練データ(正しいラベルが付けられた系列データ)から学習したパラメータWを用いて、入力系列Xに対する出力ラベル系列Yの確率P(Y|X)が最大となるようなラベリングを行う Viterbi アルゴリズムで効率的に行える (あとで話す)
  10. 10. 素性関数とは?
  11. 11. 素性関数とはなんぞ? Φ ( X , Y ) は K 次元のベクトルを返す関数 Φ0 Φ1 Φ2 Φ3 ...Φ k ... ΦK Φ k ( X ,Y )= Σ t ϕ k ( X , y t , y t −1 ) ϕ k ( X , y t , y t−1 )= { 1 ( y t −1=B , y t=B , xt =ここ.) 0 otherwise y t−1 yt 現在の位置 t から見て, 1つ前の ラベル y_{t-1}と現在のラベル y_t , 観測された素性Xが特定の 3つ組の時に1を返すような関数 (y_{t-1},y_t,Xの全ての情報を自x0 x1 ・・・ xt ・・・ xT 由に使ってよい)
  12. 12. よくある素性関数 yt y t−1 yt 遷移素性とか言われたりする xt ϕ 10 ( y t , y t −1)= 0 { 1 ( y t −1=BOS , y t =B) 観測素性とか言われたりする otherwise ϕ 0 (今すぐ , B) ϕ 5 (から , I ) ϕ 10 ( B , BOS ) ϕ 14 ( B , B) ϕ (今すぐ , I ) ϕ (逃げ出し , B) 1 6スペースの省略 ϕ 11 ( I , BOS ) ϕ 15 ( B , I ) ϕ 2 (ここ , B) ϕ 7 (逃げ出し , I )のためこう書く ϕ ( B , EOS ) ϕ 16 ( I , B) 12 ϕ 3 (ここ , I ) ϕ 8 (たい , B) ϕ 13 ( I , EOS ) ϕ 17 ( I , I ) ϕ 4 (から , B) ϕ 9 (たい , I ) ラベルの種類は B , I の2つ, 入力系列Xが以下の時には上のような素性関数が作られる X 今すぐ ここ から 逃げだし たい
  13. 13. Viterbi アルゴリズム?
  14. 14. Viterbi アルゴリズムって何?(1/5)● グラフ上の重みが最大となる経路を求める手法● 各位置 t で取り得るラベル種類が L, 系列長が T の時は O(L^2 T) で最適パスが求まる (まともに取り得るラベルを全列挙するとO(L^T) )● 各位値 t のノードのスコアが最大となるような t-1 の ノードを選んで接続する
  15. 15. Viterbi アルゴリズムって何?(2/5) ϕ 1(今すぐ , I )ϕ 11 ( I , BOS ) I I I I I BOS EOS ϕ 16 ( I , B)ϕ 10 ( B , BOS ) B B B B B が発火 ϕ 0 (今すぐ , B) ϕ 14 ( B , B) ϕ 2 (ここ , B) 今すぐ ここ から 逃げだし たい I I B B B というラベル付け BOS から EOS までの経路を辿 るとラベル付けが行える B B I B I というラベル付け ではどうやって最適な経路を見 つけたら良いのか?
  16. 16. Viterbi アルゴリズムって何?(3/5) ϕ 1(今すぐ , I )ϕ 11 ( I , BOS ) I I I I I BOS EOS ϕ 16 ( I , B)ϕ 10 ( B , BOS ) B B B B B が発火 ϕ 0 (今すぐ , B) ϕ 14 ( B , B) ϕ 2 (ここ , B) 今すぐ ここ から 逃げだし たい W 1 -1 2 -1 0 1 3 -2 -3 1 3 -2 1 1 1 2 1 -1 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 学習済みのパラメータ
  17. 17. Viterbi アルゴリズムって何?(4/5) w 11 +w 1=−3 各ノードごとで最もスコアの大きくなる I I 1つ前のノードと接続するBOS w 11 +w 1+ w 16=−2 ^ w 10 +w 0 +w 14 =5 スコアの大きくなる B B B のノードと接続! w 10 + w 0=4 w 10 + w 0+w 14 +w 2 =7 今すぐ ここ から 逃げだし たいW 1 -1 2 -1 0 1 3 -2 -3 1 3 -2 1 1 1 2 1 -1 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
  18. 18. Viterbi アルゴリズムって何?(5/5) I I I I IBOS EOS B B B B B 今すぐ ここ から 逃げだし たいEOSから順番にBOSまで、後ろ向きに接続されてるノードを辿ると最適パスになっている!
  19. 19. パラメータ推定ってどうやるの?
  20. 20. 重みベクトル W はどう求めるの? W の更新式 勾配ベクトル W t+1 = W t +Φ ( X ,Y )− Σ Y P (Y | X )Φ ( X ,Y ) Y は学習データにある正解のラベル列 Y は生起しうる全てのラベル列 Σ Y P (Y | X )Φ( X , Y ) が求まれば割と簡単に更新出来る Forward-Backward アルゴリズムで効率的に求まる● 勾配ベクトルの求め方は @sleepy_yoshi さん のブログを見ると良い。 ● http://d.hatena.ne.jp/sleepy_yoshi/20110329/p1
  21. 21. ここから Forward-Backward アルゴリズムの話
  22. 22. まずは式変形Σ Y P (Y | X )Φ( X , Y ) = ΣY P (Y | X ) Σ t ϕ( X , y t , y t −1 ) = Σt Σ y , y P ( y t−1 , y t | X ) ϕ( X , y t , y t −1) t t−1 位置 t-1 から t へのラベルの遷移確率が求まればよい y_0,...,y_{t-2} y_{t+1},...,y_T について 周辺化することで求められる
  23. 23. 周辺化とは?● ラベルは B I の2種類で、T=5● 位置 1 が B で、位置 2 が I となる組み合わせ B B I B B P( B B I B B ) + B B I B I P( B B I B I ) + B B I I B . B B I I I . I B I B B . I B I B I . I B I I B . I B I I I . 全部足し合わせてやると = P ( y 1= B , y 2= I | X ) 0 1 2 3 4 が求まる
  24. 24. P(B B I B B) 1 ( W ・ϕ ( B , BOS , X , t =0) ) (W ・ϕ ( B , B , X , t =1)) ( W ・ϕ ( EOS , B , X , t =5))= (e e ...e ) Z X ,WP(B B I B I ) 1 ( W ・ϕ ( B , BOS , X , t =0) ) (W ・ϕ ( B , B , X , t =1)) ( W ・ϕ ( EOS , I , X ,t =5))= (e e ...e ) Z X ,W I I I I BOS EOS B B B B 今すぐ ここ から 逃げだし たい 素性関数のベクトル ϕ ( y 0=B , y −1=BOS , X , t=0)が得られる
  25. 25. 周辺化した式P ( y t−1 , y t | X ) (W ・ ϕ ( y t , y t − 1 , X , t)) e ( W ・ ϕ( y t , y t − 1 , X , t ))= Σy Σy Π t != t e ... , y t− 2 ,... , y T Z X ,W 0, t+ 1各位置での遷移確率を計算する場合, 同じ計算が何回も出てくるので,再計算が起こらないように計算結果を保存しておいて再利用する Forward-Backward アルゴリズム
  26. 26. Forward-Backward アルゴリズムP ( y t−1 , y t | X ) (W ・ ϕ ( y t , y t − 1 , X , t)) e ( W ・ ϕ( y t , yt−1 , X ,t ))= Σy .. , y t − 2 Σy , ... , y T Π t != t e Z X ,W 0,. t+ 1 (W ・ϕ (y t , y t− 1 , X , t )) Σy 0,. .. , y t − 2 Σy t +1 ,... , y T Πt ! =t e (W ・ϕ ( yt , y t − 1 , X , t )) = (Σ y 0,. .. , yt− 2 Π t =0,. .. ,t −1 e ) ( W ・ϕ ( y t , y t − 1 , X , t )) ( Σy t+ 1 ,... , y T Π t =t +1,... ,T +1 e ) t-1より前とtより後ろで式を分けて (W ・ ϕ( y t , y t−1 , X ,t )) α ( y t , t )=Σ y 0,. .. , y t− 1 Π t =0,... , t e (W ・ ϕ( y t , y t−1 , X ,t )) β ( y t , t )=Σ y t+1 , ... , y T Π t =t+1,... , T +1 e とおくと
  27. 27. Forward-Backward アルゴリズム ( W ・ϕ ( y t , yt −1 , X ,t )) eP ( y t−1 , y t | X )= α ( y t−1 , t −1) β ( y t , t ) Z X ,W と表せる。 α と β は次のように表せる α ( y t , t )=Σ y e(W ・ϕ ( y , y , X , t) ) α ( y t −1 , t −1) t− 1 t t− 1 β ( y t , t )=Σ y e(W ・ ϕ ( y , y , X , t+1)) β ( y t +1 , t +1) t+1 t+ 1 t ただし α (BOS ,−1)=1, β ( EOS , T +1)=1 Z X ,W = α ( EOS ,T +1)= β (BOS ,−1)となる 。
  28. 28. e( W ・ ϕ( I , B , X , t=2))∗e(W ・ ϕ ( I , I , X , t=3))∗e(W ・ ϕ (I , I , X ,t =4)) + (W ・ ϕ( I , B , X , t= 2)) (W ・ ϕ ( I , I , X , t =3)) (W ・ϕ (B , I , X ,t =4)) e ∗e ∗e = (W ・ ϕ ( I , B , X ,t =2)) ( W ・ ϕ ( I , I , X ,t =3)) (W ・ ϕ (I , I , X ,t =4)) (W ・ϕ ( B , I , X , t=4))e ∗e (e +e ) 途中の計算結果を保存しておくと 再計算の必要が無くなる。 I I I I BOS EOS B B B B 今すぐ ここ から 逃げだし たい 素性関数のベクトル ϕ ( y 0=B , y −1=BOS , X , t=0)が得られる
  29. 29. ϕ ( y 2=I , y 1=B , X , t=2) β ( I ,t = 2) I I I IBOS EOS α ( B , t =1) B B B B 今すぐ ここ から 逃げだし たい P ( y 1=B , y 2= I | X )= ( W ・ ϕ ( y 2 =I , y1= B , X ,t =2)) e α ( B ,t =1) β ( I , t =2) Z X ,W
  30. 30. 学習まとめ1. 学習事例を1つ読み込む2. 現在のパラメータWtを使って勾配ベクトルを計算 1.Forward-Backward で各ノードのα, βを計算 2.α,βを使って各位置での遷移確率を求めて勾配ベクトル を作成3. Wt に勾配ベクトルを足し込んで Wt+1とする4.1-3. を繰り返す 勾配法とか学習率のスケジューリングとか正則化とか いろいろあるけどそれらはここでは説明しない
  31. 31. ここから素性テンプレートの話をするよ!
  32. 32. 素性テンプレートの説明● 何が出来るの?● どう書くの?● 素性関数は?● 素性関数のID管理ってどうしてる?
  33. 33. Q&AQ「素性テンプレートって何が出来るの?」A「素性関数のデザインが出来るよ。」
  34. 34. どう書くの?
  35. 35. テンプレートの例(1/5) yt xt 2 形動 名詞場所 格助詞 サ五 助動詞たい X 1 形容動詞 名詞 助詞 動詞 助動詞 0 今すぐ ここ から 逃げだし たい -1 0 1 2 3 t 現在の位置 t からの相対位置 指定された位置の何行目の素性を取るか U01:%x[0,0] 指定された位置の観測された 素性を取り出すマクロ現在の位置のラベルのみ見る 観測された素性x_t に Prefix として付加される
  36. 36. テンプレートの例(2/5) yt xt 2 形動 名詞場所 格助詞 サ五 助動詞たいX 1 形容動詞 名詞 助詞 動詞 助動詞 0 今すぐ ここ から 逃げだし たい -1 0 1 2 3 t U01:%x[0,0] U01:ここ U02:%x[0,1] U02:名詞 の様に置き換わる
  37. 37. テンプレートの例(3/5) y t−1 yt B 各位置 t で B という 素性が取り出される位置 t とt-1 の2つのラベルを見る
  38. 38. テンプレートの例(4/5) y t−1 yt B01:%x[0,0] xt B01:ここ と置き換わる 2 形動 名詞場所 格助詞 サ五 助動詞たいX 1 形容動詞 名詞 助詞 動詞 助動詞 0 今すぐ ここ から 逃げだし たい -1 0 1 2 3 t
  39. 39. テンプレートの例(5/5) yt ytx t−1 xt x t−1 xt x t+1 U03:%x[-1,0]/%[0,0] U04:%x[-1,0]/%[0,0]/%x[1,0] 観測値の bigram 観測値の trigram “/”はただの文字列として観測された素性に付加される
  40. 40. 素性関数は?
  41. 41. 素性関数はどうした。テンプレートに従って取り出された観測された素性について先頭のU,Bに従って素性関数が作られる U01:ここ マクロで取り出された素性ラベルの種類は B と I の2種類だとしたら ϕ 0 (U01 : ここ , B) ϕ 1 (U01: ここ , I )が作られるPrefix があるおかげで, 観測された値が位置 t からどの位置にあるのかが区別出来る
  42. 42. B とだけあるのはどうなるの? B マクロで取り出された素性 ϕ 10 ( B , B , BOS ) ϕ 10 ( B , B , B) ϕ 11 ( B , I , BOS ) ϕ 11 ( B , I , B) ϕ 12 ( B , B , EOS ) ϕ 12 ( B , B , E ) ϕ 13 ( B , I , EOS ) ϕ 13 ( B , I , E) という素性関数が作られる入力系列Xに依存しないため, 全ての位置についてBという 素性が取り出され, ラベル遷移だけを見る事が出来る
  43. 43. 素性関数のID管理はどうしてる?
  44. 44. 内部での表現 “U01:ここ-B” = 0 “U01:ここ-I” = 1 ...Q. みたいな Key と ID のペアを用意してハッシュにでも入れるの?A. それでも出来るけど素性関数のIDチェックする度に文字列作る事に なるから遅い。 それに組み合わせが多すぎてハッシュがメモリ馬鹿食いしちゃう。 Q. じゃあどうやって ID を管理するのさ?
  45. 45. Idの管理(1/2)素性テンプレートで取りだされた観測値が U の時は (Unigram Feature) ラベル数L∗Uで始まる素性数の素性関数が作られる素性テンプレートで取りだされた観測値が B の時は (Bigram Feature) 2 (2∗L+L )∗Bで始まる素性数の素性関数が作られ, 重みベクトルWの要素数は 2ラベル数L∗Uで始まる素性数 + (2∗L+L )∗Bで始まる素性数になる
  46. 46. Idの管理(2/2)Wパラメータの構造を下のようにする Unigram Feature のパラメータ Bigram Feature のパラメータ素性とラベルには予め ID を付けておいて φ(0,0), φ(0,1),φ(1,0),φ(1,1),.... ,φ(0,0,0),φ(0,0,1),φ(0,1,0),φ(0,1,1),... Unigram Feature のパラメータ Bigram Feature のパラメータと対応づける
  47. 47. すると・・・U01:%x[0,0]B X 今すぐ ここ から 逃げだし たい素性テンプレート U01:今すぐ U01:ここ U01:から U01:逃げ出し U01:たい B B B B BUnigram Feature のID 0 1 2 3 4 Bigram Feature のID 0 0 0 0 0
  48. 48. 素性ID と ラベル ID の組から対応するWの 要素が直で参照出来る ϕ 1(0, 1) 1 1 1 1 1 BOS 1つ前のラベルID カレントのラベル ID EOS ϕ 16 (0,1,0) Unigram Feature 数10 + (2L+L^2)*0 + 2L + 1*L + 0 = 16 0 0 0 0 0 ϕ 0 (0,0) ϕ 14 (0,0,0) ϕ 2 (1,0)0*L+0 0 1 2 3 4 X 0 0 0 0 0 W 1 -1 2 -1 0 1 3 -2 -3 1 3 -2 1 1 1 2 1 -1 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
  49. 49. 結論● 素性関数は対応するパラメータWだけ作る● 素性とラベルにだけ ID を付ける ● Unigram Feature と Bigram Feature は別管理● 系列Xにテンプレートを適用して素性 ID 列にする ● ラティスのノードに付けられたラベルIDと各位置の素性 IDから対応するWの要素を直で参照する
  50. 50. まとめ● 「言語処理のための機械学習入門」(高村大也, 奥村学) を読めば今日の話はもっと詳しく載ってる ので、これを読めば良いと思う。

×