19
N-gram モモモ モモモモモモモモ Back-off smoothing Good-Turing モモモ N-gram モモモモモモモ

N-gram モデル 未出現事象の扱い Back-off smoothing Good-Turing の推定

  • Upload
    justis

  • View
    91

  • Download
    0

Embed Size (px)

DESCRIPTION

N-gram とスムージング. N-gram モデル 未出現事象の扱い Back-off smoothing Good-Turing の推定. 文字列の統計的モデル. 1次元文字列 1次元単語列  とりあえず単語列の場合として話を進める 単語列 w 1 n の生起確率を各単語の条件付確率でモデル化. 各項の w n の条件付確率が文字列のモデル。これが直前の N 単語に依存するモデルを N-gram モデルという. Bag of Words モデル. - PowerPoint PPT Presentation

Citation preview

Page 1: N-gram モデル 未出現事象の扱い Back-off  smoothing Good-Turing の推定

N-gram モデル未出現事象の扱い

Back-off smoothing

Good-Turing の推定

N-gram とスムージング

Page 2: N-gram モデル 未出現事象の扱い Back-off  smoothing Good-Turing の推定

文字列の統計的モデル

1次元文字列 1次元単語列 

とりあえず単語列の場合として話を進める単語列 w1

n の生起確率を各単語の条件付確率でモデル化

nn CCCCC 1321

nn wwwww 1321

)|(),....,|()|()()( 112131211 n

nn wwPwwwPwwPwPwP

各項の wn の条件付確率が文字列のモデル。これが直前の N 単語に依存するモデルを N-gram モデルという

)|()|( 11

11

nNnn

nn wwPwwP

Page 3: N-gram モデル 未出現事象の扱い Back-off  smoothing Good-Turing の推定

1-gram モデルだと、言語モデルはP(wn)  すなわち、各単語の(コーパスにおける)生起確率だけで決まる。

大胆な近似だが、計算が容易で、計算量も少ない。

情報検索では基本的モデルとして使われる

Bag of Words モデル

Page 4: N-gram モデル 未出現事象の扱い Back-off  smoothing Good-Turing の推定

N グラム N グラムとは言語を特徴つける簡単な方法(言語モデル) ある言語単位(音素、文字、単語、品詞など)を選ぶ。その言語単位

の N 個連続をマルコフモデルで表したものを N グラム( N-gram) という。特に言語単位を陽に指定する場合、「言語単位名 N グラム」(例えば、単語2グラム)という。

単独の言語単位のモデルを unigram 、2個の連続を bigram 、3個の連続を trigram という。( zero-gram とは、全ての単語が等確率で生起するモデル)

異なり数を計算してみよう。   (1)英語の文字2グラムの総数   (2)日本語のモーラ2グラムの総数。     モーラ(拍)とは、ひらがな1文字同じ長さの音の単位。「ん」

「っ」「-」は 1 モーラ。     なお、音節 (syllable) とは、「(子音)(半母音)母音(モーラ音

素)」   (3)日本語の文字 2 グラムの総数   (4)日本語の単語 2 グラムの総数   (5)日本語の品詞 2 グラムの総数

Page 5: N-gram モデル 未出現事象の扱い Back-off  smoothing Good-Turing の推定

N グラムの計算 ある言語における N グラムの種類の総数はとても大きすぎて計算で

きない場合が多い。実際のテキストにおいて出現した N グラムによって言語(の部分集合)を特徴つける。そこで、テキストにおけるN グラムの計算法が必要。

あ り が と う …… う…

とう…がとう…りがとう…ありがとう…

辞書式に整列

1: ありがとう…2: う…3: がとう…4: とう…5: りがとう…

整列したポインタの配列

整列したポインタの配列をサフィックスアレイという。先頭部分に同じ文字列を持つものが隣接ないし近接する。

近所を見回せば、同じ N グラムが何個あるかという統計を簡単に計算できる。

Page 6: N-gram モデル 未出現事象の扱い Back-off  smoothing Good-Turing の推定

KWIC ( Key Word In Context )

ある言語表現がどのような文脈に現れるかを、与えられたコーパスにおいて列挙したもの。

辞書式に整列したテキストへのポインタの配列( N グラムの計算に利用するもの)を使えば、容易に抽出できる。

N グラムの計算 のページの「 N グラム」に対する KWIC は以下の通り。

-----------------------------------------------------------------------------------------------

  前の文脈          Key Word 後の文脈------------------------------------------------------------------------------------------------

ある言語における N グラム の総数はとても大きすぎて

ストにおいて出現した N グラム によって言語(の部分集合)

テキストにおける N グラム の計算法が必要。------------------------------------------------------------------------------------------------ Key Word がどのような単語や表現と共起するかという情報を得られ

る。共起情報は自然言語処理において必須の情報。

Page 7: N-gram モデル 未出現事象の扱い Back-off  smoothing Good-Turing の推定

Nグラムの確率モデル

N グラムは N 言語単位の連鎖のモデルだが、言語単位としては、文字、単語、品詞などなんでも採用できる。

まず、 N 言語単位の連鎖は、               、ただし C はコーパス中の頻度 .

コーパスの文を文字のN重マルコフ過程つまり直前の N 文字から次に現れる文字を予測するモデルにしたい。一般に N 重マルコフ過程とは、現在の状態が N 個前の入力に依存してきまる確率プロセス

つまり、                   である。

これは条件つき確率で

)...

)...)...|

