数理言語情報論 第 8 回

42
数数数数数数数 数数数数数数数 8 8 数数数数数数数数数数 数数 数数 2009 数 11 数 25 数 1

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

Transcript of 数理言語情報論 第 8 回

Page 1: 数理言語情報論 第 8 回

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

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

2009 年 11 月 25 日

1

Page 2: 数理言語情報論 第 8 回

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

フルパージング (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

Page 3: 数理言語情報論 第 8 回

CFGCFG パージングパージング

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

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

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

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

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

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

3

Page 4: 数理言語情報論 第 8 回

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

4

Page 5: 数理言語情報論 第 8 回

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

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

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

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

一般化 LR 法 (generalized LR parsing)

5

Page 6: 数理言語情報論 第 8 回

CKYCKY 法法

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

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

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

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

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

特に問題は無い6

Page 7: 数理言語情報論 第 8 回

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

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

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

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

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

7

Page 8: 数理言語情報論 第 8 回

準備準備 : 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

Page 9: 数理言語情報論 第 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

Page 10: 数理言語情報論 第 8 回

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

Page 11: 数理言語情報論 第 8 回

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

Page 12: 数理言語情報論 第 8 回

ルール適用とルール適用と 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

Page 13: 数理言語情報論 第 8 回

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

Page 14: 数理言語情報論 第 8 回

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

Page 15: 数理言語情報論 第 8 回

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

Page 16: 数理言語情報論 第 8 回

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

Page 17: 数理言語情報論 第 8 回

CKYCKY 法法 : : 計算量計算量

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

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

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

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

17

Page 18: 数理言語情報論 第 8 回

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

Page 19: 数理言語情報論 第 8 回

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

Page 20: 数理言語情報論 第 8 回

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

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

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

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

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

20

Page 21: 数理言語情報論 第 8 回

チャート法チャート法

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

21

Page 22: 数理言語情報論 第 8 回

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

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

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

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

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

22

Page 23: 数理言語情報論 第 8 回

チャート法チャート法 : : 基本的な考え方基本的な考え方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

Page 24: 数理言語情報論 第 8 回

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

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

Page 25: 数理言語情報論 第 8 回

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

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

i j

Y → X1 X2 X3 ・

i j

Y

new!

25

Page 26: 数理言語情報論 第 8 回

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

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

Page 27: 数理言語情報論 第 8 回

左隅解析法左隅解析法

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

27

Page 28: 数理言語情報論 第 8 回

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

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

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

28

Page 29: 数理言語情報論 第 8 回

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

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

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

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

29

Page 30: 数理言語情報論 第 8 回

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

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

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

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

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

XCBAY→ A B C X

Y

30

Page 31: 数理言語情報論 第 8 回

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

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

Page 32: 数理言語情報論 第 8 回

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

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

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

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

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

32

Page 33: 数理言語情報論 第 8 回

DECODINGDECODING

33

Page 34: 数理言語情報論 第 8 回

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

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

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

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

34

Page 35: 数理言語情報論 第 8 回

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

ある 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

Page 36: 数理言語情報論 第 8 回

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

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

Page 37: 数理言語情報論 第 8 回

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

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

Page 38: 数理言語情報論 第 8 回

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

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

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

38

Page 39: 数理言語情報論 第 8 回

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

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

Page 40: 数理言語情報論 第 8 回

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

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

Page 41: 数理言語情報論 第 8 回

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

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

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

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

41

Page 42: 数理言語情報論 第 8 回

まとめまとめ

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

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

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

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

42