系列ラベリングのための前向き後ろ向きアルゴリズムの一般化

Download Report

Transcript 系列ラベリングのための前向き後ろ向きアルゴリズムの一般化

系列ラベリングのための前向き
後ろ向きアルゴリズムの一般化
奈良先端科学技術大学院大学
東 藍
系列ラベリング
ある入力系列に対して,もっともらしい出
力系列を推定する問題
 自然言語処理の多くのタスクは,系列ラ
ベリングとして定式化できる

形態素解析
 固有表現抽出
 文節区切り

前向き後ろ向きアルゴリズム

系列ラベリングの問題では,ある入力列
に対して可能な出力候補系列すべてに
関して,ある種の和を計算する必要が生
じる場合がある
HMM の EM アルゴリズム
 CRF における正規化定数の計算,素性
関数のモデル期待値計算


これらの計算を定義どおり実行するのは
不可能
これらは前向き後ろ向きアルゴリズムを用いて効率的に計算できる
従来の前向き後ろ向き
アルゴリズム
「にわにはにわにわとり」
にわ
に
に
わ
は
にわ
にわとり
はにわ
わに
に
にわ
わ
に
と
わ
り
とり
わに
 P y | xy中に出現する「にわ」「に」連接の数
yY x
従来の前向き後ろ向き
アルゴリズム
従来の前向き後ろ向きアルゴリズムが計算できる形式とは







c




yY  x   cC  y 

または



   c   f c 



 cC y 
yY  x   cC  y 



C y  は出力候補 y に現れるラベルおよび隣接ラベルペアの集合 (クリーク)
従来の前向き後ろ向き
アルゴリズム
CRF のパラメタ推定において必要な計算の一例
CRF:


1
Py | x; λ  
exp    k Fk x, c 
Z x; λ 
 k cC x 





Z x; λ    exp   k Fk x, y       c 
yY  x 
 k
 yY x   cC y  


 c  : exp   k f k x, c 
 k

従来の前向き後ろ向き
アルゴリズム
隠れマルコフモデルに対する EM アルゴリズムで必要な計算の一例






Px, y y中に出現する(名詞  動詞)連接の数      c   f c 

yY  x 
yY  x   cC  y 

 cC y 
 P x | y 
 c  : 
 P y ' | y 
1
f c  : 
0
cがラベルの場合
cが隣接ラベルペアのとき
cが名詞 - 動詞の隣接ラベルペアのとき
otherwise 
一般化への動機付け


   c 



yY  x   cC  y 

または



   c   f c 



 cC y 
yY  x   cC  y 


の形式に収まらない和の計算が必要になる文脈が存在する.
これらの計算に対しては,対象となる計算に特化した一般性の無い手法が用いられてきた.
一般的かつ普遍に適用できるようなアルゴリズムは知られていない.
一般化への動機付け


   c 



yY  x   cC  y 

または



   c   f c 



 cC y 
yY  x   cC  y 


の形式に収まらない和の計算が必要になる文脈が存在する.
これらの計算に対しては,対象となる計算に特化した一般性の無い手法が用いられてきた.
一般的かつ普遍に適用できるようなアルゴリズムは知られていない.
本発表では



   c   f1 c 



 cC y 
yY  x   cC  y 


n1
n2




  f 2 c    f K c 




c

C

y

c

C

y





という形式の和を効率的に計算するアルゴリズムを提案する.
nK
前向き後ろ向きアルゴリズム
の一般化
src
src から u1 への経路の集合 u1


 0 u1       c 
yu1  cC  y 

u1
・・・
n



 n u1      c   f c 
yu1  cC  y 

 cC y 
・
・
・
・
・
前向き後ろ向きアルゴリズム
の一般化
u1
 0 u1 ,,  n u1 
u2  0 u2 ,,  n u2 
src
v
・
・
・
・
・
・
・
・
・
・
 n v     src  v  f src     f v n
yv

n

















src


u

v
f
src



f
u

f
v


1
1
yu1
n k
  v    f v  n  k u1   
k 0  k 
n
  
yu2
一般化前向きアルゴリズム





 c   f1 c 



yY  x   cC  y 

 cC y 
n1
n2




  f 2 c     f K c 




c

C

y

c

C

y





nK
  n1 ,,nK snk 
 v  f1n1 v  f KnK v ,
v  src 

n1
nK
 n1  m1
 nK  mK

 n1 ,,nK v  :  v     f1 v     f K v    n1  m1 ,,nK  mK v'
m1  0 m1 
m K  0  mK 
v 'prev v 


(otherwise )

n1 1nK 1 個の前向き変数を出力候補系列が成す構造上で再帰計算することで










 c   f1 c 



yY  x   cC  y 

 cC y 
n1
n2




  f 2 c    f K c 




 cC y 

 cC y 

nK
という形式の計算ができる
一般化前向き後ろ向き
アルゴリズム
n1
nK




 


















c
f
c

f
c
g
c





1
K


 


 cC y 
yY  x   cC  y 

 cC y 
  cC y  

n1
 n1  nK  nK 
  g v        m1 ,,mK v  n1  m1 ,nK  mK v 
