数理言語情報論 第 8 回

Preview:

DESCRIPTION

数理言語情報論 第 8 回. 2009 年 11 月 25 日. 数理言語情報学研究室 講師 二宮 崇. 今日の講義の予定. フルパージング (full parsing) デコーディング (decoding) 教科書 北研二 ( 著 ) 辻井潤一 ( 編 ) 言語と計算 4 確率的言語モデル 東大出版会 C. D. Manning & Hinrich Schütze “FOUNDATIONS OF STATISTICAL NATURAL LANGUAGE PROCESSING” MIT Press, 1999 - PowerPoint PPT Presentation

Citation preview

数理言語情報論 第数理言語情報論 第 88 回回

数理言語情報学研究室 講師 二宮 崇

2009 年 11 月 25 日

1

今日の講義の予定今日の講義の予定

フルパージング (full parsing) デコーディング (decoding) 教科書

北研二 ( 著 ) 辻井潤一 ( 編 ) 言語と計算 4 確率的言語モデル 東大出版会

C. D. Manning & Hinrich Schütze “FOUNDATIONS OF STATISTICAL NATURAL LANGUAGE PROCESSING” MIT Press, 1999

D. Jurafsky, J. H. Martin, A. Kehler, K.V. Linden & N. Ward “Speech and Language Processing: An Introduction to Natural Language Processing, Computational Linguistics, and Speech Recognition” Prentice Hall Series in Artificial Intelligence, 2000 2

CFGCFG パージングパージング

フルパージング full parsing, brute-force search, exhaustive

search, parsing ある文 s が与えられた時、文法 G によって導出できる

全ての構文木を導出する構文解析 何のために?

フルパージングした後に、確率計算を行って、最も良い構文木を選択する

パラメータ推定の際に構文木の候補集合が必要(学習方法によっては必要ない)

デコーディング inference, parsing, decoding 構文木の確率を計算するプロセス 最大確率の構文木や n-best の構文木を求める

3

フルパージングフルパージング

4

フルパージングのアルゴリズムフルパージングのアルゴリズム

トップダウン型アーリー法 (earley parsing algorithm)

ボトムアップ型CKY 法 (CKY parsing algorithm, CYK 法と

もいう )チャート法 (chart parsing algorithm)左隅解析法 (left-corner parsing algorithm)

一般化 LR 法 (generalized LR parsing)

5

CKYCKY 法法

Cocke, Kasami, Younger により提案され、それぞれの頭文字をとって、 CKY もしくは CYK 構文解析アルゴリズムと呼ばれる

多くのパーザーで用いられている 簡単 効率が良い デコーディングと相性が良い

文法規則はバイナリルールかユーナリールールのみ バイナリールール : 書換規則の右側の要素が二つしかない

ルール ユーナリールール : 書換規則の右側の要素が一つしかない

ルール CFG ならチョムスキー標準形に変形 HPSG 、 CCG ではバイナリールールを想定しているので

特に問題は無い6

準備準備 : : 書換規則と位置書換規則と位置

書換規則は次の 3 つを想定A → B C ( バイナリールール )A → B ( ユーナリールール )A → w ( 辞書ルール )

位置文 w1,w2,...,wn が与えられた時、

単語 wiの位置 : <i-1, i>

句 wi,...,wjの位置 : <i-1, j>

7

準備準備 : CKY: CKY テーブル(チャーテーブル(チャート)ト)

Si,j: wi+1,..., wj に対応する句の非終端記号の集合

S0,1S0,1 S1,2S1,2 S2,3S2,3 S3,4S3,4

S0,2S0,2 S1,3S1,3 S2,4S2,4

S0,3S0,3 S1,4S1,4

S0,4S0,4

S4,5S4,5 S5,6S5,6

S3,5S3,5 S4,6S4,6

S2,5S2,5 S3,6S3,6

S1,5S1,5 S2,6S2,6

S0,5S0,5 S1,6S1,6

S0,6S0,6

w1 w2 w3 w4 w5 w60 1 2 3 4 5 6

8

CKYCKY 法法 : : 基本的なアイデア基本的なアイデア

