人工知能特論II 第12回
二宮 崇
1
今日の講義の予定
系列ラベリングのための確率的識別モデル(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
3
系列ラベリングのための確率的識別モデル
Linear-chain CRF
CRF (Conditional Random Fields, 条件付確率場)
最大エントロピーモデルの一種
出力yは入力xに対する条件付確率
出力yが無向グラフ(yをノードに分解できる)
素性を各ノードの近傍で定義
Linear-chain CRF
ノードが線形につながったCRF (系列ラベリングのためのCRF)
例えば、品詞解析の場合、入力xが文で、出力yが単語-品詞列となる。
単語と品詞のペアがノードになる。素性を各ノードの近傍で定義する。
I
代名詞
have
動詞
a
pen
不定冠詞
名詞
.
ピリオド
x =“I have a pen.”
y=“I-代名詞 have-動詞 a-不定冠詞 pen-名詞 .-ピリオド”
に対しp(y|x)を求める
4
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
w1
w2
w3
w4
w5
w6
x
a
pen
is
a
pen
.
y
不定冠詞
名詞
動詞
不定冠詞
名詞
p1
p2
p4
p5
p3
ピリオド
p6
pi-1piから生成される素性
wipiから生成される素性
不定冠詞-名詞
a-不定冠詞
名詞-動詞
pen-名詞
動詞-不定冠詞
is-動詞
名詞-ピリオド
.-ピリオド
6
Linear-chain CRF: 全体の素性ベクトルと局所的素
性ベクトルの関係
各素性関数の値は1文中に各素性が発火(出
現)した回数
f j ( x, y ) f j (c )
c
x
a
pen
is
y
不定冠詞
名詞
動詞
a
pen
不定冠詞
名詞
pen-名詞
不定冠詞-名詞
名詞-動詞
.
ピリオド
is-動詞
a-不定冠詞
素性ベクトル(…, 0, 2, 0, …, 0, 1, 0, …, 0, 2, 0, …, 0, 1, 0, …, 0, 2, 0, …)
7
Linear-chain CRF: 全体のスコアと局所的なスコアの関係
全体のスコア=各ノードcに対するスコアの積
p ( y | x; )
1
1
1
1
exp j f j ( x, y ) exp j f j (c) exp j f j (c) exp j f j (c)
Z
c
j
Z
j
Z
c j
Z c
j
e 1 2 2 0 3 3 4 1 5 1
文全体の素性ベクトル: (2,0,3,1,1)
掛算
e
1 1 2 0 3 1 4 1 5 0
e
1 0 2 0 3 1 4 0 5 0
e 1 1 2 0 3 1 4 0 5 1
(1,0,1,1,0)
(0,0,1,0,0)
(1,0,1,0,1)
w1
w2
w3
p1
p2
p3
8
Linear-chain CRF: スコアの分解と
HMMとの対応
単語-品詞列の確率
p ( y | x; )
1
1
exp j f j ( x, y )
exp
f
(
c
)
j j
Z ( x, )
j
Z ( x, ) c
j
品詞列集合全体のスコアの和 (前向きア
ルゴリズムで計算)
解析: ビタビアルゴリズムの適用
HMMの遷移確率と出
力確率に対応
遷移確率と出力確率 ⇔ ノードのスコア exp j j f j (c)
学習: 前向き後向きアルゴリズムの適用
遷移回数と出力回数 ⇔ 素性値(素性の発火回数)
9
1次のLinear-chain CRF
ラベル集合をQ、入力をx、出力をq1q2…qTとする。
Linear-chain CRF
exp j f j (qt 1 , qt , x, t )
t 1
j
T
Z x exp j f j (qt 1 , qt , x, t )
q1Q ,, qT Q t 1
j
1
p (q1q2 qT | x)
Zx
T
ただし、Zx は分配関数、λj は fj に対する重み、q0 = DUMMY(ダミーの
ラベル)とし、素性関数 f の引数は次のように定義される。
f (時刻 t -1 のラベル, 時刻 t のラベル, 入力, 時刻)
入力(第三引数)と時刻(第四引数)を与えることによって、入力の情報
を素性として用いることができる
例えば、品詞解析の場合、ラベルが品詞であり、入力が単語列となり、
時刻tやその前後における単語を素性として用いることができる。
10
LINEAR-CHAIN CRFの解析
11
Linear-chain CRFの解析
入力x
ラベル集合Q
Linear-chain CRFの解析
ˆq1qˆ 2 qˆT arg max p (q1q2 qT | x) arg max exp j f j (qt 1 , qt , x, t )
q1q2 qT
q1q2 qT
t 1
j
T
(Zx は定数であるため、必要ない)
12
Linear-chain CRFの解析: ビタビアルゴリズム
動的計画法
δ(t, q): 時刻tにラベルqとなるラベル列の中で最大のスコア
maxq∈Q δ(T, q)を求めれば良い
時刻
1
2
3
T
ラベル1
…
ラベル2
…
…
ラベル3
…
ラベル4
トレリス
13
Linear-chain CRFの解析: ビタビアルゴリズム
t 1 j j f j ( qu1 ,qu , x ,u ) j j f j ( qt 1 ,q , x ,t )
(t , q) max e
e
q1Q ,, qt 1Q
u 1
t 2 j j f j ( qu1 ,qu , x ,u ) j j f j ( qt2 ,qt 1 , x ,t 1) j j f j ( qt1 ,q , x ,t )
max max e
e
e
qt 1Q q1Q ,, qt 2 Q
u 1
最大スコアで遷移したパ
j j f j ( qt 1 ,q , x ,t )
max (t 1, qt 1 )e
スをバックポインタで保存
qt 1Q
時刻
1
2
t-1
t
T
ラベル1
…
…
ラベル2
…
…
…
ラベル q
…
…
…
…
…
14
Linear-chain CRF:解析(ビタビアルゴリズム)
入力x
Linear-chain CRFの解析
max p (q1q2 qT | x) max exp j f j (qt 1 , qt , x, t ) max (T , q )
q1q2 qT
q1q2 qT
q
t 1
j
T
Linear-chain CRFのビタビアルゴリズム
HMMとの対応
for q∈Q
𝜋 𝑞 𝑏[𝑞, 𝑜1 ]
δ[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
LINEAR-CHAIN CRFの学習
16
Linear-chain CRFの学習
学習 (パラメータ推定)
訓練データの対数尤度(=目的関数)に対する勾配を0にする
N
L( ) N
f j ( xi , yi ) p( y | xi ; ) f j ( xi , y)
j
i 1
i 1 yY ( xi )
問題点
目的関数とその勾配が計算できれば勾配法でパラメータが求ま
る。
素性関数の期待値の計算: 「ある文xに対する全ての可能なラベ
ル列集合Y(x)に対する確率」を計算しないといけない
文長n、ラベル数lに対し、可能なラベル列はlnある。全て展開す
るのはほぼ不可能
解決策
前向き後ろ向きアルゴリズム
畳み込まれたデータ構造を展開することなく素性関数の期待値
を計算
17
Linear-chain CRFの学習: 目的関数
訓練データ D={(x1, y1), (x2, y2), …, (xN, yN)}
各 yi を yi=qi1qi2…qiTiとする。
目的関数: 訓練データに対するLinear-chain CRFの
対数尤度
パラメータλに対する目的関数 L(λ)
N
L( ) log p ( yi | xi ; )
i 1
Ti
N
1
log
exp j f j (qi (t 1) , qit , xi , t )
Z ( xi , ) t 1
i 1
j
Ti
N
N
i 1
i 1 t 1
log Z ( xi , ) j f j (qi (t 1) , qit , xi , t )
j
18
Linear-chain CRFの学習: 目的関数の勾配 (1/2)
L( )
j
目的関数 L(λ) に対するパラメータ λ の勾配
N
Ti
i 1 t 1
N Ti
Z ( xi , )
1
f j (qi (t 1) , qit , xi , t )
j
i 1 Z ( xi , )
f
i 1 t 1
N
N
j
(qi (t 1) , qit , xi , t )
Ti
Ti
1
f j (qt1 , qt, xi , t ) exp j f j (qu 1 , qu , xi , u )
i 1 Z ( xi , ) q1Q ,, qT i Q t 1
u 1 j
N
Ti
f
i 1 t 1
N
j
(qi (t 1) , qit , xi , t )
i 1 q1Q ,, qT i Q
Ti
p (q1 qTi | xi ) f j (qt1 , qt, xi , t )
t 1
素性関数の合計の期
待値となっている
19
Linear-chain CRFの学習: 目的関数の勾配 (2/2)
L( )
j
目的関数 L(λ) に対するパラメータ λ の勾配
(前のスライドの続き)
N
Ti
N
f
j
(qi (t 1) , qit , xi , t )
f
j
(qi (t 1) , qit , xi , t )
f j (qt1 , qt, xi , t )
f
j
(qi (t 1) , qit , xi , t )
f
(qt1 , qt, xi , t ) p (qt1qt | xi )
i 1 t 1
N Ti
i 1 t 1
N Ti
i 1 t 1
Ti
i 1 q1Q ,, qT i Q
N Ti
p (q1 qTi | xi ) f j (qt1 , qt, xi , t )
i 1 t 1 qt1Q , qtQ
N Ti
j
i 1 t 1 qt1Q , qtQ
t 1
p ( q q
1
Ti
q1Q ,, qt2 Q , qt1Q ,, qT i Q
| xi )
qt-1 qt の周辺確率を効率的に
求められればよい
20
Linear-chain CRFの学習: 前向きアルゴリズム (1/3)
動的計画法
α(t, q): 時刻tにラベルqであるスコアの合計
t 1 j j f j ( qu1 ,qu , x ,u ) j j f j ( qt 1 ,q , x ,t )
(t , q)
e
e
q1Q ,, qt 1Q u 1
全てのt,qに対し、α(t, q)を求めれば良い
時刻
1
2
3
T
ラベル1
…
ラベル2
…
ラベル3
ラベル4
…
…
トレリス
21
Linear-chain CRFの学習: 前向きアルゴリズム (2/3)
t 1 j j f j ( qu1 ,qu , x ,u ) j j f j ( qt 1 ,q , x ,t )
(t , q)
e
e
q1Q ,, qt 1Q u 1
t 2 j j f j ( qu1 ,qu , x ,u ) j j f j ( qt 2 ,qt 1 , x ,t 1) j j f j ( qt 1 ,q , x ,t )
e
e
e
qt 1Q q1Q ,, qt 2 Q u 1
j j f j ( qt 1 ,q , x ,t )
(t 1, qt 1 )e
全てのスコアの和
qt 1Q
時刻
1
2
t-1
t
T
ラベル1
…
…
ラベル2
…
…
…
ラベル q
…
…
…
…
…
22
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から文末までのスコアの合計
(t , q)
qt 1Q ,, qT Q
e
j j f j ( q ,qt 1 , x ,t 1)
T
e
j j f j ( qu1 ,qu , x ,u )
u t 2
24
Linear-chain CRFの学習: 後ろ向きアルゴリズム (2/3)
(t , q)
e
qt 1Q ,, qT Q
j j f j ( q ,qt 1 , x ,t 1)
e
j j f j ( qu1 ,qu , x ,u )
u t 2
j j f j ( q ,qt 1 , x ,t 1) j j f j ( qt 1 ,qt 2 , x ,t 2 ) T j j f j ( qu1 ,qu , x ,u )
e
e
e
qt 1Q qt 2 Q ,, qT Q
j f j ( q , qt 1 , x ,t 1)
e
T
j
qt 1Q
u t 3
(t 1, qt 1 )
全てのスコアの和
時刻
1
2
t
t+1
T
ラベル1
…
…
ラベル2
…
…
…
ラベル q
…
…
…
…
…
25
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 の周辺確率
p (qt1qt | xi )
p ( q q
q1Q ,, qt2 Q qt1Q ,, qT i Q
1
Ti
| xi )
Ti
1
j j f j ( qu 1 ,qu , xi ,u )
e
Z ( xi , ) q1Q ,,qt2 Q qt1Q ,,qTi Q u 1
t 1 j j f j ( qu 1 ,qu , xi ,u ) j j f j ( qt1 ,qt , xi ,t ) Ti j j f j ( qu 1 ,qu , xi ,u )
1
e
e
e
Z ( xi , ) q1Q ,,qt2 Q qt1Q ,,qTi Q u 1
u t 1
Ti j j f j ( qu 1 ,qu , xi ,u )
t 1 j j f j ( qu 1 ,qu , xi ,u )
1
j j f j ( qt1 ,qt , xi ,t )
e
e
e
Z ( xi , )
q1Q ,, qt2 Q u 1
qt1Q ,,qTi Q u t 1
t 1 j j f j ( qu 1 ,qu , xi ,u )
1
j j f j ( qt1 ,qt , xi ,t )
e
e
(t , qt )
Z ( xi , )
q1Q ,, qt2 Q u 1
t
1
1
j f j ( qt1 ,qt , xi ,t )
j f j ( qu 1 ,qu , xi ,u )
e j
(t , qt ) e j
Z ( xi , )
q1Q ,, qt2 Q u 1
1
j f j ( qt1 ,qt , xi ,t )
e j
(t , qt ) (t 1, qt1 )
Z ( xi , )
1
j j f j ( qt1 ,qt , xi ,t )
(t 1, qt 1 )e
(t , qt )
Z ( xi , )
27
Linear-chain CRF
学習(前向き後ろ向きアルゴリズム)
前向き後ろ向きアルゴリズムによる目的関数L(λ)に対するパラメータλの勾配
L( )
j
N
Ti
N
Ti
f
j
(qi (t 1) , qit , xi , t )
f
j
(qi (t 1) , qit , xi , t )
i 1 t 1
N Ti
i 1 t 1
N Ti
f
j
i 1 t 1 qt1Q , qtQ
(qt1 , qt, xi , t ) p (qt1qt | xi )
f ( qt1 , qt , xi ,t )
1
j j j
f j (qt1 , qt, xi , t )
(t 1, qt1 )e
(t , qt )
Z ( xi , )
i 1 t 1 qt1Q qtQ
28
まとめ
系列ラベリングのための確率的識別モデル
Linear-chain CRF
解析 (ビタビアルゴリズム)
学習 (前向き後ろ向きアルゴリズム)
今までの講義資料
http://aiweb.cs.ehime-u.ac.jp/~ninomiya/ai2/
29
© Copyright 2026 ExpyDoc