v
m10  m1 
m K  mK 
 n1 ,,nK v  : 先と同じ定義 
v  snk, n1  0,, nK  0,
1
0
v  snk ,


 n1 ,,nK v  :  n1  n1  nK  nK 
m1
mK










v
'
f
v
'

f
1
K v ' n1  m1 ,, n K  mK v '
m  m  
m1 0 1  mK  K v 'next v 

otherwise 
実験
CRF に対するラベル F-期待値最適化の目標関数
 2l y  
1

 2l y 


F x; λ   EP y|x;λ  

exp

f
y
 k k 


 yˆ  y  Z x; λ  yY x 
 k
 yˆ  y
ある出力候補系列 y のラベルF-値
出力候補系列の長さ y が可変の場合,従来の前向き後ろ向きアルゴリズムでは計算できない
1

 2l y   y  x0 

exp   k f k x, y 


Z x; λ  m 0 yY x 
 k
 yˆ  x0   yˆ  x0 
m
1

 2l y   y  x0 

exp   k f k x, y 


Z x; λ  m 0 yY x 
 k
 yˆ  x0   yˆ  x0 
m

M
一般化前向きアルゴリズムで計算できる形式
実験
 2l y  
1

 2l y 
F x; λ   EP y|x;λ  
exp   k f k y 


 yˆ  y  Z x; λ  yY x 
 k
 yˆ  y
1

 2l y   y  x0 

exp   k f k x, y 


Z x; λ  m0 yY x 
 k
 yˆ  x0   yˆ  x0 
M
m
テイラー展開の展開項数 M を増やすことで真の値に漸近することを確認
実験
 2l y  
1

 2l y 
F x; λ   EP y|x;λ  
exp   k f k y 


 yˆ  y  Z x; λ  yY x 
 k
 yˆ  y
真の値はこの和を定義どおり計算した結果を用いる
1

 2l y   y  x0 

exp   k f k x, y 


Z x; λ  m0 yY x 
 k
 yˆ  x0   yˆ  x0 
M
m
テイラー展開の展開項数 M を増やすことで真の値に漸近することを確認
実験
テイラー展開の打ち切り次数 M
相対誤差
0
1.0E+00
1.0E-02
1.0E-04
1.0E-06
1.0E-08
1.0E-10
1.0E-12
1.0E-14
2
4
6
8
10 12 14 16 18 20 22 24
設定1
設定2
設定3
設定4
実験
テイラー展開の打ち切り次数 M
相対誤差
0
1.0E+00
1.0E-02
1.0E-04
1.0E-06
1.0E-08
1.0E-10
1.0E-12
1.0E-14
2
4
6
8
10
12 14 16 18 20 22 24
展開次数を展開次数の増加に伴って,
真の値との相対誤差が減少
設定1
設定2
設定3
設定4
実験
テイラー展開の打ち切り次数 M
相対誤差
0
1.0E+00
1.0E-02
1.0E-04
1.0E-06
1.0E-08
1.0E-10
1.0E-12
1.0E-14
2
4
6
8
10 12 14 16 18 20 22 24
相対誤差が底打ちするのは,
打切り誤差以外の数値誤差が原因
設定1
設定2
設定3
設定4
実験
テイラー展開の打ち切り次数 M
相対誤差
0
1.0E+00
1.0E-02
1.0E-04
1.0E-06
1.0E-08
1.0E-10
1.0E-12
1.0E-14
2
4
6
8
10 12 14 16 18 20 22 24
展開次数を増やせば増やすほど打切り誤差が減少し,
実用上十分な計算精度を達成
設定1
設定2
設定3
設定4
結論





従来の前向き後ろ向きアルゴリズムはそもそも
何を計算できるのか,を示した
従来の前向き後ろ向きアルゴリズムでは取り
扱えない種類の計算に関する動機付けを示し
た
より複雑な形式の和を計算できるようアルゴリ
ズムの一般化を提示した
複雑な形式の計算の一例がこの一般化で計算
できることを実証した
(フーリエ変換を用いて提案アルゴリズムを高
速化できることを示した)
今後の課題
具体的な系列ラベリング問題への適用
 依存関係にループのある構造に対する
本一般化の拡張

[補]フーリエ変換による高速化
nK
 n1  m1
 nK  mK
 n1 ,,nK v  :  v     f1 v     f K v   n1 m1 ,,nK mK v'
m1 0 m1 
mK 0  mK 
v 'prev v 
n1
この  の更新式を変形すると
 n ,,n v 
m1
mK
nK
 n1 m1 ,,nK mK v'



f
v
f
v
1
K
1
K
  v  


n1! nK !
mK ! v 'prevv  n1  m1 !nK  mK !
m1 0 m1!
mK  0
n1
 n1 ,,nK v   f nK v 
 f n1 v 

 と
,, 
との畳み込み
 n1! 
 n1!nK !   nK ! 
⇒フーリエ変換により要素毎の積となり,あらかじめ高速フーリエ変換を
適用しておくことでアルゴリズムの高速化が可能.