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