人工知能特論II 第12回 -...
-
Upload
nguyenliem -
Category
Documents
-
view
218 -
download
0
Transcript of 人工知能特論II 第12回 -...
今日の講義の予定
系列ラベリングのための確率的識別モデル(Linear-chain CRF) 解析 (ビタビアルゴリズム) 学習 (前向き後ろ向きアルゴリズム)
教科書 高村 大也 (著), 奥村 学 (監修) 言語処理のための機械学習入門 (自然言語処理シリーズ), コロナ社, 2010
Yusuke Miyao (2006) From Linguistic Theory to Syntactic Analysis: Corpus-Oriented Grammar Development and Feature Forest Model, Ph.D Thesis, University of Tokyo
Jun’ichi Kazama (2004) Improving Maximum Entropy Natural Language Processing by Uncertainty-aware Extensions and Unsupervised Learning, Ph.D. Thesis, University of Tokyo
Cristopher M. Bishop “PATTERN RECOGNITION AND MACHINE LEARNING” Springer, 2006
2
系列ラベリングのための確率的識別モデル Linear-chain CRF
CRF (Conditional Random Fields, 条件付確率場) 最大エントロピーモデルの一種 出力yは入力xに対する条件付確率 出力yが無向グラフ(yをノードに分解できる) 素性を各ノードの近傍で定義
Linear-chain CRF ノードが線形につながったCRF (系列ラベリングのためのCRF) 例えば、品詞解析の場合、入力xが文で、出力yが単語-品詞列となる。単語と品詞のペアがノードになる。素性を各ノードの近傍で定義する。
4
代名詞 動詞 不定冠詞 名詞 ピリオド
I have a pen .
x =“I have a pen.”
y=“I-代名詞 have-動詞 a-不定冠詞 pen-名詞 .-ピリオド”
に対しp(y|x)を求める
Linear-chain CRF: 素性テンプレート
素性テンプレート どのような素性を採用するか表記したもの 訓練データに対し素性テンプレートを適用し、実際に出現した値だけを素性として採用
素性テンプレートの例 i番目のノードをciとする i番目の品詞をpiとする i番目の単語をwiとする HMMと同様の素性の場合
各ノードciに対し、pi-1pi [最大で品詞数×品詞数の次元ができうる]
各ノードciに対し、wipi [最大で単語数×品詞数の次元ができうる]
他にもいろんな組合せの素性を追加できる 各ノードciに対し、 wi-1wipi
各ノードciに対し、 pi-2pi-1pi
5
Linear-chain CRF: 素性テンプレートと素性
素性テンプレートの例 HMMと同様の素性の場合
各ノードciに対し、pi-1pi
各ノードciに対し、wipi
6
動詞 不定冠詞 名詞 ピリオド
is a pen . x
y 不定冠詞 名詞
a pen
w1 w2 w3 w4 w5 w6
p1 p2 p3 p4 p5 p6
pi-1piから生成される素性 wipiから生成される素性
不定冠詞-名詞 a-不定冠詞
名詞-動詞 pen-名詞
動詞-不定冠詞 is-動詞
名詞-ピリオド .-ピリオド
Linear-chain CRF: 全体の素性ベクトルと局所的素性ベクトルの関係
各素性関数の値は1文中に各素性が発火(出現)した回数
7
動詞 不定冠詞 名詞 ピリオド
is a pen . x
y
素性ベクトル(…, 0, 2, 0, …, 0, 1, 0, …, 0, 2, 0, …, 0, 1, 0, …, 0, 2, 0, …)
不定冠詞-名詞
不定冠詞 名詞
a pen
名詞-動詞
pen-名詞 is-動詞
a-不定冠詞
c
jj cfyxf )(),(
Linear-chain CRF: 全体のスコアと局所的なスコアの関係
全体のスコア=各ノードcに対するスコアの積
8
(1,0,1,1,0) (0,0,1,0,0)
文全体の素性ベクトル: (2,0,3,1,1)
01101 54321 e
00100 54321 e
11302 54321 e
掛算
p1 p2
w1 w2
(1,0,1,0,1)
p3
w3
10101 54321 e
c j
jj
c j
jj
j c
jj
j
jj cfZ
cfZ
cfZ
yxfZ
xyp )(exp1
)(exp1
)(exp1
),(exp1
);|(
Linear-chain CRF: スコアの分解とHMMとの対応
単語-品詞列の確率
解析: ビタビアルゴリズムの適用
遷移確率と出力確率 ⇔ ノードのスコア
学習: 前向き後向きアルゴリズムの適用
遷移回数と出力回数 ⇔ 素性値(素性の発火回数) 9
HMMの遷移確率と出力確率に対応
j
jj cf )(exp
c j
jj
j
jj cfxZ
yxfxZ
xyp )(exp),(
1),(exp
),(
1);|(
品詞列集合全体のスコアの和 (前向きアルゴリズムで計算)
1次のLinear-chain CRF
ラベル集合をQ、入力をx、出力をq1q2…qTとする。 Linear-chain CRF ただし、Zx は分配関数、λj は fj に対する重み、q0 = DUMMY(ダミーのラベル)とし、素性関数 f の引数は次のように定義される。
f (時刻 t -1 のラベル, 時刻 t のラベル, 入力, 時刻) 入力(第三引数)と時刻(第四引数)を与えることによって、入力の情報を素性として用いることができる 例えば、品詞解析の場合、ラベルが品詞であり、入力が単語列となり、時刻tやその前後における単語を素性として用いることができる。
10
QqQq
T
t j
ttjjx
T
t j
ttjj
x
T
T
txqqfZ
txqqfZ
xqqqp
,, 1
1
1
121
1
),,,(exp
),,,(exp1
)|(
Linear-chain CRFの解析
入力x
ラベル集合Q
Linear-chain CRFの解析
(Zx は定数であるため、必要ない)
12
T
t j
ttjjqqq
Tqqq
T txqqfxqqqpqqqTT 1
12121 ),,,(expmaxarg)|(maxargˆˆˆ2121
Linear-chain CRFの解析: ビタビアルゴリズム
動的計画法
13
ラベル1
トレリス
…
…
…
…
ラベル2
ラベル3
ラベル4
δ(t, q): 時刻tにラベルqとなるラベル列の中で最大のスコア maxq∈Q δ(T, q)を求めれば良い
時刻 1 2 3 T
Linear-chain CRFの解析: ビタビアルゴリズム
14
1 2 T t-1
ラベル q
t
…
…
…
…
…
…
…
…
ラベル1
ラベル2
…
…
最大スコアで遷移したパスをバックポインタで保存
j tjj
t
j tjjj ttjjj uujj
tt
j tjjj uujj
t
txqqf
tQq
txqqftxqqft
u
uxqqf
QqQqQq
txqqft
u
uxqqf
QqQq
eqt
eee
eeqt
),,,(
1
),,,()1,,,(2
1
),,,(
,,
),,,(1
1
),,,(
,,
1
1
1121
211
11
11
),1(max
maxmax
max),(
時刻
Linear-chain CRF:解析(ビタビアルゴリズム)
入力x
Linear-chain CRFの解析 Linear-chain CRFのビタビアルゴリズム for q∈Q δ[1, q] := exp{Σjλjfj(DUMMY,q,x,1)} for t =2 to T for q∈Q δ[t, q] := maxq’ ∈Q δ[t - 1,q’]exp{Σjλjfj(q’, q, x, t)} bp[t, q] := argmaxq’ ∈Q δ[t - 1,q’]exp{Σjλjfj(q’, q, x, t)}
15
𝜋 𝑞 𝑏[𝑞, 𝑜1]
𝑎[𝑞′, 𝑞] 𝑏[𝑞, 𝑜𝑡]
HMMとの対応
),(max),,,(expmax)|(max1
1212121
qTtxqqfxqqqpq
T
t j
ttjjqqq
Tqqq TT
Linear-chain CRFの学習
学習 (パラメータ推定) 訓練データの対数尤度(=目的関数)に対する勾配を0にする
目的関数とその勾配が計算できれば勾配法でパラメータが求まる。
問題点 素性関数の期待値の計算: 「ある文xに対する全ての可能なラベル列集合Y(x)に対する確率」を計算しないといけない
文長n、ラベル数lに対し、可能なラベル列はlnある。全て展開するのはほぼ不可能
解決策 前向き後ろ向きアルゴリズム 畳み込まれたデータ構造を展開することなく素性関数の期待値を計算
17
N
i xYy
iji
N
i
iij
j i
yxfxypyxfL
1 )(1
),();|(),()(
Linear-chain CRFの学習: 目的関数
訓練データ D={(x1, y1), (x2, y2), …, (xN, yN)}
各 yi を yi=qi1qi2…qiTiとする。 目的関数: 訓練データに対するLinear-chain CRFの対数尤度
パラメータλに対する目的関数 L(λ)
18
N
i
T
t j
iittijj
N
i
i
N
i
T
t j
iittijj
i
N
i
ii
i
i
txqqfxZ
txqqfxZ
xypL
1 1
)1(
1
1 1
)1(
1
),,,(),(log
),,,(exp),(
1log
);|(log)(
Linear-chain CRFの学習: 目的関数の勾配 (1/2)
目的関数 L(λ) に対するパラメータ λ の勾配
19
N
i QqQq
T
t
ittjiT
N
i
T
t
iittij
N
i QqQq
T
t
T
u j
iuujjittj
i
N
i
T
t
iittij
N
i j
i
i
N
i
T
t
iittij
j
iT
i
i
i
iT
i i
i
i
txqqfxqqptxqqf
uxqqftxqqfxZ
txqqf
xZ
xZtxqqf
L
1 ,, 1
11
1 1
)1(
1 ,, 1 1
11
1 1
)1(
11 1
)1(
1
1
),,,()|(),,,(
),,,(exp),,,(),(
1
),,,(
),(
),(
1),,,(
)(
素性関数の合計の期待値となっている
Linear-chain CRFの学習: 目的関数の勾配 (2/2)
目的関数 L(λ) に対するパラメータ λ の勾配
20
N
i
T
t QqQq
ittittj
N
i
T
t
iittij
N
i
T
t QqQq QqQqQqQq
iTittj
N
i
T
t
iittij
N
i QqQq
T
t
ittjiT
N
i
T
t
iittij
j
i
tt
i
i
tt iTtt
i
i
iT
i
i
i
xqqptxqqftxqqf
xqqptxqqftxqqf
txqqfxqqptxqqfL
1 1 ,
11
1 1
)1(
1 1 , ,,,,,
11
1 1
)1(
1 ,, 1
11
1 1
)1(
1
1 121
1
)|(),,,(),,,(
)|(),,,(),,,(
),,,()|(),,,()(
qt-1 qt の周辺確率を効率的に求められればよい
(前のスライドの続き)
Linear-chain CRFの学習: 前向きアルゴリズム (1/3)
動的計画法
21
ラベル1
トレリス
…
…
…
…
ラベル2
ラベル3
ラベル4
α(t, q): 時刻tにラベルqであるスコアの合計 全てのt,qに対し、α(t, q)を求めれば良い
時刻 1 2 3 T
QqQq
txqqft
u
uxqqf
t
j tjjj uujj
eeqt11
11
,,
),,,(1
1
),,,(
),(
Linear-chain CRFの学習: 前向きアルゴリズム (2/3)
22
1 2 t-1
ラベル q
t
…
…
…
…
…
…
…
…
ラベル1
ラベル2
…
…
全てのスコアの和
txqqf
t
Qq QqQq
txqqftxqqft
u
uxqqf
QqQq
txqqft
u
uxqqf
t
j tjj
t t
j tjjj ttjjj uujj
t
j tjjj uujj
eqt
eee
eeqt
1
1
1 21
1121
11
11
),,,(
1
,,
),,,()1,,,(2
1
),,,(
,,
),,,(1
1
),,,(
),1(
),(
時刻 T
Linear-chain CRFの学習: 前向きアルゴリズム (3/3)
Linear-chain CRFの前向きアルゴリズム for q∈Q α[1, q] := exp{Σjλjfj(DUMMY,q,x,1)} for t =2 to T for q∈Q α[t, q] := Σq’ ∈Q α[t - 1,q’]exp{Σjλjfj(q’, q, x, t)} 入力xとパラメータλが与えられているとする 分配関数 Zx を効率的に求めることもできる ⇒ 目的関数を効率的に求めることができる!
23
Linear-chain CRFの学習: 後ろ向きアルゴリズム (1/3)
前向きアルゴリズムを逆方向に適用
文末から文頭に向かって実行
向きが逆になることを除けば前向きアルゴリズムとまったく同じ
β(t, q) :時刻tにラベルqとなっているとき、時刻t+1から文末までのスコアの合計
24
QqQq
T
tu
uxqqftxqqf
Tt
j uujjj tjj
eeqt,, 2
),,,()1,,,(
1
11
),(
Linear-chain CRFの学習: 後ろ向きアルゴリズム (2/3)
25
1 2 T t
ラベル q
t+1
…
…
…
…
…
…
…
…
ラベル1
ラベル2
…
…
全てのスコアの和
t
txqqf
Qq QqQq
T
tu
uxqqftxqqftxqqf
QqQq
T
tu
uxqqftxqqf
t
j tjj
t Tt
j uujjj ttjjj tjj
Tt
j uujjj tjj
qte
eee
eeqt
1
1
1 2
1211
1
11
),1(
),(
1
)1,,,(
,, 3
),,,()2,,,()1,,,(
,, 2
),,,()1,,,(
時刻
Linear-chain CRFの学習: 後ろ向きアルゴリズム (3/3)
後ろ向きアルゴリズム for q∈Q β[T, q] := 1 for t = T - 1 to 1 for q ∈ Q β[t, q] := Σq’∈Q β[t + 1, q’]exp{Σjλjfj(q, q’, x, t + 1)}
26
Linear-chain CRF 学習(前向き後ろ向きアルゴリズム)
qt-1 qt の周辺確率
27
),(),1(),(
1
),1(),(),(
1
),(),(
1
),(),(
1
),(
1
),(
1
),(
1
)|()|(
),,,(
1
1
),,,(
,,
1
1
),,,(),,,(
,,
1
1
),,,(),,,(
,, ,, 1
),,,(1
1
),,,(),,,(
,, ,, 1
),,,(),,,(1
1
),,,(
,, ,, 1
),,,(
,, ,,
11
1
1
21
11
21
11
21 1
111
21 1
111
21 1
1
21 1
t
txqqf
t
i
tt
txqqf
i
QqQq
t
u
uxqqf
t
txqqf
i
QqQq
t
t
u
uxqqftxqqf
i
QqQq QqQq
T
tu
uxqqft
u
uxqqftxqqf
i
QqQq QqQq
T
tu
uxqqftxqqft
u
uxqqf
i
QqQq QqQq
T
u
uxqqf
i
QqQq QqQq
iTitt
qteqtxZ
qtqtexZ
eqtexZ
qteexZ
eeexZ
eeexZ
exZ
xqqpxqqp
j ittjj
j ittjj
t
j iuujjj ittjj
t
j iuujjj ittjj
t iTt
i
j iuujjj iuujjj ittjj
t iTt
i
j iuujjj ittjjj iuujj
t iTt
i
j iuujj
t iTt
i
Linear-chain CRF 学習(前向き後ろ向きアルゴリズム)
前向き後ろ向きアルゴリズムによる目的関数L(λ)に対するパラメータλの勾配
28
N
i
T
t Qq Qq
t
txqqf
t
i
ittj
N
i
T
t
iittij
N
i
T
t QqQq
ittittj
N
i
T
t
iittij
j
i
t t
j ittjj
i
i
tt
i
qteqtxZ
txqqf
txqqf
xqqptxqqftxqqfL
1 1
),,,(
11
1 1
)1(
1 1 ,
11
1 1
)1(
1
1
1
),(),1(),(
1),,,(
),,,(
)|(),,,(),,,()(