目的 : S0, n を計算Si,j は次の S から計算できる

Si, i+1 と Si+1, j

Si, i+2 と Si+2, j

....Si, j-1 と Sj-1, j

9

CKYCKY 法法 : : 基本的なアイデア基本的なアイデア

Z → X Y

w1, w2, w3, w4

w1, w2, w3, w4

w1, w2, w3, w4

w1, w2, w3, w4

X

Y

Z

X Y

X

Y

10

CKYCKY 法法

矢印の順で全ての Si,j が求まる

S0,1S0,1 S1,2S1,2 S2,3S2,3 S3,4S3,4

S0,2S0,2 S1,3S1,3 S2,4S2,4

S0,3S0,3 S1,4S1,4

S0,4S0,4

S4,5S4,5 S5,6S5,6

S3,5S3,5 S4,6S4,6

S2,5S2,5 S3,6S3,6

S1,5S1,5 S2,6S2,6

S0,5S0,5 S1,6S1,6

S0,6S0,6

w1 w2 w3 w4 w5 w60 1 2 3 4 5 6

スタートスタート

11

ルール適用とルール適用と SSi,ji,j の求め方の求め方

G(X, Y) = {Z|∃p∈P.p=(Z→ X Y)}X Y に対する全ての親を返す関数

X, Y: 非終端記号P: 書換規則の集合

Si,jを求めるアルゴリズム

for k = i+1 to j-1 forall X∈ Si,k

forall Y ∈ Sk,j

Si,j := Si,j ∪ G(X, Y)

12

CKYCKY 法法 : S: Si,ji,j

例 : S1,5 に対し k=2,3,4

S0,1 S1,2S1,2 S2,3 S3,4

S0,2 S1,3S1,3 S2,4

S0,3 S1,4S1,4

S0,4

S4,5S4,5 S5,6

S3,5S3,5 S4,6

S2,5S2,5 S3,6

S1,5S1,5 S2,6

S0,5 S1,6

S0,6

w1 w2 w3 w4 w5 w60 1 2 3 4 5 6

13

CKYCKY 法法

0,10,1 1,21,2 2,32,3 3,43,4

0,20,2 1,31,3 2,42,4

0,30,3 1,41,4

0,40,4

4,54,5 5,65,6

3,53,5 4,64,6

2,52,5 3,63,6

1,51,5 2,62,6

0,50,5 1,61,6

0,60,6

John sees Mary with a telescope0 1 2 3 4 5 6

文法

S → NP VP

VP → VP PP

VP → V NP

VP → V

NP → NP PP

NP → John

NP → Mary

PP → P NP

P → with

NP → DT NP

DT → a

NP → telescope

V → sees

V → runs

NP NP NPDTPV

VP NP

PP

NP

VP,VP

S

同じ記号が複数でた場合は、一つにまとめて構わない (factoring, ファクタリング )この後のステップでの処理は全て同じになるはずだから。

同じ記号が複数でた場合は、一つにまとめて構わない (factoring, ファクタリング )この後のステップでの処理は全て同じになるはずだから。

14

CKYCKY 法法

0,10,1 1,21,2 2,32,3 3,43,4

0,20,2 1,31,3 2,42,4

0,30,3 1,41,4

0,40,4

4,54,5 5,65,6

3,53,5 4,64,6

2,52,5 3,63,6

1,51,5 2,62,6

0,50,5 1,61,6

0,60,6

John sees Mary with a telescope0 1 2 3 4 5 6

文法

S → NP VP

VP → VP PP

VP → V NP

VP → V

NP → NP PP

NP → John

NP → Mary

PP → P NP

P → with

NP → DT NP

DT → a

NP → telescope

V → sees

V → runs

NP NP NPDTPV

VP NP

PP

NP

VP

S

S

15

CKYCKY 法法 : : アルゴリズムアルゴリズム

for j = 1 to n Sj-1,j := L(wj) ## L は単語 w に対する非終端記

号の集合を返す関数for l = 2 to n for i = 0 to n – l j := i + l; for k = i+1 to j - 1 forall X∈Si,k forall Y∈Sk,j

