読者です 読者をやめる 読者になる 読者になる

IBM Model メモ

NLP

有名な翻訳モデルであるところの IBM Model 。翻訳モデルというのは、ある単語(列)がどの単語(列)に翻訳されるかという生成モデルです。Model 1 から 5 まである中の Model 1 についてのメモ。

基本的な式は

P(f,\alpha \mid e)=P(m \mid e)\prod^m_{j=1}P(\alpha_j \mid \alpha^{j-1}_1,f^{j-1}_1,m,e)P(f_j \mid \alpha^j_1,f^{j-1}_1,m,e)

j が原言語文 f の長さ、m が目的言語文 e の長さで、j または m が 0 のときは空文字(NULL)です。P(m \mid e)は e が単語数 m になる確率。
f^{j}_1は f_1 から f_j を表す。f_j が e_k に対応するとき、アライメント\alphaa_j = kとなる。

  • (1) P(\alpha_j \mid \alpha^{j-1}_1,f^{j-1}_1,m,e)

f^{j-1}_1まで翻訳され、それぞれが目的言語文 e の \alpha^{j-1}_1 番目に対応しているとき、j番目の単語が a_j 番目の単語に対応する確率。

  • (2) P(f_j \mid \alpha^j_1,f^{j-1}_1,m,e)

e 原言語文 f の j 番目が f_j の確率。

  • IBM Model の簡略化(Model 1)

上の式はパラメータが多くて大変大変。なので、以下のようにパラメータを簡略化するのが Model 1

(1) は f_j が e の a_j 番目に対応する確率なので、全て等確率に対応すると仮定すると、(1) は \frac{1}{l+1}となる。ここで l は e の単語数で、NULLに対応することも考えなきゃならないので、+1します。

(2) の f_j は e_{a_j} のみに依存するとして、P(f_j|e_{a_j})となります。

P(m \mid e)は定数\epsilonとすると

P(f, a \mid e) = \frac{\epsilon}{(l+1)^m}\prod ^m _{j=1} t(f_j \mid e_{\alpha j})

全ての\alphaについて合計すると

P(f| e) = \frac{\epsilon}{(l+1)^m} \sum ^l _{\alpha_1=0} \cdots  \sum ^l _{\alpha_m=0} \prod ^m _{j=1} t(f_j \mid e_{\alpha j})

パラメータ t(f \mid e)EMアルゴリズムで推定する。こんなところで疲れたので E ステップと M ステップについてはまた今度。

(1) が l のみに依存している Model 1 と違い、Model 2 では、\alpha_jやmにも依存する。

Model 3 では、ひとつの単語が何個の単語に対応するのかを考慮する。また、対応先との距離(歪み率)も考慮する。
歪み率は、今いる位置から翻訳されることで、どの位置に移るかをモデル化していて面白い。
Model 4 では単語の位置が相対位置になるらしい。Model 5 は…

Todo:

フレーズ抽出のヒューリスティックスについてまとめる。