52
統計的機械翻訳入門 その2 ~フレーズベース編~ #tokyonlp @nokuno

統計的機械翻訳入門 その2 〜フレーズベース機械翻訳〜 #TokyoNLP

Embed Size (px)

Citation preview

Page 1: 統計的機械翻訳入門 その2 〜フレーズベース機械翻訳〜 #TokyoNLP

統計的機械翻訳入門 その2 ~フレーズベース編~

#tokyonlp @nokuno

Page 2: 統計的機械翻訳入門 その2 〜フレーズベース機械翻訳〜 #TokyoNLP

自己紹介 • @nokuno / id:nokuno

• #TokyoNLP主催 • Social IME / StaKK開発者 • Web系ソフトウェアエンジニア

Page 3: 統計的機械翻訳入門 その2 〜フレーズベース機械翻訳〜 #TokyoNLP

近況報告

Page 4: 統計的機械翻訳入門 その2 〜フレーズベース機械翻訳〜 #TokyoNLP

Speller Challengeで 入賞しました

Page 5: 統計的機械翻訳入門 その2 〜フレーズベース機械翻訳〜 #TokyoNLP

ICML読み会 &

ACL読み会 やります

Page 6: 統計的機械翻訳入門 その2 〜フレーズベース機械翻訳〜 #TokyoNLP

今日の内容

1. IBM Model [1-5]の復習 2. アライメントの拡張 3. フレーズベース機械翻訳 4. 色々な拡張

Page 7: 統計的機械翻訳入門 その2 〜フレーズベース機械翻訳〜 #TokyoNLP

参考文献

•  機械翻訳の教科書 •  5章を中心に •  http://amzn.to/hIvoo6

Page 8: 統計的機械翻訳入門 その2 〜フレーズベース機械翻訳〜 #TokyoNLP

IBMモデルの復習

Page 9: 統計的機械翻訳入門 その2 〜フレーズベース機械翻訳〜 #TokyoNLP

統計的機械翻訳とは • 入力: • 出力: • アライメント: • 単語 が単語 に対応

Page 10: 統計的機械翻訳入門 その2 〜フレーズベース機械翻訳〜 #TokyoNLP

NoisyChannelモデル • 言語モデル×翻訳モデルに分解

• 対訳コーパスから翻訳モデルを学習

(4.23)

Page 11: 統計的機械翻訳入門 その2 〜フレーズベース機械翻訳〜 #TokyoNLP

IBMモデル1 • 文の翻訳を語彙の翻訳に分解

• アライメントaは隠れ変数 (4.7)

Page 12: 統計的機械翻訳入門 その2 〜フレーズベース機械翻訳〜 #TokyoNLP

EMアルゴリズム •  Eステップ

• Mステップ (4.11)

(4.14)

(4.13)

Page 13: 統計的機械翻訳入門 その2 〜フレーズベース機械翻訳〜 #TokyoNLP

人工的な例

Page 14: 統計的機械翻訳入門 その2 〜フレーズベース機械翻訳〜 #TokyoNLP

IBMモデル2 • アライメントにも確率分布を考える

• 語彙の確率分布tと組み合わせる

(4.25)

Page 15: 統計的機械翻訳入門 その2 〜フレーズベース機械翻訳〜 #TokyoNLP

IBMモデル2 • 語彙の翻訳とアライメントの ���

2ステップモデル

t:語彙の翻訳

a:アライメント

Page 16: 統計的機械翻訳入門 その2 〜フレーズベース機械翻訳〜 #TokyoNLP

EMアルゴリズム •  IBMモデル1と同様の計算が可能

• アライメントの頻度も求まる

(4.26)

(4.28)

i

i

Page 17: 統計的機械翻訳入門 その2 〜フレーズベース機械翻訳〜 #TokyoNLP

高次のIBMモデル •  IBMモデル1: アライメントは一様分布 •  IBMモデル2: 絶対アライメントを追加 •  IBMモデル3: 単語数の増減を追加 •  IBMモデル4: 相対アライメントを追加 •  IBMモデル5: 単語の欠損を追加

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

Page 18: 統計的機械翻訳入門 その2 〜フレーズベース機械翻訳〜 #TokyoNLP

IBMモデル3 •  4つのステップを経て翻訳するモデル

単語数の増減

NULL挿入

語彙の翻訳

位置の並べ替え