Si,j := Si,j ∪ G(X, Y) Si,j := Si,j ∪ U(Si,j) ## U はユーナリールール

を適用して得られる非終端記号集合16

CKYCKY 法法 : : 計算量計算量

最悪時間計算量 (worst-case time complexity)O(n3)

n は文長アルゴリズムより明らか

非終端記号数を |VN| とすると、 O(n3|VN|2)ファクタリングのおかげで計算量が指数爆発

していないということに注意!

17

CKYCKY 法法 : : 計算順序計算順序

次の順番で計算しても ok ( 左隅 )

S0,1S0,1 S1,2S1,2 S2,3S2,3 S3,4S3,4

S0,2S0,2 S1,3S1,3 S2,4S2,4

S0,3S0,3 S1,4S1,4

S0,4S0,4

S4,5S4,5 S5,6S5,6

S3,5S3,5 S4,6S4,6

S2,5S2,5 S3,6S3,6

S1,5S1,5 S2,6S2,6

S0,5S0,5 S1,6S1,6

S0,6S0,6

w1 w2 w3 w4 w5 w60 1 2 3 4 5 6

スタートスタート

18

CKYCKY 法法 : : 計算順序計算順序

次の順番で計算しても ok ( 右隅 )

S0,1S0,1 S1,2S1,2 S2,3S2,3 S3,4S3,4

S0,2S0,2 S1,3S1,3 S2,4S2,4

S0,3S0,3 S1,4S1,4

S0,4S0,4

S4,5S4,5 S5,6S5,6

S3,5S3,5 S4,6S4,6

S2,5S2,5 S3,6S3,6

S1,5S1,5 S2,6S2,6

S0,5S0,5 S1,6S1,6

S0,6S0,6

w1 w2 w3 w4 w5 w60 1 2 3 4 5 6

スタートスタート

19

CKYCKY 法法 : : データ構造データ構造

各 CKY セル Si,j の内容はエッジの集合エッジ

エッジ ID非終端記号リンクの集合

リンク : このエッジがどのエッジから生成されたか記録したデータ構造

バイナリールールならエッジ ID のペア ユーナリールールならエッジ ID 辞書ルールなら単語 ID

20

チャート法チャート法

n分岐の書換規則を扱える最も一般的な考え方のボトムアップ型パージングアルゴリズムCKYは2分岐の書換規則のみ

21

チャート法チャート法 : : データ構造データ構造

エッジ活性エッジ <i, j, Y → X1 ... Xk・ Xk+1 ... Xn>

書換規則の途中にドットをいれたもの X1 ... Xkが解析済みということを意味する

エッジの左側の位置 (i) と右側の位置 (j) 右側の位置はドットまでの位置のこと

不活性エッジ <i, j, Y>エッジの左の位置 (i) と右の位置 (j)非終端記号

22

チャート法チャート法 : : 基本的な考え方基本的な考え方Shift-1: 新しい不活性エッジ <i, j, X> が生成された時、

左側にY→ ...・X... の形の活性エッジがあればY→ ...X・ ... の活性エッジを生成

i j

XY → X1 X2 ・X X3

i j

XY → X1 X2 ・X X3

Y → X1 X2X ・ X3

new!

new!

23

チャート法チャート法 : : 基本的な考え方基本的な考え方

Shift-2: 新しい活性エッジ <i, j, Y→ ...・X...> が生成された時 , 右側に接する全ての不活性エッジ X に対し、活性エッジを生成

i j

XY → X1 ・X X2 X3

i j

XY → X1 ・X X2 X3

Y → X1X ・ X2 X3

new!

new!

24

チャート法チャート法 : : 基本的な考え方基本的な考え方Reduce: Shift-1, Shift-2の結果新しい活性エッジ<i, j, Y→ ...X・> が生成された場

合不活性エッジ<i, j, Y>に置き換える

i j

Y → X1 X2 X3 ・

i j

Y

new!

25

チャート法チャート法 : : アルゴリズムアルゴリズム

for j = 1 to n Queue := Queue ∪ L(wj) ## 不活性エッジ <j-1, j, wj に対する非終端記号 > の

