next up previous contents
次へ: デコーダー 上へ: 言語モデル 戻る: -gramモデル   目次

スムージング

$N$-gramの確率は,最尤推定法を用いて計算することが可能である.単語列 $w_{i-2}w_{i-1}w_{i}$$w_{i}^{i-2}$,単語列 $w_{i-2}w_{i-1}w_{i}$の確率を $N(w_{i-2}^{i})$とすると,(2.19)から3-gramの確率を計算することが可能である.


$\displaystyle p(w_{i}\vert w_{i-2}^{i})= \frac{N(w_{i-2}^{i})}{N(w_{i-2}^{i-1})}$     (2.19)

しかし,入力文において学習データに存在しない単語列がある場合,その単語列の確率は0となり,翻訳精度が悪化する傾向となる.そこで,確率が0となるのを防ぐために,大きい確率はより小さく,小さい確率はより大きくし,全体の確率値を平滑化及び近似を行う.これはスムージングという方法であり,代表的にはバックオフスムージングがある.バックオフスムージングは,学習データには出現していない$N$-gram単語列の確率を,$N-1$-gram単語列の確率でスムージングを行う.$N$=3-gramの場合のバックオフスムージングによる確率は以下の式に求められる.


$\displaystyle P(w_{i}\vert w_{i-1}^{i-2}) =\left\{ \begin{array}{ll}
\lambda(w_...
... \ N(w_{n-2}^{n-1}) \\
P(w_{i}\vert w_{i-1}) & other \\
\end{array} \right.$     (2.20)

$\lambda$はディスカウント係数と呼ばれ,学習データに存在しない$N$-gramに対し,学習データに存在する$N-1$-gramから確率値を求める.$\alpha$は確率の総和を1にするための正規化係数である.$\lambda_{0}$及び$\alpha$は以下に求められる.


$\displaystyle \lambda_{0}(w_{i-2}^{i}) = \sum_{w_{i}}\lambda(w_{i-2}^{i})p(w_{i}\vert w_{i-2}^{i-1})$     (2.21)
$\displaystyle \alpha = (1 - \sum_{N(w_{i-2}^{i})>0}P(w_{i}\vert w_{i-1}))^{-1}$     (2.22)

ディスカウント系数を求める方法は多く,ukndiscount(Unmodified Kneser-Ney discounting)やkndiscount(Chen and Goodman's modified Kneser-Ney discounting)がある.

ukndiscountとkndiscountの違いは,一つまたは二つの単語を考慮してスムージングを行う(undiscount)か,一つ,二つまたは三つの$N$-gram単語列を考慮してスムージングを行う(kndiscount)かである.



平成26年3月29日