Page 19: 統計的機械翻訳入門 その2 〜フレーズベース機械翻訳〜 #TokyoNLP

アライメントの拡張

Page 20: 統計的機械翻訳入門 その2 〜フレーズベース機械翻訳〜 #TokyoNLP

モチベーション • アライメントを単独で評価したい • 後のフレーズベースで使いたい • アライメントの推定にはIBMモデルを利用可能だが…

•  IBMモデルでは一対多のアライメント • 多対多のアライメントはフレーズベースで

Page 21: 統計的機械翻訳入門 その2 〜フレーズベース機械翻訳〜 #TokyoNLP

アライメントの表現

Page 22: 統計的機械翻訳入門 その2 〜フレーズベース機械翻訳〜 #TokyoNLP

アライメントの対称化

Page 23: 統計的機械翻訳入門 その2 〜フレーズベース機械翻訳〜 #TokyoNLP

アライメントの評価 • 正解セットを使った正解率

•  S (Sure): 完璧なアライメント •  P (Possible): まあまあのアライメント

※AER=Alignment Error Rateのはずが、誤植で逆の意味に

Page 24: 統計的機械翻訳入門 その2 〜フレーズベース機械翻訳〜 #TokyoNLP

フレーズベース���機械翻訳

Page 25: 統計的機械翻訳入門 その2 〜フレーズベース機械翻訳〜 #TokyoNLP

モチベーション •  IBMモデルは単語単位で翻訳する • 単語より長いフレーズ単位で翻訳したい • アドバンテージ

•  多対多の関係を翻訳できる •  リッチなコンテキストを考慮できる •  データさえあれば非常に長いフレーズも学習できる

• Google翻訳でも使われている←本当?

Page 26: 統計的機械翻訳入門 その2 〜フレーズベース機械翻訳〜 #TokyoNLP

フレーズベースモデル • フレーズ単位で翻訳・並べ替えを行う • フレーズの定義は言語学的ではなく機械的

Page 27: 統計的機械翻訳入門 その2 〜フレーズベース機械翻訳〜 #TokyoNLP

フレーズ翻訳テーブル • 例:natuerlichに対する翻訳テーブル

Page 28: 統計的機械翻訳入門 その2 〜フレーズベース機械翻訳〜 #TokyoNLP

実際の例 • 例:den Vorschlagに対する翻訳テーブル

Page 29: 統計的機械翻訳入門 その2 〜フレーズベース機械翻訳〜 #TokyoNLP

確率モデル •  IBMモデルと比べても、単位がフレーズになったくらいの違いしかない

•  d: 距離に応じた並べ替え確率

(5.2)

Page 30: 統計的機械翻訳入門 その2 〜フレーズベース機械翻訳〜 #TokyoNLP

書いてないけど… • フレーズ分割の周辺化が必要 • 異なる分割で同じ翻訳になる確率を足す •  Sを可能なフレーズ分割として、

Page 31: 統計的機械翻訳入門 その2 〜フレーズベース機械翻訳〜 #TokyoNLP

距離の計算方法

Page 32: 統計的機械翻訳入門 その2 〜フレーズベース機械翻訳〜 #TokyoNLP

並べ替え確率 •  d(x)は単純には指数関数とか • 距離が遠いほど確率が低くなる

• ※日本語と英語だとうまくいかない

Page 33: 統計的機械翻訳入門 その2 〜フレーズベース機械翻訳〜 #TokyoNLP

フレーズベースの学習 • 問題設定:対訳コーパスからフレーズテーブルを学習する

• 以下の3ステップで学習 • 単語アライメントを推定する • 整合するフレーズペアを抽出する • フレーズの翻訳確率を推定する

Page 34: 統計的機械翻訳入門 その2 〜フレーズベース機械翻訳〜 #TokyoNLP

単語アライメント

Page 35: 統計的機械翻訳入門 その2 〜フレーズベース機械翻訳〜 #TokyoNLP

フレーズ抽出

抽出結果:assumes that / geht davon aus , dass

Page 36: 統計的機械翻訳入門 その2 〜フレーズベース機械翻訳〜 #TokyoNLP

整合性とは? • アライメントと「整合性のある」フレーズを抽出したい

• 「整合性」を定義すると…

Page 37: 統計的機械翻訳入門 その2 〜フレーズベース機械翻訳〜 #TokyoNLP

見たほうが早い • ルール1:隣り合う■はつながる • ルール2:全ての■がカバーされる