1-in-i

i1-in-i1-in-ii wC(w

wwC(wwwp(w

)....wwC(w n21

)...| 1-in-ii wwp(w

Page 8: N-gram モデル 未出現事象の扱い Back-off  smoothing Good-Turing の推定

Nグラムの生起確率を求める その1

最尤推定法  文字のN -1 重マルコフ過程

  相対頻度 C からNグラムの生起確率を推定 Nが大きいと信頼性の高いNグラム推定ができない。 コーパスにおいては相対頻度が0のNグラムがたく

さん現れる。(データスパースネス問題) 加算法:  単に分母分子に適当な数を足す。

分子が0の場合は単に δ を分子とする。簡単だがあまり精度がよくない。

Vはコーパス中の異なり語数

)w...C(w

)ww...C(w)w...w|p(w

1-n1

n1-n11-n1n

VN

Nwhere

VN

)w...wC(w

VN

)w...wC(w)...w|wP(w nn-11nn-11

n-11n

1)1(

Page 9: N-gram モデル 未出現事象の扱い Back-off  smoothing Good-Turing の推定

Back-off smoothing (元データの頻度)

実際に出現した単語 (8個)

出現していないが、これから出現する可能性がある単語 (5個)

0

1

2

3

4

5

6

7

8

9

1 2 3 4 5 6 7 8 9 10 11 12 13

1系列

Page 10: N-gram モデル 未出現事象の扱い Back-off  smoothing Good-Turing の推定

各単語の頻度に δ (=1)を加算

0

1

2

3

4

5

6

7

8

9

10

1 2 3 4 5 6 7 8 9 10 11 12 13

2系列1系列

実際に出現した単語 (8個)

出現していないが、これから出現する可能性がある単語 (5個)

Page 11: N-gram モデル 未出現事象の扱い Back-off  smoothing Good-Turing の推定

Back-off smoothing (確率を計算しなおす)

0

1

2

3

4

5

6

7

8

9

10

1 2 3 4 5 6 7 8 9 10 11 12 13

2系列1系列

0

0.05

0.1

0.15

0.2

0.25

0.3

1 2 3 4 5 6 7 8 9 10 11 12 13

1系列2系列

原データ

確率

Page 12: N-gram モデル 未出現事象の扱い Back-off  smoothing Good-Turing の推定

N-gram  を N-1-gram, N-2-gram で平滑化

(以下は N=3の場合で説明)

最適値を推定使ってで除けておいた部分をはコーパスで上の計算 ただし

,

0)wC(w if

)(w)V of C(all

)C(w

and 0)wwC(w if)C(w

)wC(w

0)wwC(w if)wC(w

)wwC(w

)ww|P(w i1-i

ii

i1-i2-i1-i

i1-i

i1-i2-i1-i2-i

i1-i2-i

2-i1-ii

otherwiseP

部分で最適値を推定いた算で使わずに除けておはコーパスから上の計 ただし

)w|(wP̂1 )wC(w

)wwC(w)ww|(wP̂ 1-ii

1-i2-i

i1-i2-i2-i1-ii

^ P の再帰的定義^ P の再帰的定義

Page 13: N-gram モデル 未出現事象の扱い Back-off  smoothing Good-Turing の推定

抽象化すると未出現事象の扱い

観測データ(教師データ)の数が十分に大きくない場合は、本来、出現する可能性のある事象が教師データに含まれないことがある。例:サイコロを 5 回振って教師データを作っても、

出ない目が必ず一つはある。例:新聞記事 10年分のテキストから単語の出現頻度

を計算しても、出現していない単語があるかもしれない。

本来、出現する可能性がある事象ではあるが、観測データに出現していないものの真の生起確率をどのように評価しておけばよいか?スムージングこれは、未知のデータを扱う場合に重要

Page 14: N-gram モデル 未出現事象の扱い Back-off  smoothing Good-Turing の推定

Good-Turing の推定

  語数 N のコーパス中で r 回出現する異なり単語数を nrとする。すると

  ここでコーパスにr回出現する単語wの頻度を次の式で推定するのが Good-Turing の推定 

注) r が最大のときは r+1 が定義できないので、 r*=r とするしかない。r   が小さいときが重要なので、これでもよいであろう。            

...3n2nnnrN 3210r

r

r

1r*

n

n)1r(r

単語の生起確率を求める場合のスムージング

Good-Turing の推定

Page 15: N-gram モデル 未出現事象の扱い Back-off  smoothing Good-Turing の推定

Good-Turing の推定

  語数 N のコーパス中で r 回出現する単語の数を nrとする。すると

  ここでコーパスにr回出現する単語wの頻度を次の式で推定するのが

Good-Turing の推定                

ここで 0 回出現した単語の出現頻度の期待値 0* は

一方、 1 回以上出現した単語の相対頻度の総和を求めると

つまり、     がコーパスに出現しない全単語の頻度の合計の推定確率

なお、     をディスカウント係数という。

...3n2nnnrN 3210r

r

r

1r*

n

n)1r(r

N

n1

N

rn 1

0r

*r

N

n1

r

rd

*

彙数コーパスに出現した語全語彙数 1

0

1* n

n

n0

Page 16: N-gram モデル 未出現事象の扱い Back-off  smoothing Good-Turing の推定

Good-Turing の推定の導出• 母集団における異なり単語数を M とす

る• 母集団における単語 wi の出現確率を

P(wi)

• wi が語数(サイズ) N のコーパス中で出現する回数を C(wi) 当然

• 単語 w がコーパス中に r 回出現したとき、 w の母集団での生起確率および出現回数の期待値は

NwCM

i i )(

1

)2(])(|)([])(|[

)1()())(|(])(|)([

*

1

NrwCwPErwCrEr

wPrwCwwPrwCwPEM

i ii

Page 17: N-gram モデル 未出現事象の扱い Back-off  smoothing Good-Turing の推定

• サイズ N のコーパスにおける単語の出現確率分布を 2 項分布とすると

)3())(1()(

))(1()(

))((

))(())(|(

1

1

M

i

rNi

rirN

rNi

rirN

M

i i

ii

wPwPC

wPwPC

rwCP

rwCPrwCwwP

この結果を (1) に代入すると

)4())(1()(

))(1()(])(|)([

1

1

1

M

i

rNi

rirN

M

i

rNi

rirN

wPwPC

wPwPCrwCwPE

Page 18: N-gram モデル 未出現事象の扱い Back-off  smoothing Good-Turing の推定

サイズ N のコーパス中に r 回出現する単語の総数の期待値

)5()(

)(

1

1])(|)([

1

1(4)

))(1()())((][

11

1 1

rN

rN

rNrN

M

i

M

i

rNi

rirNirN

NE

NE

N

rrwCwPE

CN

rC

wPwPCrwCPNE

換えられるから以下のように書きはすると +1+1

この結果を使って (2) 式の r* を求めると

)6()(

)(

1

1])(|)([ 11*

rN

rN

NE

NE

N

rNNrwCwPEr

0

1*1* 0)1(N

N

N

Nrr

r

r   となる

ここで Nが十分大きく、 EN(Nr )をコーパス中に出現頻度 Nr で近似すると

Page 19: N-gram モデル 未出現事象の扱い Back-off  smoothing Good-Turing の推定

Good-Turing を用いたスムージング:Katz

0 if|

0 if|

12112

1212

12*

12

iiiiiKatzii

iiiii

iii

iiiKatz

wwwCwwPww

wwwCwwC

wwwCwwwP

Kneser-Ney スムージング:最も安定して良い性能

v i

iiii

ii

wwwCiiiiiiKN

vwwCw

wwwCwww

wwC

DwwwCwwwP iii

1

112

12

1212

|

|

| 12

Discount する部分。テストデータを用いて最適値を求める。近似的には下の式

21

1

2

1

2

gram-n)2(

gram-n)1(

ff

fDc

f

f

の異なり数の頻度の異なり数の頻度