Upgrade to Pro — share decks privately, control downloads, hide ads and more …

smt_basic_in_gunosy

hkamiga
July 28, 2015

 smt_basic_in_gunosy

basic tutorial for phrase based statistical machine translation

hkamiga

July 28, 2015
Tweet

Other Decks in Technology

Transcript

  1. 目次 •  はじめに •  句に基づく統計的機械翻訳の概要 •  句に基づく統計的機械翻訳の学習 •  言語モデルの学習 • 

    翻訳モデルの学習 •  翻訳過程 •  今回扱わなかった重要な内容 •  より深い理解のために •  翻訳システムの構築
  2. この発表について この発表では句に基づく統計的機械学習を扱います •  発表者 •  東工大奥村・高村研究室博士過程二年 上垣外 英剛 (かみがいと ひでたか)

    twitterアカウント @taka153 •  対象者 •  自然言語処理を知らないが統計的機械翻訳に興味がある人 •  今回の発表は研究者向けではないです・・・ •  難易度 •  入門の入門 •  所要時間 •  30分〜60分 •  質問 •  分からない箇所等があれば発表中に質問お願いします •  スライド •  https://www.dropbox.com/s/bkyi2eq5pn226ja/smt_basic_1.pdf?dl=0
  3. 統計的機械翻訳とは? •  ルールベース翻訳 •  人手で作成したルールに基づいて翻訳 •  日英翻訳のような文法的に遠い言語に強い •  大量の人員が必要なためコストがかかる • 

    統計的機械翻訳 •  コーパスの統計に基づいて翻訳 •  人手でルールを記述しなくてもいい •  複雑な構文には弱い コーパス(corpus)とは、言語学において、自然言語処理の研究に用いるため、 自然言語の文章を構造化し大規模に集積したもの。 by Wikipedia
  4. 目次 •  はじめに •  句に基づく統計的機械翻訳の概要 •  句に基づく統計的機械翻訳の学習 •  言語モデルの学習 • 

    翻訳モデルの学習 •  翻訳過程 •  今回扱わなかった重要な内容 •  翻訳システムの構築 •  より深い理解のために
  5. 句に基づく統計的機械翻訳 入力された原言語を句に分解して翻訳 日本語 を 英語 に 翻訳 する 事 は

    難しい Japanese is difficult to translate Into English 日本語 を 英語 に 翻訳 する 事 は 難しい 。 入力 Japanese is difficult to translate into English . 出力 。 .
  6. 翻訳過程 列挙された翻訳候補から最終的な翻訳を選択 Japanese is difficult translation Into English . Japanese

    is difficult to translate Into English . Japanese difficult to translate English . Japanese is difficult to translate Into English . 日本語 を 英語 に 翻訳 する 事 は 難しい 。 入力 Japanese is difficult to translate Into English . Japanese difficult to translate English . Japanese is difficult to translate Into English . Japanese difficult to translate English . 翻訳候補は無数に存在 この過程をデコードと呼ぶ 出力
  7. 翻訳候補の列挙 ~句への分割~ 原言語をフレーズに分割 日本語 を 英語 に 翻訳 する 事

    は 難しい 日本語 を 英語 に 翻訳 する 事 は 難しい 。 入力 。 日本語 を 英語 に 翻訳 する 事 は 難しい 。 日本語 を 英語 に 翻訳 する 事 は 難しい 。 日本語 を 英語 に 翻訳 する 事 は 難しい 。 様々な分割が考えられる
  8. 翻訳候補の列挙 ~句の翻訳~ 分割したフレーズを翻訳 様々な翻訳が考えられる Japanese is difficult to translate Into

    English . Japanese to English translate Is difficult . Japanese to English translation difficult . 日本語 を 英語 に 翻訳 する 事 は 難しい 日本語 を 英語 に 翻訳 する 事 は 難しい 。 入力 。 Japanese of In English translating difficult .
  9. 翻訳候補の列挙 ~句の並び替え~ 翻訳したフレーズを並び替え 様々な並び替えが考えられる Japanese is difficult to translate Into

    English . 日本語 を 英語 に 翻訳 する 事 は 難しい 日本語 を 英語 に 翻訳 する 事 は 難しい 。 入力 。 Japanese is difficult to translate Into English . Japanese is difficult to translate Into English . Japanese is difficult to translate Into English .
  10. 翻訳過程 ~選択~ 翻訳候補の中から最もらしい翻訳を選びたい どうやって選ぶ? Japanese is difficult translation Into English

    . Japanese is difficult to translate Into English . Japanese difficult to translate English . Japanese is difficult to translate Into English . Japanese is difficult to translate Into English . Japanese difficult to translate English . Japanese is difficult to translate Into English . Japanese difficult to translate English . 日本語 を 英語 に 翻訳 する 事 は 難しい 。 入力
  11. 選択に必要なもの:スコア 各翻訳候補にスコアを与える 日本語 を 英語 に 翻訳 する 事 は

    難しい 。 入力 Japanese is difficult translation Into English . Japanese is difficult to translate Into English . Japanese difficult to translate English . Japanese is difficult to translate Into English . Japanese is difficult to translate Into English . Japanese difficult to translate English . Japanese is difficult to translate Into English . Japanese difficult to translate English . スコア 高いスコアの候補を選べば 翻訳出来る! -9 -7 -11 -9 -9 -13 -10 -10
  12. 翻訳らしさのスコア フレーズごとに考える 各フレーズのスコアを足した ものが最終的な各候補の 翻訳らしさのスコア Japanese is difficult to translate

    Into English . Japanese is English to translate Is difficult . Japanese Into English translate difficult . 日本語 を 英語 に 翻訳 する 事 は 難しい 日本語 を 英語 に 翻訳 する 事 は 難しい 。 入力 。 Japanese English to translate difficult . スコア -1 -1 -2 -2 -1 -1 -2 -2 + + + + + + + + + + + + + + + + -1 -2 -1 -1 -2 -2 -1 -2 -1 -1 -2 -2 -6 -7 -8 -9 = = = =
  13. 言語らしさのスコア 訳文に対して考える 日本語 を 英語 に 翻訳 する 事 は

    難しい 。 入力 Japanese is difficult translation Into English . Japanese is difficult to translate Into English . Japanese difficult to translate English . Japanese is difficult to translate Into English . Japanese is difficult to translate Into English . Japanese difficult to translate English . Japanese is difficult to translate Into English . Japanese difficult to translate English . スコア -2 -1 -1 -3 -3 -3 -4 -2
  14. 最終的なスコア 翻訳らしさと言語らしさのスコアを足し算 日本語 を 英語 に 翻訳 する 事 は

    難しい 。 入力 Japanese is difficult translation Into English . Japanese is difficult to translate Into English . Japanese difficult to translate English . Japanese is difficult to translate Into English . Japanese is difficult to translate Into English . Japanese difficult to translate English . Japanese is difficult to translate Into English . Japanese difficult to translate English . 翻 訳 ら し さ 言 語 ら し さ 最 終 ス コ ア -2 -1 -1 -3 -3 -3 -4 -2 -7 -6 -10 -6 -6 -10 -6 -8 + + + + + + + + + + + + + + + + -9 -7 -11 -9 -9 -13 -10 -10 最もスコアが高い訳文を選ぶ
  15. 確率モデルによる翻訳過程 の表現 今までのスコアは対数と確率で表す事が出来る e = arg max e { log(Ptr(e

    | f)) tr + log(Plm(e)) lm } e = arg max e { Scoretr(e | f) tr + Scorelm(e) lm } ※スコアは0以下の数値 翻訳モデル 言語モデル
  16. 目次 •  はじめに •  句に基づく統計的機械翻訳の概要 •  句に基づく統計的機械翻訳の学習 •  言語モデルの学習 • 

    翻訳モデルの学習 •  翻訳過程 •  今回扱わなかった重要な内容 •  翻訳システムの構築 •  より深い理解のために
  17. パラレルコーパス・ モノリンガルコーパス これはペンです。 彼はトムです。 あれは青い鳥です。 This is a pen .

    He is Tom . That is a blue bird . モノリンガルコーパス (日本語) モノリンガルコーパス (英語) パラレルコーパス 二言語で文レベルの対応が存在すればパラレルコーパス コーパス(corpus)とは、言語学において、自然言語処理の研究に用いるため、 自然言語の文章を構造化し大規模に集積したもの。 by Wikipedia
  18. 目次 •  はじめに •  句に基づく統計的機械翻訳の概要 •  句に基づく統計的機械翻訳の学習 •  言語モデルの学習 • 

    翻訳モデルの学習 •  翻訳過程 •  今回扱わなかった重要な内容 •  翻訳システムの構築 •  より深い理解のために
  19. 0.8 Japanese is difficult to translate into English . 言語モデル

    入力された文に対して言語らしさの確率を返すモデル 確率 入力 言語モデル どうやって計算する?
  20. N-GRAM 入力された単語列の生起確率を 部分的な単語列の生起確率の積で表す P(Japanese is difficult to translate into English

    .) = × P(to | is difficult) × P(translate | difficult to) × P(into | to translate) × P(English | translate into) × P(. | into English) × P(difficult | Japanese is) × P(is | <s> Japanese) P(Japanese | <s>) ※<s>は開始記号 Japanese is の後に difficultが生起する確率 この例は3-gram つまり3単語まで考慮
  21. 最尤推定 部分的な単語列の生起確率をどのようにもとめる? P(difficult | Japanese is) = → 最尤推定 Count(difficult

    Japanese is) Count(Japanese is) コーパスに出現する単語列をカウント コーパスに出現しない単語列を含む場合、確率は0 → 未知の単語を扱えない!
  22. 加算スムージング 最も簡単な方法 : 分子、分母に0より大きい数値を加算 P(difficult | Japanese is) = Count(Japanese

    is difficult) + δ Count(Japanese is) + δ・V ※ Vは単語の異なり数 未知の単語が含まれていても確率はゼロにならない
  23. バックオフスムージング より精度が高いスムージング法 低次のn-gramを用いてスムージングを行う P(difficult | Japanese is) = Count(Japanese is

    difficult) Count(Japanese is) + α1 Count(is difficult) Count(is) + α2 Count(difficult) Count(*) + α3 + + β1 × β2 × - γ - γ
  24. 言語モデルまとめ 言語モデル •  役割 •  入力された文の生起確率を返す •  学習 •  モノリンガルコーパスを使用

    •  N-gram •  文をN単語の部分文字列に分けて考える •  スムージングで未知語に対応
  25. 目次 •  はじめに •  句に基づく統計的機械翻訳の概要 •  句に基づく統計的機械翻訳の学習 •  言語モデルの学習 • 

    翻訳モデルの学習 •  翻訳過程 •  今回扱わなかった重要な内容 •  翻訳システムの構築 •  より深い理解のために
  26. 翻訳モデル 入力された文に対し、翻訳候補とその確率を返す 0.8 確率 翻訳モデル フレーズの翻訳確率の積 以降フレーズの翻訳について扱う 日本語 を 英語

    に 翻訳 する 事 は 難しい Japanese is difficult to translate Into English 。 . 日本語 を 英語 に 翻訳 する 事 は 難しい 。 入力 文の翻訳候補は各フレーズの翻訳候補から導ける
  27. 抽出時の制約 Japanese is difficult to translate into English . 抽出には以下の制約が存在

    •  抽出するフレーズの縦横の延長線上に単語アライメントの対応が存在してはならない •  抽出するフレーズには一つ以上の単語アライメントの対応が存在しなければならない フレーズ対 翻訳 する 事 / to translate の例 水色の箇所に黒いセルが 存在してはならない
  28. フレーズの列挙 Japanese is difficult to translate into English . 制約を満たすフレーズを全て列挙する

    この作業は全ての文に対して行う 日本語 / Japanese 英語 / English に / into 翻訳 する / translate 事 / to は / is 難しい / difficult 英語 に 翻訳 する / translate into English に 翻訳 する / translate into に 翻訳 する 事 / to translate into 事 は 難しい / is difficult to は 難しい / is difficult 翻訳 する 事 / to translate 翻訳 する 事 は 難しい / is difficult to translate 。 / . ※この例では単語数の制限を5にした
  29. フレーズ翻訳スコアの計算 コーパスから抽出されたフレーズ対をカウント P(translate | 翻訳 する) = Count(translate / 翻訳

    する) Count(* / 翻訳 する) フレーズ “翻訳 する” が “translate” に翻訳される確率 “翻訳 する” を含むフレーズ対の数
  30. フレーズ翻訳確率の問題点 フレーズ、フレーズ対共に低頻度の場合、確率が信用出来ない 誤った単語アライメントから抽出されたフレーズ対 →低頻度な傾向 P(translate | を 翻訳 する) =

    Count(translate / 翻訳 する) Count(* / 翻訳 する) P(English | を 翻訳 する 。) = Count(English / を 翻訳 する 。) Count(* / を 翻訳 する 。) 低頻度が原因で正しいフレーズ対応の確率が相対的に低くなる例 3 5 = = 1 1
  31. 単語アライメントに基づく フレーズ翻訳確率の計算 以下の式に基づく translate into × ( t(translate | 翻訳)

    + t(translate | する) ) × t(into | に) 1 2 1 1 + = P(translate into | に 翻訳 する) 単語が生起する確率 アライメントが 生起する確率 これにより低頻度のフレーズに対しても 信頼出来る確率を求める事が可能
  32. 翻訳モデルまとめ 翻訳モデル •  役割 •  入力されたフレーズに対応する翻訳となるフレーズを返す •  翻訳に対してその生起確率を返す •  学習

    •  パラレルコーパスを使用 •  フレーズ抽出 •  単語アライメントが必要 •  確率の計算 •  フレーズそのもの •  フレーズ内の単語アライメント •  未知語
  33. 目次 •  はじめに •  句に基づく統計的機械翻訳の概要 •  句に基づく統計的機械翻訳の学習 •  言語モデルの学習 • 

    翻訳モデルの学習 •  翻訳過程 •  今回扱わなかった重要な内容 •  より深い理解のために •  翻訳システムの構築
  34. 翻訳候補の全列挙は困難 冒頭の翻訳候補の列挙は理想 •  理想 •  全ての候補を列挙し、訳文を選択 •  現実 •  組み合わせ爆発

    •  NP困難問題 •  コンピュータの計算量の限界 •  全ての候補の列挙は非現実的 •  近似が必要 どうやって近似する?
  35. デコード 探索問題として考える 日本語 を 英語 に 翻訳 する 事 は

    難しい Japanese is difficult to translate Into English 。 . start 日本語 を Japanese is 英語 に Into English 日本語 を Japanese is は 難しい difficult 翻訳 する 事 to translate 。 . ・・・・ 。 . は 難しい difficult 。 . は 難しい difficult 全ての経路を考える事は無理・・・
  36. ビームサーチ スコア上位N件の候補を保持 日本語 を 英語 に 翻訳 する 事 は

    難しい Japanese is difficult to translate Into English 。 . start 日本語 を Japanese is 英語 に Into English 日本語 を Japanese is は 難しい difficult 翻訳 する 事 to translate 。 . ・・・・ 例:上限2 Nを調節する事で計算機の性能に合わせた翻訳が可能
  37. 目次 •  はじめに •  句に基づく統計的機械翻訳の概要 •  句に基づく統計的機械翻訳の学習 •  言語モデルの学習 • 

    翻訳モデルの学習 •  翻訳過程 •  今回扱わなかった重要な内容 •  より深い理解のために •  翻訳システムの構築
  38. パラメータチューニング e = arg max e { log(Ptr(e | f))

    tr + log(Plm(e)) lm } 翻訳モデル 言語モデル 各モデルの重みを学習 ※今回の発表では詳細は扱いません
  39. 目次 •  はじめに •  句に基づく統計的機械翻訳の概要 •  句に基づく統計的機械翻訳の学習 •  言語モデルの学習 • 

    翻訳モデルの学習 •  翻訳過程 •  今回扱わなかった重要な内容 •  翻訳システムの構築 •  より深い理解のために
  40. パラレルコーパスの獲得 Common Crawl Miner •  https://github.com/jrs026/CommonCrawlMiner •  Common crawlデータから対訳文を抽出 • 

    Common crawl : http://commoncrawl.org •  Amazon s3で使用出来るWebコーパスを提供 •  合計2PB •  商用利用可能かは怪しい
  41. 目次 •  はじめに •  句に基づく統計的機械翻訳の概要 •  句に基づく統計的機械翻訳の学習 •  言語モデルの学習 • 

    翻訳モデルの学習 •  翻訳過程 •  今回扱わなかった重要な内容 •  翻訳システムの構築 •  より深い理解のために
  42. おすすめの本① コロナ社 自然言語処理シリーズ 4 機械翻訳 奥村学 監修 渡辺太郎 ・ 今村賢治

    ・ 賀沢秀人 ・ Neubig, Graham ・ 中澤敏明 共著 •  特徴 •  必要な知識が網羅されており、機械翻訳を学ぶ 上で必須な本 •  内容は難しめ •  サポートサイト •  https://sites.google.com/site・ coronamachinetranslation/
  43. おすすめの本② コロナ社 自然言語処理シリーズ 1 言語処理のための 機械学習入門 奥村学 監修 高村大也 著

    •  特徴 •  初学者向けの本であり、自然言語処理の基礎を 簡潔に学ぶことができる •  演習問題の説明も詳細なので、独学に向く •  サポートサイト •  http://www.lr.pi.titech.ac.jp/~takamura/ ml4nl.html
  44. おすすめの本③ Statistical Machine Translation Philipp Koehn, Hardcover, 488 pages, Publisher:

    Cambridge University Press •  特徴 •  『機械翻訳』が出版されるまではこの本で学ぶし かなかった •  各章のスライドが公開されているため、勉強会 向き •  サポートサイト •  http://www.statmt.org/book/