これはOK これはOK これはダメ

Page 38: 統計的機械翻訳入門 その2 〜フレーズベース機械翻訳〜 #TokyoNLP

フレーズ抽出方法

• 以下のステップでフレーズ抽出 • 最も小さなフレーズを見つける • フレーズをマージして大きなフレーズを見つける

• 文単位のフレーズになるまで続ける

Page 39: 統計的機械翻訳入門 その2 〜フレーズベース機械翻訳〜 #TokyoNLP

短いフレーズの例

michael assumes michael geht davon aus assumes that geht davon aus , dass that he dass er in the house im haus

Page 40: 統計的機械翻訳入門 その2 〜フレーズベース機械翻訳〜 #TokyoNLP

長いフレーズの例

michael assumes that he will stay in the house

michael geht davon aus , dass er im haus bleibt

assumes that he will stay in the house

geht davon aus , dass er im haus bleibt

he will stay in the house er im haus bleibt

Page 41: 統計的機械翻訳入門 その2 〜フレーズベース機械翻訳〜 #TokyoNLP

翻訳確率の推定 • 抽出したフレーズの相対頻度を取るだけ • 最尤推定…?

• フレーズも隠れ変数とみなしてEMアルゴリズムで解く方法もあるが遅い

(5.4)

Page 42: 統計的機械翻訳入門 その2 〜フレーズベース機械翻訳〜 #TokyoNLP

色々な拡張

Page 43: 統計的機械翻訳入門 その2 〜フレーズベース機械翻訳〜 #TokyoNLP

識別モデル • これまで言語モデル、フレーズ翻訳確率、並べ替え確率の3つのモデルを考えてきた

• これらを識別モデルで重み付けする

• 他の素性を加えられるようになった • これ以降は追加する素性の話

Page 44: 統計的機械翻訳入門 その2 〜フレーズベース機械翻訳〜 #TokyoNLP

双方向の翻訳確率 • ベイズの定理で翻訳モデルを逆向きにしたが、順向きのほうが良い場合も

• 珍しい単語eと一般語fではφ(f|e)が不当に高くなりやすい

• 識別モデルの素性としてp(f|e) と p(e|f) の両方を突っ込んでしまう

Page 45: 統計的機械翻訳入門 その2 〜フレーズベース機械翻訳〜 #TokyoNLP

スムージング • 低頻度なフレーズを正確に評価したい • フレーズを構成する単語の翻訳確率を使ってスムージングする

• 単語の翻訳確率にはIBMモデルを使う

(5.9)

a: フレーズ内部のアライメント

Page 46: 統計的機械翻訳入門 その2 〜フレーズベース機械翻訳〜 #TokyoNLP

長さに対する罰則項

• 言語モデルは短い出力を好む 単語数:

• 長いフレーズが有利になりすぎる フレーズ数:

Page 47: 統計的機械翻訳入門 その2 〜フレーズベース機械翻訳〜 #TokyoNLP

語彙に基づく���並べ替え

•  距離に基づく並べ替えは貧弱 →語彙ごとに並べ替えを学習しよう!

• 並べ替えのパターンは多すぎる…

• 典型的な3タイプの並べ替えを考える

Page 48: 統計的機械翻訳入門 その2 〜フレーズベース機械翻訳〜 #TokyoNLP

3タイプの並べ替え

• m (monotne): 連続的 •  s (swap): 隣同士の並べ替え •  d (discontinuous): 非連続的

orientation

Page 49: 統計的機械翻訳入門 その2 〜フレーズベース機械翻訳〜 #TokyoNLP

並べ替え確率の推定 • 単語ペアごとのorientationの相対頻度

• スパースなのでスムージング

p(o): 語彙による条件がない分布

(5.11)

(5.13)

Page 50: 統計的機械翻訳入門 その2 〜フレーズベース機械翻訳〜 #TokyoNLP

まとめと感想 •  IBMモデルは正当な確率モデル+最尤推定

• フレーズベースも確率モデルだが、フレーズ抽出はヒューリスティック

• ちゃんとした方法は遅いので近似する • 識別モデルはなんでもありのフレームワーク

Page 51: 統計的機械翻訳入門 その2 〜フレーズベース機械翻訳〜 #TokyoNLP

発表者を募集しております

Page 52: 統計的機械翻訳入門 その2 〜フレーズベース機械翻訳〜 #TokyoNLP

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