集合 Chart := Chart ∪ L(wj) ∪ Y→β∈P<j-1, j-1, Y→・ β>while(Queue is not empty) E := shift(Queue) ##E は Queue の先頭 edges := {}; reduced_edges := {} if(E is 不活性エッジ <i, j, X>) forall F∈Chart s.t. F=<h, i, Y→ ...・ X...> edges := edges ∪ <h, j, Y→ ...X・ ...> if(E is 活性エッジ <i, j, Y→ ...・ X...>) forall F∈Chart s.t. F=<j, k, X> edges := edges ∪ <i, k, Y→ ...X・ ...> forall E’ ∈ edges if(E’ is <x, y, Y→β ・>) reduced_edges := reduced_edges∪<x, y, Y> else reduced_edges := reduced_edges ∪ E’ Queue := Queue ∪ reduced_edges; Chart := Chart ∪ reduced_edges

チャートとキューにエッジを格納するときにファクタリングをする

チャートとキューにエッジを格納するときにファクタリングをする

26

左隅解析法左隅解析法

チャート法をより効率的にしたアルゴリズム活性エッジをチャートに残さなくても ok右側にエッジがないので、左側のみ解析の対象とすれば良い ( アルゴリズムが簡単 )

27

左隅解析法左隅解析法 : : 基本的な考え方基本的な考え方

left-to-rightバイナリールールに限れば、CKYの左隅解析と同じ

w1, w2, w3,........,wi-1,wi,........., wn

28

左隅解析法左隅解析法 : : 基本的な考え方 基本的な考え方 (1)(1)

w1,..,wi-1 までは解析済みで、不活性エッジしか存在しないと考える

<i-1, i, l∈L(wi)> を新しい不活性エッジとして加える

w1, w2, w3,........,wi-1,wi,........., wn

29

左隅解析法左隅解析法 : : 基本的な考え方 基本的な考え方 (2)(2)

新しく出来た不活性エッジ <_, i, X> に対し、Y→ X1....XkX という形の全ての規則に対し、 X

と連接する Xk,..X1 のエッジを左に向かって探す見つかったら新しく不活性エッジ <_, i, Y> を生成

新しく出来たエッジの右端は常に iなので、右側にエッジは存在しない⇒右側を気にしなくてもよい

........,wi-1,wi,.........

XCBAY→ A B C X

Y

30

左隅解析法左隅解析法 : : アルゴリズムアルゴリズム

search-left(Y, β(=X1...Xk), i,j) if( β is empty ) edges := edges ∪ <i, j, Y> forall <h,i,Xk> ∈ Chart search-left(Y, X1...Xk-1, h, j) left-corner-parsing(w1,...,wn) for j = 1 to n Queue := L(wj) ## <j-1, j, wj の非終端記号 > while(Queue is not empty) <i, j, X> := shift(Queue) forall (Y→ X1 ... Xk X) ∈ P edges := {} search-left(Y, X1...Xk, i, j) Chart := Chart ∪ edges; Queue := Queue ∪ edges

チャートにエッジを格納するときにファクタリングをする

チャートにエッジを格納するときにファクタリングをする

31

フルパージングまとめフルパージングまとめ

動的計画法 (dynamic programming)チャートに部分構文木を残しているため、一度計

算された部分構文木は二度計算されない同じ位置の同じ非終端記号を一つにまとめる

( ファクタリング )同じ計算を 2 回以上しないようにするため

出力は畳みこまれた構文木集合 (packed forest)AND, OR で表現されるグラフ構造

32

DECODINGDECODING

33

ビタビアルゴリズム ビタビアルゴリズム (viterbi (viterbi algorithm)algorithm)

フルパージングを行うと同時に構文木の確率を計算する手法各エッジやリンクに部分木の確率値を格納ファクタリングの際には最大確率のリンクのみ残

すc.f. max の代わりに sum を求めると、全ての構文木の確

率の和が求まる最適解効率は悪い

34

ビタビアルゴリズムビタビアルゴリズム :: 基本的なアイデ基本的なアイデアア

ある i, j に対し、

を満たす k, Z が存在するなら、

35

jiXYZYXSpYSpXjkik

SppZjkYkiX

,,,,,: ,,

