人工知能特論II 第12回 -...

29
人工知能特論II 12二宮 崇 1

Transcript of 人工知能特論II 第12回 -...

人工知能特論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が単語-品詞列となる。単語と品詞のペアがノードになる。素性を各ノードの近傍で定義する。

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の解析

11

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の学習

16

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

全てのスコアの和

Qq

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

全てのスコアの和

Qq

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),,,(

),,,(

)|(),,,(),,,()(

まとめ

系列ラベリングのための確率的識別モデル

Linear-chain CRF

解析 (ビタビアルゴリズム)

学習 (前向き後ろ向きアルゴリズム)

29

今までの講義資料 http://aiweb.cs.ehime-u.ac.jp/~ninomiya/ai2/