統計的機械翻訳入門 #TokyoNLP

37
統計的機械翻訳入門 #tokyonlp @nokuno

description

第4回自然言語処理勉強会@東京の発表資料です。統計的機械翻訳の入門になっています。

Transcript of 統計的機械翻訳入門 #TokyoNLP

Page 1: 統計的機械翻訳入門 #TokyoNLP

統計的機械翻訳入門

#tokyonlp

@nokuno

Page 2: 統計的機械翻訳入門 #TokyoNLP

自己紹介

• Twitter: @nokuno

• はてな: id:nokuno

• TokyoNLP主催

• Social IME, StaKK開発者

Page 3: 統計的機械翻訳入門 #TokyoNLP

今日の内容

• 機械翻訳の教科書

• IBM モデル1まで

• http://amzn.to/hIvoo6

Page 4: 統計的機械翻訳入門 #TokyoNLP

統計的機械翻訳とは

• 機械翻訳:プログラムが翻訳すること

• 統計的:コーパスに基づくアプローチ

• 対訳コーパスと単言語コーパスを使う

Page 5: 統計的機械翻訳入門 #TokyoNLP

Google翻訳してみる

• I was among the first Canadians to

own a Kindle.

• 私はこの本を所有している最初のカナダ人の間であった。

http://lemire.me/blog/archives/2011/01/01/surprising2010/

Page 6: 統計的機械翻訳入門 #TokyoNLP

Noisy-Channel Model

• 言語モデルと翻訳モデルに分解

e = argmaxe P(e | f )

= argmaxe P(e)P( f | e)

e: 翻訳先の文、f: 翻訳元の文

P(e): 言語モデル

文の滑らかさに関するスコア

P(f|e): 翻訳モデル

意味の近さに関するスコア

Page 7: 統計的機械翻訳入門 #TokyoNLP

言語モデルの例:単語N-gram

• 文の滑らかさ=単語の滑らかさの組合せ

P(e) = P(wi |wi-1)i

Õ

C(w): コーパス中のwの頻度ブログ で 日記 を 書く

0.1 0.05 0.1 0.08

単言語コーパスから推定可能

Page 8: 統計的機械翻訳入門 #TokyoNLP

翻訳モデル

• 単語ベース(IBMモデル)

• フレーズベース

• ツリーベース

今回はIBMモデル2までを扱います

Page 9: 統計的機械翻訳入門 #TokyoNLP

単語の翻訳

• 単語1つを翻訳するには?→辞書を引く

– Haus – house, building, home, household, shell.

• いろいろな翻訳が考えられる

– 「流暢な」翻訳とそうでない翻訳がある

–例えば:houseとbuildingはよく使われている

• ここでドイツ語を英語に翻訳するものとする

Page 10: 統計的機械翻訳入門 #TokyoNLP

訳語の集計

• Hausの訳語を集計する

Page 11: 統計的機械翻訳入門 #TokyoNLP

翻訳確率の推定

• 最尤推定により以下が求まる:

Page 12: 統計的機械翻訳入門 #TokyoNLP

単語アライメント

• 単語の対応付け

Page 13: 統計的機械翻訳入門 #TokyoNLP

単語アライメント

• 単語の並び替え

Page 14: 統計的機械翻訳入門 #TokyoNLP

単語アライメント

• 単語数の増加

Page 15: 統計的機械翻訳入門 #TokyoNLP

単語アライメント

• 単語の削除

Page 16: 統計的機械翻訳入門 #TokyoNLP

単語アライメント

• 単語の挿入

Page 17: 統計的機械翻訳入門 #TokyoNLP

IBM Model 1

• 生成モデル:翻訳プロセスをモデル化

• 文の翻訳を語彙の翻訳に帰着させる

入力

出力

アライメント a: j→i : e_jがf_iに対応する

Page 18: 統計的機械翻訳入門 #TokyoNLP

Page 19: 統計的機械翻訳入門 #TokyoNLP

翻訳モデルを学習するには?

• 対訳コーパスから学習したい

• しかし、アライメントがわからない

• 鶏と卵の問題

–アライメントがあれば、パラメータ推定できる

–パラメータがあれば、アライメントを推定できる