max,

XYZSpYSpXjki jkYkiX ,,,,, ,,

w1, w2, w3, w4

w1, w2, w3, w4

w1, w2, w3, w4

w1, w2, w3, w4

X

Y

Z

X Y

X

Y

pXpYθZ→ XY

pXpYθZ→ XY

pXpYθZ→ XY

ビタビアルゴリズムビタビアルゴリズム

Si,j: <X, p> の集合X: 非終端記号p: 部分木の確率

Si,j の求め方 (CKY 法の場合 )

for k = i+1 to j-1 forall <X, pX> ∈ Si,k

forall <Y, pY> ∈ Sk,j

forall Z ∈ G(X, Y) Si,j := Si,j ∪ <Z, pX×pY×θZ→ X Y>

ファクタリング( 同じ非終端記号が出現した場合の畳込み ) の際には確率の高い方を選ぶ

ファクタリング( 同じ非終端記号が出現した場合の畳込み ) の際には確率の高い方を選ぶ

36

ビタビアルゴリズムビタビアルゴリズム

0,10,1 1,21,2 2,32,3 3,43,4

0,20,2 1,31,3 2,42,4

0,30,3 1,41,4

0,40,4

4,54,5 5,65,6

3,53,5 4,64,6

2,52,5 3,63,6

1,51,5 2,62,6

0,50,5 1,61,6

0,60,6

John sees Mary with a telescope0 1 2 3 4 5 6

<NP,0.1> <NP, 0.2> <NP, 0.2><DT, 1.0><P, 1.0><V, 0.5>

<VP, 0.008> <NP, 0.05>

<PP, 0.008>

<NP, 0.00016>

<VP,0.03><VP, 0.008>

<S, 0.0008>

<VP, 0.03><VP, 0.008>をファクタリングする際は<VP, 0.03>と確率値の高い方を残す

<VP, 0.03><VP, 0.008>をファクタリングする際は<VP, 0.03>と確率値の高い方を残す

0.5×0.2×θVP→ V NP

=0.01×0.8=0.008

0.5×0.2×θVP→ V NP

=0.01×0.8=0.008

37

ビームサーチパージングビームサーチパージング(beam search parsing)(beam search parsing)

ビタビアルゴリズムで解析する途中で、確率値の低いエッジを除去する

最適解は保障されない効率は良い

38

ビームサーチビームサーチ

2つの刈り方上位 N 個のみ残すトップの確率 ×W以上の確率のみ残す

<VP,0.03><NP, 0.002><S, 0.001><NP-S, 0.0005><NP-O, 0.0002><DT, 0.000001><WH, 0.00000083>....

上位 N 個のみ残す

0.03×W 以上のエッジのみ残す

N や 1-W のことをビーム幅と呼ぶ

Si,j

sort

39

ビームサーチビームサーチ

N: 数による閾値 W: 幅による閾値 Si,j の求め方 (CKY 法の場合 )for k = i+1 to j-1 forall <X, pX> ∈ Si,k

forall <Y, pY> ∈ Sk,j

forall Z ∈ G(X, Y) Si,j := Si,j ∪ <Z, pX×pY×θZ→ X Y>sort Si,j according to its p (Si,j=<X1, p1>...<XM,

pM> とする )remove <XN+1, pN+1>...<XM, pM>remove <X, p> ∈ Si,j s.t. p < p1×W 40

イテレィティブパージングイテレィティブパージング

ビームサーチの問題点ビーム幅が狭いと解が得られないビーム幅が広いと効率が悪い

イテレィティブパージング (iterative parsing)初めは狭いビーム幅で解析解が出なければビーム幅を広げて再解析

PCFG の場合はチャートを空にして再解析確率付HPSG の場合はチャートのデータを再利用

41

まとめまとめ

フルパージングCKY 法チャート法左隅解析法

デコーディングビタビアルゴリズムビームサーチイテレィティブパージング

次回は、 12/2(水 ) 16:30~ EM アルゴリズムと内側外側アルゴリズム

講義資料 http://www.r.dl.itc.u-tokyo.ac.jp/~ninomi/mistH21w/cl/

42

Recommended