2020年を見据えた翻訳アプリケーションの開発:てがき翻訳 ......2020年を見据えた翻訳アプリケーションの開発:てがき翻訳 8 NTT DOCOMOテクニカル・ジャーナル
統計的機械翻訳入門 #TokyoNLP
description
Transcript of 統計的機械翻訳入門 #TokyoNLP
![Page 1: 統計的機械翻訳入門 #TokyoNLP](https://reader031.fdocument.pub/reader031/viewer/2022012312/55794e02d8b42a31678b5293/html5/thumbnails/1.jpg)
統計的機械翻訳入門
#tokyonlp
@nokuno
![Page 2: 統計的機械翻訳入門 #TokyoNLP](https://reader031.fdocument.pub/reader031/viewer/2022012312/55794e02d8b42a31678b5293/html5/thumbnails/2.jpg)
自己紹介
• Twitter: @nokuno
• はてな: id:nokuno
• TokyoNLP主催
• Social IME, StaKK開発者
![Page 4: 統計的機械翻訳入門 #TokyoNLP](https://reader031.fdocument.pub/reader031/viewer/2022012312/55794e02d8b42a31678b5293/html5/thumbnails/4.jpg)
統計的機械翻訳とは
• 機械翻訳:プログラムが翻訳すること
• 統計的:コーパスに基づくアプローチ
• 対訳コーパスと単言語コーパスを使う
![Page 5: 統計的機械翻訳入門 #TokyoNLP](https://reader031.fdocument.pub/reader031/viewer/2022012312/55794e02d8b42a31678b5293/html5/thumbnails/5.jpg)
Google翻訳してみる
• I was among the first Canadians to
own a Kindle.
• 私はこの本を所有している最初のカナダ人の間であった。
http://lemire.me/blog/archives/2011/01/01/surprising2010/
![Page 6: 統計的機械翻訳入門 #TokyoNLP](https://reader031.fdocument.pub/reader031/viewer/2022012312/55794e02d8b42a31678b5293/html5/thumbnails/6.jpg)
Noisy-Channel Model
• 言語モデルと翻訳モデルに分解
e = argmaxe P(e | f )
= argmaxe P(e)P( f | e)
e: 翻訳先の文、f: 翻訳元の文
P(e): 言語モデル
文の滑らかさに関するスコア
P(f|e): 翻訳モデル
意味の近さに関するスコア
![Page 7: 統計的機械翻訳入門 #TokyoNLP](https://reader031.fdocument.pub/reader031/viewer/2022012312/55794e02d8b42a31678b5293/html5/thumbnails/7.jpg)
言語モデルの例:単語N-gram
• 文の滑らかさ=単語の滑らかさの組合せ
P(e) = P(wi |wi-1)i
Õ
C(w): コーパス中のwの頻度ブログ で 日記 を 書く
0.1 0.05 0.1 0.08
単言語コーパスから推定可能
![Page 8: 統計的機械翻訳入門 #TokyoNLP](https://reader031.fdocument.pub/reader031/viewer/2022012312/55794e02d8b42a31678b5293/html5/thumbnails/8.jpg)
翻訳モデル
• 単語ベース(IBMモデル)
• フレーズベース
• ツリーベース
今回はIBMモデル2までを扱います
![Page 9: 統計的機械翻訳入門 #TokyoNLP](https://reader031.fdocument.pub/reader031/viewer/2022012312/55794e02d8b42a31678b5293/html5/thumbnails/9.jpg)
単語の翻訳
• 単語1つを翻訳するには?→辞書を引く
– Haus – house, building, home, household, shell.
• いろいろな翻訳が考えられる
– 「流暢な」翻訳とそうでない翻訳がある
–例えば:houseとbuildingはよく使われている
• ここでドイツ語を英語に翻訳するものとする
![Page 10: 統計的機械翻訳入門 #TokyoNLP](https://reader031.fdocument.pub/reader031/viewer/2022012312/55794e02d8b42a31678b5293/html5/thumbnails/10.jpg)
訳語の集計
• Hausの訳語を集計する
![Page 11: 統計的機械翻訳入門 #TokyoNLP](https://reader031.fdocument.pub/reader031/viewer/2022012312/55794e02d8b42a31678b5293/html5/thumbnails/11.jpg)
翻訳確率の推定
• 最尤推定により以下が求まる:
![Page 12: 統計的機械翻訳入門 #TokyoNLP](https://reader031.fdocument.pub/reader031/viewer/2022012312/55794e02d8b42a31678b5293/html5/thumbnails/12.jpg)
単語アライメント
• 単語の対応付け
![Page 13: 統計的機械翻訳入門 #TokyoNLP](https://reader031.fdocument.pub/reader031/viewer/2022012312/55794e02d8b42a31678b5293/html5/thumbnails/13.jpg)
単語アライメント
• 単語の並び替え
![Page 14: 統計的機械翻訳入門 #TokyoNLP](https://reader031.fdocument.pub/reader031/viewer/2022012312/55794e02d8b42a31678b5293/html5/thumbnails/14.jpg)
単語アライメント
• 単語数の増加
![Page 15: 統計的機械翻訳入門 #TokyoNLP](https://reader031.fdocument.pub/reader031/viewer/2022012312/55794e02d8b42a31678b5293/html5/thumbnails/15.jpg)
単語アライメント
• 単語の削除
![Page 16: 統計的機械翻訳入門 #TokyoNLP](https://reader031.fdocument.pub/reader031/viewer/2022012312/55794e02d8b42a31678b5293/html5/thumbnails/16.jpg)
単語アライメント
• 単語の挿入
![Page 17: 統計的機械翻訳入門 #TokyoNLP](https://reader031.fdocument.pub/reader031/viewer/2022012312/55794e02d8b42a31678b5293/html5/thumbnails/17.jpg)
IBM Model 1
• 生成モデル:翻訳プロセスをモデル化
• 文の翻訳を語彙の翻訳に帰着させる
入力
出力
アライメント a: j→i : e_jがf_iに対応する
![Page 18: 統計的機械翻訳入門 #TokyoNLP](https://reader031.fdocument.pub/reader031/viewer/2022012312/55794e02d8b42a31678b5293/html5/thumbnails/18.jpg)
例
![Page 19: 統計的機械翻訳入門 #TokyoNLP](https://reader031.fdocument.pub/reader031/viewer/2022012312/55794e02d8b42a31678b5293/html5/thumbnails/19.jpg)
翻訳モデルを学習するには?
• 対訳コーパスから学習したい
• しかし、アライメントがわからない
• 鶏と卵の問題
–アライメントがあれば、パラメータ推定できる
–パラメータがあれば、アライメントを推定できる
![Page 20: 統計的機械翻訳入門 #TokyoNLP](https://reader031.fdocument.pub/reader031/viewer/2022012312/55794e02d8b42a31678b5293/html5/thumbnails/20.jpg)
EMアルゴリズム
• 不完全データ
–完全データが手に入れば、モデルを推定できる
–モデルがあれば、欠損データを推定できる
• EMアルゴリズムの概要
1. モデルパラメータを初期化(一様分布など)
2. 欠損データに確率を与える
3. 推定データからモデルパラメータを更新する
4. 収束するまで2-3を繰り返す
![Page 21: 統計的機械翻訳入門 #TokyoNLP](https://reader031.fdocument.pub/reader031/viewer/2022012312/55794e02d8b42a31678b5293/html5/thumbnails/21.jpg)
EMアルゴリズム
• 初期化:すべてのアライメントは等確率
• モデル学習:la は theとよく共起する
![Page 22: 統計的機械翻訳入門 #TokyoNLP](https://reader031.fdocument.pub/reader031/viewer/2022012312/55794e02d8b42a31678b5293/html5/thumbnails/22.jpg)
EMアルゴリズム
• 1回目のイテレーション後
• laとtheはより強くアライメントされている
![Page 23: 統計的機械翻訳入門 #TokyoNLP](https://reader031.fdocument.pub/reader031/viewer/2022012312/55794e02d8b42a31678b5293/html5/thumbnails/23.jpg)
EMアルゴリズム
• 2回目のイテレーション後
• fleur とflowerが対応する(鳩の巣原理)
![Page 24: 統計的機械翻訳入門 #TokyoNLP](https://reader031.fdocument.pub/reader031/viewer/2022012312/55794e02d8b42a31678b5293/html5/thumbnails/24.jpg)
EMアルゴリズム
• 収束後
• 隠れたアライメントが推定された
![Page 25: 統計的機械翻訳入門 #TokyoNLP](https://reader031.fdocument.pub/reader031/viewer/2022012312/55794e02d8b42a31678b5293/html5/thumbnails/25.jpg)
EMアルゴリズム
• アライメントからパラメータを推定
![Page 26: 統計的機械翻訳入門 #TokyoNLP](https://reader031.fdocument.pub/reader031/viewer/2022012312/55794e02d8b42a31678b5293/html5/thumbnails/26.jpg)
IBMモデル1におけるEM
• EMアルゴリズムは2つのステップからなる
• Eステップ:モデルをデータに適用
–モデルは隠れ変数を含む
–取りうる値の確率を推定する
• Mステップ:データからモデルを推定
–確率で重み付けして頻度を集計する
–集計した頻度からモデルを推定する
• これらを収束まで繰り返す
![Page 27: 統計的機械翻訳入門 #TokyoNLP](https://reader031.fdocument.pub/reader031/viewer/2022012312/55794e02d8b42a31678b5293/html5/thumbnails/27.jpg)
Eステップ(1)
• アライメント確率p(a|e,f)を求める
∵
(IBM Model1の定義)
![Page 28: 統計的機械翻訳入門 #TokyoNLP](https://reader031.fdocument.pub/reader031/viewer/2022012312/55794e02d8b42a31678b5293/html5/thumbnails/28.jpg)
Eステップ(2)
• 和と積を入れ替える
![Page 29: 統計的機械翻訳入門 #TokyoNLP](https://reader031.fdocument.pub/reader031/viewer/2022012312/55794e02d8b42a31678b5293/html5/thumbnails/29.jpg)
Eステップ(3)
• 以下の確率を求めれば良い
![Page 30: 統計的機械翻訳入門 #TokyoNLP](https://reader031.fdocument.pub/reader031/viewer/2022012312/55794e02d8b42a31678b5293/html5/thumbnails/30.jpg)
Mステップ
• P(a|e,f)は既知として尤度の期待値を最大化
そのアライメントでeとfが対応している回数
(最尤推定)
![Page 31: 統計的機械翻訳入門 #TokyoNLP](https://reader031.fdocument.pub/reader031/viewer/2022012312/55794e02d8b42a31678b5293/html5/thumbnails/31.jpg)
EM:擬似コード
![Page 32: 統計的機械翻訳入門 #TokyoNLP](https://reader031.fdocument.pub/reader031/viewer/2022012312/55794e02d8b42a31678b5293/html5/thumbnails/32.jpg)
実験結果
![Page 33: 統計的機械翻訳入門 #TokyoNLP](https://reader031.fdocument.pub/reader031/viewer/2022012312/55794e02d8b42a31678b5293/html5/thumbnails/33.jpg)
日英対訳コーパスの例
• NICTの日英対訳コーパスで実験
• GIZA++を使ってアライメント
• セグメンテーションのミスが多い
日本語 英語 確率
精神 sentimentality 0.000189816
平安京 Heian-Kyo 0.0121956
李 Takutori-tenno 0.00148212
は NULL 0.251252
![Page 34: 統計的機械翻訳入門 #TokyoNLP](https://reader031.fdocument.pub/reader031/viewer/2022012312/55794e02d8b42a31678b5293/html5/thumbnails/34.jpg)
まとめ
• 機械翻訳はNoisy Channel Modelの枠組み
• IBMモデル1:語彙の翻訳
• アライメントとEMアルゴリズム
![Page 35: 統計的機械翻訳入門 #TokyoNLP](https://reader031.fdocument.pub/reader031/viewer/2022012312/55794e02d8b42a31678b5293/html5/thumbnails/35.jpg)
参考文献• 統計的機械翻訳サーベイ, 岡野原大輔
• 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](https://reader031.fdocument.pub/reader031/viewer/2022012312/55794e02d8b42a31678b5293/html5/thumbnails/36.jpg)
ご清聴ありがとうございました
![Page 37: 統計的機械翻訳入門 #TokyoNLP](https://reader031.fdocument.pub/reader031/viewer/2022012312/55794e02d8b42a31678b5293/html5/thumbnails/37.jpg)
高次のIBMモデル• IBMモデル1: アライメントは一様分布
• IBMモデル2: 絶対アライメントを追加
• IBMモデル3: 単語数の増減を追加
• IBMモデル4: 相対アライメントを追加
• IBMモデル5: 単語の欠損を追加
上位のモデルは下位のモデルによる学習を初期値として再学習