Page 20: 統計的機械翻訳入門 #TokyoNLP

EMアルゴリズム

• 不完全データ

–完全データが手に入れば、モデルを推定できる

–モデルがあれば、欠損データを推定できる

• EMアルゴリズムの概要

1. モデルパラメータを初期化(一様分布など)

2. 欠損データに確率を与える

3. 推定データからモデルパラメータを更新する

4. 収束するまで2-3を繰り返す

Page 21: 統計的機械翻訳入門 #TokyoNLP

EMアルゴリズム

• 初期化:すべてのアライメントは等確率

• モデル学習:la は theとよく共起する

Page 22: 統計的機械翻訳入門 #TokyoNLP

EMアルゴリズム

• 1回目のイテレーション後

• laとtheはより強くアライメントされている

Page 23: 統計的機械翻訳入門 #TokyoNLP

EMアルゴリズム

• 2回目のイテレーション後

• fleur とflowerが対応する(鳩の巣原理)

Page 24: 統計的機械翻訳入門 #TokyoNLP

EMアルゴリズム

• 収束後

• 隠れたアライメントが推定された

Page 25: 統計的機械翻訳入門 #TokyoNLP

EMアルゴリズム

• アライメントからパラメータを推定

Page 26: 統計的機械翻訳入門 #TokyoNLP

IBMモデル1におけるEM

• EMアルゴリズムは2つのステップからなる

• Eステップ:モデルをデータに適用

–モデルは隠れ変数を含む

–取りうる値の確率を推定する

• Mステップ:データからモデルを推定

–確率で重み付けして頻度を集計する

–集計した頻度からモデルを推定する

• これらを収束まで繰り返す

Page 27: 統計的機械翻訳入門 #TokyoNLP

Eステップ(1)

• アライメント確率p(a|e,f)を求める

(IBM Model1の定義)

Page 28: 統計的機械翻訳入門 #TokyoNLP

Eステップ(2)

• 和と積を入れ替える

Page 29: 統計的機械翻訳入門 #TokyoNLP

Eステップ(3)

• 以下の確率を求めれば良い

Page 30: 統計的機械翻訳入門 #TokyoNLP

Mステップ

• P(a|e,f)は既知として尤度の期待値を最大化

そのアライメントでeとfが対応している回数

(最尤推定)

Page 31: 統計的機械翻訳入門 #TokyoNLP

EM:擬似コード

Page 32: 統計的機械翻訳入門 #TokyoNLP

実験結果

Page 33: 統計的機械翻訳入門 #TokyoNLP

日英対訳コーパスの例

• NICTの日英対訳コーパスで実験

• GIZA++を使ってアライメント

• セグメンテーションのミスが多い

日本語 英語 確率

精神 sentimentality 0.000189816

平安京 Heian-Kyo 0.0121956

李 Takutori-tenno 0.00148212

は NULL 0.251252

Page 34: 統計的機械翻訳入門 #TokyoNLP

まとめ

• 機械翻訳はNoisy Channel Modelの枠組み

• IBMモデル1:語彙の翻訳

• アライメントとEMアルゴリズム

Page 35: 統計的機械翻訳入門 #TokyoNLP

参考文献• 統計的機械翻訳サーベイ, 岡野原大輔

• http://www.slideshare.net/pfi/smt-

survey

• 統計的機械翻訳ことはじめ, 渡辺太郎

• http://www.kecl.ntt.co.jp/icl/kpro/taro/papers/smt-

tutorial.pdf

• Foundations of Statistical Machine Translation:

Past, Present and Future, Taro Watanabe

• http://mastarpj.nict.go.jp/~t_watana/papers/interspeech2010-

tutorial.pdf

Page 36: 統計的機械翻訳入門 #TokyoNLP

ご清聴ありがとうございました

Page 37: 統計的機械翻訳入門 #TokyoNLP

高次のIBMモデル• IBMモデル1: アライメントは一様分布

• IBMモデル2: 絶対アライメントを追加

• IBMモデル3: 単語数の増減を追加

• IBMモデル4: 相対アライメントを追加

• IBMモデル5: 単語の欠損を追加

上位のモデルは下位のモデルによる学習を初期値として再学習