n-gram モデル 未出現事象の扱い back-off smoothing good-turing の推定
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 PresentationTRANSCRIPT
N-gram モデル未出現事象の扱い
Back-off smoothing
Good-Turing の推定
N-gram とスムージング
文字列の統計的モデル
1次元文字列 1次元単語列
とりあえず単語列の場合として話を進める単語列 w1
n の生起確率を各単語の条件付確率でモデル化
nn CCCCC 1321
nn wwwww 1321
)|(),....,|()|()()( 112131211 n
nn wwPwwwPwwPwPwP
各項の wn の条件付確率が文字列のモデル。これが直前の N 単語に依存するモデルを N-gram モデルという
)|()|( 11
11
nNnn
nn wwPwwP
1-gram モデルだと、言語モデルはP(wn) すなわち、各単語の(コーパスにおける)生起確率だけで決まる。
大胆な近似だが、計算が容易で、計算量も少ない。
情報検索では基本的モデルとして使われる
Bag of Words モデル
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 グラムの総数
N グラムの計算 ある言語における N グラムの種類の総数はとても大きすぎて計算で
きない場合が多い。実際のテキストにおいて出現した N グラムによって言語(の部分集合)を特徴つける。そこで、テキストにおけるN グラムの計算法が必要。
あ り が と う …… う…
とう…がとう…りがとう…ありがとう…
辞書式に整列
1: ありがとう…2: う…3: がとう…4: とう…5: りがとう…
整列したポインタの配列
整列したポインタの配列をサフィックスアレイという。先頭部分に同じ文字列を持つものが隣接ないし近接する。
近所を見回せば、同じ N グラムが何個あるかという統計を簡単に計算できる。
KWIC ( Key Word In Context )
ある言語表現がどのような文脈に現れるかを、与えられたコーパスにおいて列挙したもの。
辞書式に整列したテキストへのポインタの配列( N グラムの計算に利用するもの)を使えば、容易に抽出できる。
N グラムの計算 のページの「 N グラム」に対する KWIC は以下の通り。
-----------------------------------------------------------------------------------------------
前の文脈 Key Word 後の文脈------------------------------------------------------------------------------------------------
ある言語における N グラム の総数はとても大きすぎて
ストにおいて出現した N グラム によって言語(の部分集合)
テキストにおける N グラム の計算法が必要。------------------------------------------------------------------------------------------------ Key Word がどのような単語や表現と共起するかという情報を得られ
る。共起情報は自然言語処理において必須の情報。
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
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(
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系列
各単語の頻度に δ (=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個)
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系列
原データ
確率
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 の再帰的定義
抽象化すると未出現事象の扱い
観測データ(教師データ)の数が十分に大きくない場合は、本来、出現する可能性のある事象が教師データに含まれないことがある。例:サイコロを 5 回振って教師データを作っても、
出ない目が必ず一つはある。例:新聞記事 10年分のテキストから単語の出現頻度
を計算しても、出現していない単語があるかもしれない。
本来、出現する可能性がある事象ではあるが、観測データに出現していないものの真の生起確率をどのように評価しておけばよいか?スムージングこれは、未知のデータを扱う場合に重要
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 の推定
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
Good-Turing の推定の導出• 母集団における異なり単語数を M とす
る• 母集団における単語 wi の出現確率を
P(wi)
• wi が語数(サイズ) N のコーパス中で出現する回数を C(wi) 当然
• 単語 w がコーパス中に r 回出現したとき、 w の母集団での生起確率および出現回数の期待値は
NwCM
i i )(
1
)2(])(|)([])(|[
)1()())(|(])(|)([
*
1
NrwCwPErwCrEr
wPrwCwwPrwCwPEM
i ii
• サイズ 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
サイズ 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 で近似すると
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
の異なり数の頻度の異なり数の頻度