可変長オーダー
Linear-Chain CRF
京都大学 情報学研究科
知能情報学専攻(黒橋研究室) 修士 2
年
真鍋宏史
1
発表の流れ
• 研究の背景
• 関連研究
• 提案手法の概要
• Linear-Chain CRF
• 提案手法 ( 可変長オーダー Linear-Chain
CRF)
– 期待値計算
– デコード
• 考察
2
研究の背景
• 品詞タグ付け:二つ前・後ろのタグ情報が
有効 (Stanford Tagger: MEMM の一種、二つ前
・後ろのタグ情報を素性として利用 )
• Linear-Chain CRF では?
– 一般的には bigram 素性ま...
関連研究 -Semi Markov CRF(1)
• Semi-Markov CRF
4
(出所) "Semi-Markov Conditional Random Fields を用いた固有表現抽出に関する研究
2006 年 福岡 健太
関連研究 -Semi Markov CRFs(2)
• Sarawagi et al., 2004
– ノードの長さを可変長に
– チャンクを対象とするものに対して有効
(チャンキング・固有表現抽出等)
– 計算量は Linear-Chain ...
関連研究 -Sparse Higher Order
CRFs
• Qian et al, 2009
– 可変長オーダー
– Zs:t = Zs × Zs+1 ×… × Zt の形で表されるラベル列の集
合に対して素性関数を設定
– 本研究と手法...
提案手法の概要
• 可変長オーダーの Linear-Chain CRF に対す
る期待値を多項式時間で計算
– アクティブな素性を持つパスに限定
– 動的計画法( DP )
– SHO-CRFs と違い、すべてのパスに対して素性
関数を独立に設...
Linear-Chain CRF(1)
• 最大エントロピーモデルの一種
• MEMM :遷移ごとの最大エントロピー
CRF :可能な系列すべての最大エントロピ
ー
• 可能な系列→指数的
DP (前向き・後ろ向きアルゴリズム)で
期待値計算
8
Linear-Chain CRF(2)
• Forward-backward Score を計算
→ Edge の期待値を計算
(Normalization factor: Forward score で )
a
a'
b
b'
[BOS] [...
高次 Linear-Chain CRF
• Linear-Chain CRF は一般には 1 次
• これを単純に高次に拡張→計算量の問題
– Feature 数が指数的に増加
– パス数も指数的に増加
10
計算量の問題:素性数 (1)
• 例えば、 3 次の場合 :
– ある feature function : f (X, yi-3, yi-2, yi-1, yi)
• X について条件を設定
( ex: 大文字で始まる)
• X についての条...
計算量の問題:素性数 (2)
• ラベル L:[L1, L2] 、 f(xi) を x に関する関数とすると
f1(X, yi-3, yi-2, yi-1, yi)=1 if yi-3 = L1 and yi-2 = L1 and yi-1 =...
計算量の問題:パス数 (1)
• 前向き・後ろ向きアルゴリズム
– 動的計画法
– 1 次の Linear-Chain CRF の場合で Θ(L2
)[L: ラベル
数 ]
• 次数が上がるとラベル数倍
– すべての可能なラベルの組み合わせにつ...
計算量の問題:パス数 (2)
• 3 次の場合:
14
L1L1L1
L2L1L1
L1L2L1
L2L2L1
L1L1L2
L2L1L2
L1L2L2
L2L2L2
L1L1L1
L2L1L1
L1L2L1
L2L2L1
L1L1L2
L2L...
提案手法:
可変長オーダー Linear-Chain CRF
• Feature function のオーダーを限定しない
• 訓練データ中で アクティブになる feature に
限定 (sparse feature set)
• 訓練データ...
Sparse Feature Set
• FlexCRF(Phan et al. 2005) 、 CRFSuite(Okazaki,
2007) で実装 (optional in CRFSuite)
– Training data 中でアクティ...
Feature function の生成方法
• すべての f(X, Y) のパターンを生成するの
ではなく、 訓練データ中で出現するラベ
ル列があった時のみ素性関数を生成する
(次数は可変)
– f(X) の形でそれぞれの位置に対する「属性
...
Feature function の生成(例)
• f(X) = UC(xi) = 1 if xi begins with upper case
• 訓練データ :
... nonexective/JJ director/NN Nov./NNP...
可変長前向き・後ろ向きアルゴリ
ズム
• 前向き・後ろ向きアルゴリズムでは、す
べての
可能な組み合わせを考える
• 出現した並びのみを考える→特別なアルゴ
リズムが必要
19
可変長前向き・後ろ向き (1)
• すべての素性関数について、その重みに
対して exp を求めておく→指数重み
(重複計算を避ける)
20
デモ (1)-features
21
属性 (attribute)
"" であれば無条
件
ラベル列 (label
sequence)
長さ 1: 状態素性
長さ 2 以上 : 遷移素性
重みの指数を取ったもの
exp of weight
可変長前向き・後ろ向き (2)
• 一般的な前向き・後ろ向きアルゴリズム
– 状態素性はノード、遷移素性はエッジ
• 提案手法
– 状態・遷移素性ともにノードのように扱う→
パス
• 今注目している位置の属性 (attributes) に対する...
デモ (2)- パスとチェックポイン
ト
23
ラベル付け対
象
属性列 (attributes)
パス
チェックポイ
ント
パスの指数重み
パスのスコ
ア
可変長前向き・後ろ向き (3)
• その列のパスとチェックポイントをソー
ト
(後ろから見たラベル順、一方がもう一
方を含む場合は長いほうから、パスとチ
ェックポイントが同じラベル列を持つ場
合はパスが先)
24
可変長前向き・後ろ向き (4)
• ソートした順の逆順(短い→長い)にパス
のみをたどる
• 短いパスの倍率(素性関数の指数重み)
をそれを含む長いパスにかけ合わせる
(長いパスでは短いパスの素性もアクテ
ィブになっているので)
25
可変長前向き・後ろ向き (4)- 続
き
[ 短いパスの倍率を長いパスにかける手続き
]
• 短いものから順にパスをチェック
– 前のパスを完全に含む場合、スタックに前のパ
スの長さと前のパスまでの倍率をプッシュ
– そうでなければ、前のパスと...
可変長前向き・後ろ向き (5)
• パスとチェックポイントを正順(長い→短
い)にたどる
• パスであれば :
– 今注目している列のラベルを削除して、それ
をキーとして前列のノードのスコアを取得
– そのパスを含む、より長いパスによってスコ
...
可変長前向き・後ろ向き (5)- 続
き
• チェックポイントであれば :
– そのチェックポイントを含む、より長いチェ
ックポイントのスコアを累積したものに現在
のスコアを加算、チェックポイントに対応す
るスコアとして記録
• 手順 (3),...
可変長前向き・後ろ向き (6)
(ここから後ろ向き、末尾から先頭に)
• 今注目している列のチェックポイントと
パスをソートの逆順(短い→長い)にたど
る
• チェックポイントであれば :
– そのチェックポイントのラベル列をキーとし
て、後列...
可変長前向き・後ろ向き (6)- 続
き
• パスであれば :
– 前向きで求めたスコアに現在のスコアをかけ、
パスのスコアを上書き
– 現在のスコアにパスの倍率をかけたものを求め
る。それから、そのパスに含まれる、より短い
パスに対応するスコ...
可変長前向き・後ろ向き (7)
• ソートした順(長い→短い)にパスのみを
たどる
• 短いパスに対して、それを含む、より長い
パスのスコアを足し込む
(長いパスでは短いパスの素性もアクティ
ブになっているので)
• そのスコアを正規化係数で割...
可変長前向き・後ろ向き (8)
• 全データに対してこれを行い、それぞれの
素性関数の期待値を求め、訓練データ中で
の出現回数と合わせて重みを更新
( 一般的な CRF でのパラメータ更新 )
• 更新された重みに基づき、可変長前向き・
後ろ向...
可変長前向き・後ろ向き:まと
め
• 動的計画法により、各パスへの前向き・
後ろ向きスコアを計算
• 累積スコアの差分を取っていくことで、
パスの数に対して線形オーダーで計算可
能
• TODO: 帰納法により定式化
33
デコード
• 可変長前向きアルゴリズムと同様にパスと
チェックポイントを作る
• チェックポイントでは、前のチェックポイ
ントからの最大スコアのみを記録する
• パスでは、対応する前のチェックポイント
と、それを含むより長いチェックポイント
の...
考察
• 実際の応用では定数項の部分も重要
– 実装によって大きな差がある
– 単純なアルゴリズムのほうが高速化しやすい
– 高次の素性が「効いてくる」タスクでないと
優位性を得ることが難しい
• 高次の素性がスパースであるとは限らな
い
– ...
Upcoming SlideShare
Loading in …5
×

Variable-Order CRFs

2,257 views

Published on

A presentation for the Variable-Order CRFs and an efficient algorithm for its parameter estimation and decoding

Published in: Technology, Business
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
2,257
On SlideShare
0
From Embeds
0
Number of Embeds
10
Actions
Shares
0
Downloads
7
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Variable-Order CRFs

  1. 1. 可変長オーダー Linear-Chain CRF 京都大学 情報学研究科 知能情報学専攻(黒橋研究室) 修士 2 年 真鍋宏史 1
  2. 2. 発表の流れ • 研究の背景 • 関連研究 • 提案手法の概要 • Linear-Chain CRF • 提案手法 ( 可変長オーダー Linear-Chain CRF) – 期待値計算 – デコード • 考察 2
  3. 3. 研究の背景 • 品詞タグ付け:二つ前・後ろのタグ情報が 有効 (Stanford Tagger: MEMM の一種、二つ前 ・後ろのタグ情報を素性として利用 ) • Linear-Chain CRF では? – 一般的には bigram 素性まで – 次数を 1 上げるごとに、計算量がラベル数倍 – 離れた関係が利用できない 3
  4. 4. 関連研究 -Semi Markov CRF(1) • Semi-Markov CRF 4 (出所) "Semi-Markov Conditional Random Fields を用いた固有表現抽出に関する研究 2006 年 福岡 健太
  5. 5. 関連研究 -Semi Markov CRFs(2) • Sarawagi et al., 2004 – ノードの長さを可変長に – チャンクを対象とするものに対して有効 (チャンキング・固有表現抽出等) – 計算量は Linear-Chain CRF 以上 • 次数を上げることは同様に困難 5
  6. 6. 関連研究 -Sparse Higher Order CRFs • Qian et al, 2009 – 可変長オーダー – Zs:t = Zs × Zs+1 ×… × Zt の形で表されるラベル列の集 合に対して素性関数を設定 – 本研究と手法は違うが、それぞれの優位点は 未調査 6
  7. 7. 提案手法の概要 • 可変長オーダーの Linear-Chain CRF に対す る期待値を多項式時間で計算 – アクティブな素性を持つパスに限定 – 動的計画法( DP ) – SHO-CRFs と違い、すべてのパスに対して素性 関数を独立に設定 7
  8. 8. Linear-Chain CRF(1) • 最大エントロピーモデルの一種 • MEMM :遷移ごとの最大エントロピー CRF :可能な系列すべての最大エントロピ ー • 可能な系列→指数的 DP (前向き・後ろ向きアルゴリズム)で 期待値計算 8
  9. 9. Linear-Chain CRF(2) • Forward-backward Score を計算 → Edge の期待値を計算 (Normalization factor: Forward score で ) a a' b b' [BOS] [EOS] 3 0.5 3 4 2 4 2 1 F:3 F:0.5 F:10 F:14 F:34=Z B :1 B :2 B :1 B :10 B :8 F:1 B :34=Z (3×4×1)/34 9
  10. 10. 高次 Linear-Chain CRF • Linear-Chain CRF は一般には 1 次 • これを単純に高次に拡張→計算量の問題 – Feature 数が指数的に増加 – パス数も指数的に増加 10
  11. 11. 計算量の問題:素性数 (1) • 例えば、 3 次の場合 : – ある feature function : f (X, yi-3, yi-2, yi-1, yi) • X について条件を設定 ( ex: 大文字で始まる) • X についての条件がなければ、純粋な遷移素性 (transition feature) – すべてのラベルの組み合わせについて素性関数 を生成 11
  12. 12. 計算量の問題:素性数 (2) • ラベル L:[L1, L2] 、 f(xi) を x に関する関数とすると f1(X, yi-3, yi-2, yi-1, yi)=1 if yi-3 = L1 and yi-2 = L1 and yi-1 = L1 and yi = L1 and f(xi) f2(X, yi-3, yi-2, yi-1, yi)=1 if yi-3 = L2 and yi-2 = L1 and yi-1 = L1 and yi = L1 and f(xi) f1(X, yi-3, yi-2, yi-1, yi)=1 if yi-3 = L1 and yi-2 = L2 and yi-1 = L1 and yi = L1 and f(xi) f2(X, yi-3, yi-2, yi-1, yi)=1 if yi-3 = L2 and yi-2 = L2 and yi-1 = L1 and yi = L1 and f(xi) … ( 2^4 通り)→次数に対して指数的に増加 12
  13. 13. 計算量の問題:パス数 (1) • 前向き・後ろ向きアルゴリズム – 動的計画法 – 1 次の Linear-Chain CRF の場合で Θ(L2 )[L: ラベル 数 ] • 次数が上がるとラベル数倍 – すべての可能なラベルの組み合わせについて 計算 13
  14. 14. 計算量の問題:パス数 (2) • 3 次の場合: 14 L1L1L1 L2L1L1 L1L2L1 L2L2L1 L1L1L2 L2L1L2 L1L2L2 L2L2L2 L1L1L1 L2L1L1 L1L2L1 L2L2L1 L1L1L2 L2L1L2 L1L2L2 L2L2L2 L1L1L1 L2L1L1 L1L2L1 L2L2L1 L1L1L2 L2L1L2 L1L2L2 L2L2L2 L1L1L1 L2L1L1 L1L2L1 L2L2L1 L1L1L2 L2L1L2 L1L2L2 L2L2L2 … 23 通りのノード、 24 通りのパス(指数的)
  15. 15. 提案手法: 可変長オーダー Linear-Chain CRF • Feature function のオーダーを限定しない • 訓練データ中で アクティブになる feature に 限定 (sparse feature set) • 訓練データ中に出現するパターン数は訓練デ ータのサイズに限定される(オーダーが増え ても exponentially には増加しない) 15
  16. 16. Sparse Feature Set • FlexCRF(Phan et al. 2005) 、 CRFSuite(Okazaki, 2007) で実装 (optional in CRFSuite) – Training data 中でアクティブになった feature のみを使用 – Feature 数を大幅に減らすことが可能 – 計算量 : 半分以下 Model size: 15% 程度 – Tagging accuracy: 96.06%(dense) vs. 96.00%(sparse) (CRFSuite, CoNLL 2000 chunking shared task) 16
  17. 17. Feature function の生成方法 • すべての f(X, Y) のパターンを生成するの ではなく、 訓練データ中で出現するラベ ル列があった時のみ素性関数を生成する (次数は可変) – f(X) の形でそれぞれの位置に対する「属性 (attributes) 」を与え、訓練データ中でその属 性に先行するラベル列を記録、足切り(出現 回数・頻度等)を行った上で f(X, Y) の形の素 性関数を生成する 17
  18. 18. Feature function の生成(例) • f(X) = UC(xi) = 1 if xi begins with upper case • 訓練データ : ... nonexective/JJ director/NN Nov./NNP ... ... chairman/NN of/IN Consolidated/NNP ... ... that/WDT makes/VBZ Kent/NNP ... ↓ f1(X, Y) = 1 if UC(xi) and yi = NNP f2(X, Y) = 1 if UC(xi) and yi = NNP and yi-1 = NN f3(X, Y) = 1 if UC(xi) and yi = NNP and yi-1 = IN ... 18
  19. 19. 可変長前向き・後ろ向きアルゴリ ズム • 前向き・後ろ向きアルゴリズムでは、す べての 可能な組み合わせを考える • 出現した並びのみを考える→特別なアルゴ リズムが必要 19
  20. 20. 可変長前向き・後ろ向き (1) • すべての素性関数について、その重みに 対して exp を求めておく→指数重み (重複計算を避ける) 20
  21. 21. デモ (1)-features 21 属性 (attribute) "" であれば無条 件 ラベル列 (label sequence) 長さ 1: 状態素性 長さ 2 以上 : 遷移素性 重みの指数を取ったもの exp of weight
  22. 22. 可変長前向き・後ろ向き (2) • 一般的な前向き・後ろ向きアルゴリズム – 状態素性はノード、遷移素性はエッジ • 提案手法 – 状態・遷移素性ともにノードのように扱う→ パス • 今注目している位置の属性 (attributes) に対する feature function を列挙、同じラベル列を持つ feature の指数重みをかけ合わせ、まとめる – 次の列で終わるパスから、そのラベル列の末 尾を削除したもの→チェックポイント • 次の位置のために累積スコアを計算 22
  23. 23. デモ (2)- パスとチェックポイン ト 23 ラベル付け対 象 属性列 (attributes) パス チェックポイ ント パスの指数重み パスのスコ ア
  24. 24. 可変長前向き・後ろ向き (3) • その列のパスとチェックポイントをソー ト (後ろから見たラベル順、一方がもう一 方を含む場合は長いほうから、パスとチ ェックポイントが同じラベル列を持つ場 合はパスが先) 24
  25. 25. 可変長前向き・後ろ向き (4) • ソートした順の逆順(短い→長い)にパス のみをたどる • 短いパスの倍率(素性関数の指数重み) をそれを含む長いパスにかけ合わせる (長いパスでは短いパスの素性もアクテ ィブになっているので) 25
  26. 26. 可変長前向き・後ろ向き (4)- 続 き [ 短いパスの倍率を長いパスにかける手続き ] • 短いものから順にパスをチェック – 前のパスを完全に含む場合、スタックに前のパ スの長さと前のパスまでの倍率をプッシュ – そうでなければ、前のパスとの共通部分の長さ までスタックをポップ – 今のパスの倍率に、スタックの一番上の倍率を かける (計算量:パスの数のオーダー) 26
  27. 27. 可変長前向き・後ろ向き (5) • パスとチェックポイントを正順(長い→短 い)にたどる • パスであれば : – 今注目している列のラベルを削除して、それ をキーとして前列のノードのスコアを取得 – そのパスを含む、より長いパスによってスコ アが使われている場合はそれを差し引く – 差し引いた残りのスコアにパスの倍率をかけ て、パスのスコアとして記録、現在のスコア に加算 27
  28. 28. 可変長前向き・後ろ向き (5)- 続 き • チェックポイントであれば : – そのチェックポイントを含む、より長いチェ ックポイントのスコアを累積したものに現在 のスコアを加算、チェックポイントに対応す るスコアとして記録 • 手順 (3),(4) を末尾まで行う • 末尾チェックポイントのスコア=正規化 係数 (ここまで前向き) 28
  29. 29. 可変長前向き・後ろ向き (6) (ここから後ろ向き、末尾から先頭に) • 今注目している列のチェックポイントと パスをソートの逆順(短い→長い)にたど る • チェックポイントであれば : – そのチェックポイントのラベル列をキーとし て、後列で記録されたスコアを取得、現在の スコアに加算 29
  30. 30. 可変長前向き・後ろ向き (6)- 続 き • パスであれば : – 前向きで求めたスコアに現在のスコアをかけ、 パスのスコアを上書き – 現在のスコアにパスの倍率をかけたものを求め る。それから、そのパスに含まれる、より短い パスに対応するスコアを差し引いて、今注目し ている列のラベルを削除したものをキーとする スコアに加算 30
  31. 31. 可変長前向き・後ろ向き (7) • ソートした順(長い→短い)にパスのみを たどる • 短いパスに対して、それを含む、より長い パスのスコアを足し込む (長いパスでは短いパスの素性もアクティ ブになっているので) • そのスコアを正規化係数で割ったものが、 そのパス(素性関数)の期待値 31
  32. 32. 可変長前向き・後ろ向き (8) • 全データに対してこれを行い、それぞれの 素性関数の期待値を求め、訓練データ中で の出現回数と合わせて重みを更新 ( 一般的な CRF でのパラメータ更新 ) • 更新された重みに基づき、可変長前向き・ 後ろ向きアルゴリズムで期待値を再計算 →収束するまで繰り返す 32
  33. 33. 可変長前向き・後ろ向き:まと め • 動的計画法により、各パスへの前向き・ 後ろ向きスコアを計算 • 累積スコアの差分を取っていくことで、 パスの数に対して線形オーダーで計算可 能 • TODO: 帰納法により定式化 33
  34. 34. デコード • 可変長前向きアルゴリズムと同様にパスと チェックポイントを作る • チェックポイントでは、前のチェックポイ ントからの最大スコアのみを記録する • パスでは、対応する前のチェックポイント と、それを含むより長いチェックポイント の中で使用済みでないものから最大スコア を求め、パスの指数重みをかけてスコアを 求める (使用済みフラグは、現在位置のラベルが34
  35. 35. 考察 • 実際の応用では定数項の部分も重要 – 実装によって大きな差がある – 単純なアルゴリズムのほうが高速化しやすい – 高次の素性が「効いてくる」タスクでないと 優位性を得ることが難しい • 高次の素性がスパースであるとは限らな い – 計算量はアクティブになる素性関数の数の オーダー – 訓練データのサイズが上限になるが、 35

×