View
3.397
Download
10
Category
Preview:
DESCRIPTION
Citation preview
統計的機械翻訳入門 その3 ~デコーダ編~
@nokuno
#tokyonlp
参考文献
• 機械翻訳の教科書
• 6章を中心に
• http://amzn.to/hIvoo6
自己紹介
• @nokuno / id:nokuno
• #TokyoNLP主催
• Social IME / StaKK開発者
• Web系ソフトウェアエンジニア
• 統計的機械翻訳入門中
デコードとは?
• モデル:P(e|f) ∝ P(f|e) P(e)
• デコード:入力文に対し最適解を返す
• 全探索:指数的に増えてしまい計算困難
• →最適解を諦めて高速に探索
翻訳エラー
• 翻訳エラーの種類
– サーチエラー:最適な解ではない
– モデルエラー:最適解が正解ではない
– 幸運なエラー:最適解ではないが正解
• 今回はサーチエラーの削減を主眼に置く
翻訳プロセス • タスク:ドイツ語から英語に翻訳する
翻訳プロセス • タスク:ドイツ語から英語に翻訳する
翻訳プロセス • タスク:ドイツ語から英語に翻訳する
翻訳プロセス • タスク:ドイツ語から英語に翻訳する
翻訳プロセス • タスク:ドイツ語から英語に翻訳する
p(e|f) =I�
i=1
φ(fi|ei)d(si − ei−1 − 1)p(ei|ei−11 )
翻訳モデル • 以下の確率を最大化するeを求めたい
フレーズ翻訳 並べ替え 言語モデル
→Πの中身はフレーズを追加するごとに増えていく
探索問題としてのデコード
• フレーズごとに複数の翻訳候補がありうる
• 翻訳候補は左から順番に生成する
• 入力文はどの順番で消費してもいい
• 「仮説」:途中までの翻訳結果
翻訳候補
• フレーズごとに翻訳候補を列挙する
翻訳ステップ1
• 空の仮説からはじめる
翻訳ステップ2
• 入力文を消費しながら仮説を展開していく
翻訳ステップ3
• 出力文が終わるまで続ける
翻訳ステップ4
• 最良の解を見つける
計算量の問題
• 入力をどの順に消費してもよいため,指数時間になってしまう!
• 計算量を減らす方法
– 動的計画法
– ヒューリスティックな枝刈り
動的計画法
• 同じ単語に到達するパスを結合する
(trigramを仮定)
不要なパスを切り捨て
結合のための制限事項 • 翻訳モデル:フレーズ翻訳はそれぞれ独立
– 特に制約は必要ない
• 言語モデル:n-‐1単語の履歴に依存
– n-‐1単語が一致したときのみ結合可能
• 並べ替えモデル:一つ前の終了位置に依存
– 終了位置が同じパスのみ結合可能
枝刈り
• 動的計画法では十分に計算量が減らない
• 枝刈り:探索中に不要な仮説を取り除く
– 仮説をスタックに格納する
– 各スタック中の仮説の数を制限する
– 並べ替えの距離を制限する
スタックデコーダ
• 翻訳済み単語数毎にスタックを用意する
アルゴリズム
枝刈りの方法
• 枝刈りの戦略
– スタックのサイズを制限する
– 最大スコアのα倍(0.1とか)以上の仮説を保持
– 2つの組合せ
• 計算量:O(入力長^2)
並べ替えの制限
• 並べ替えの最大距離を制限する
• 典型的には5-‐8単語で十分な精度が出る
• 計算量:O(入力長)
枝刈りの問題点
• 珍しい単語の翻訳が先送りされてしまう!
Future Cost Estimation • 未翻訳の文の翻訳コストはどれくらいか?
– ※コスト=負の対数確率
• 翻訳モデルの要素ごとに考える
– フレーズコスト:翻訳テーブルから取得
– 言語モデル:1-‐gramで近似
– 並べ替えコスト:ここでは無視する
フレーズコストの推定 • 最もコストの小さいフレーズを採用
コストの合成
• 翻訳済みと未翻訳のコストを合成
まとめ
• 翻訳プロセス:出力を左から順に生成
• 翻訳候補:翻訳テーブルから検索
• 探索問題としてのデコーディング
• 探索空間の削減:動的計画法と枝刈り
完
Recommended