Slide 1

Slide 1 text

30分で学ぶ 句に基づく 統計的機械翻訳 東工大 奥村・高村研究室 D2 上垣外 英剛

Slide 2

Slide 2 text

目次 •  はじめに •  句に基づく統計的機械翻訳の概要 •  句に基づく統計的機械翻訳の学習 •  言語モデルの学習 •  翻訳モデルの学習 •  翻訳過程 •  今回扱わなかった重要な内容 •  より深い理解のために •  翻訳システムの構築

Slide 3

Slide 3 text

この発表について この発表では句に基づく統計的機械学習を扱います •  発表者 •  東工大奥村・高村研究室博士過程二年 上垣外 英剛 (かみがいと ひでたか) twitterアカウント @taka153 •  対象者 •  自然言語処理を知らないが統計的機械翻訳に興味がある人 •  今回の発表は研究者向けではないです・・・ •  難易度 •  入門の入門 •  所要時間 •  30分〜60分 •  質問 •  分からない箇所等があれば発表中に質問お願いします •  スライド •  https://www.dropbox.com/s/bkyi2eq5pn226ja/smt_basic_1.pdf?dl=0

Slide 4

Slide 4 text

統計的機械翻訳とは? •  ルールベース翻訳 •  人手で作成したルールに基づいて翻訳 •  日英翻訳のような文法的に遠い言語に強い •  大量の人員が必要なためコストがかかる •  統計的機械翻訳 •  コーパスの統計に基づいて翻訳 •  人手でルールを記述しなくてもいい •  複雑な構文には弱い コーパス(corpus)とは、言語学において、自然言語処理の研究に用いるため、 自然言語の文章を構造化し大規模に集積したもの。 by Wikipedia

Slide 5

Slide 5 text

目次 •  はじめに •  句に基づく統計的機械翻訳の概要 •  句に基づく統計的機械翻訳の学習 •  言語モデルの学習 •  翻訳モデルの学習 •  翻訳過程 •  今回扱わなかった重要な内容 •  翻訳システムの構築 •  より深い理解のために

Slide 6

Slide 6 text

句に基づく統計的機械翻訳 入力された原言語を句に分解して翻訳 日本語 を 英語 に 翻訳 する 事 は 難しい Japanese is difficult to translate Into English 日本語 を 英語 に 翻訳 する 事 は 難しい 。 入力 Japanese is difficult to translate into English . 出力 。 .

Slide 7

Slide 7 text

翻訳過程の紹介 まず翻訳を統計的に学習する手法を紹介する前に、句に基づく統計的 機械翻訳ではどのように翻訳を行っているのか簡単に説明します ※注意 今回は簡潔な説明なため、無限の計算資源が存在するものとします

Slide 8

Slide 8 text

翻訳過程 列挙された翻訳候補から最終的な翻訳を選択 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 . 翻訳候補は無数に存在 この過程をデコードと呼ぶ 出力

Slide 9

Slide 9 text

翻訳候補の列挙 ~句への分割~ 原言語をフレーズに分割 日本語 を 英語 に 翻訳 する 事 は 難しい 日本語 を 英語 に 翻訳 する 事 は 難しい 。 入力 。 日本語 を 英語 に 翻訳 する 事 は 難しい 。 日本語 を 英語 に 翻訳 する 事 は 難しい 。 日本語 を 英語 に 翻訳 する 事 は 難しい 。 様々な分割が考えられる

Slide 10

Slide 10 text

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

Slide 11

Slide 11 text

翻訳候補の列挙 ~句の並び替え~ 翻訳したフレーズを並び替え 様々な並び替えが考えられる 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 .

Slide 12

Slide 12 text

翻訳過程 ~選択~ 翻訳候補の中から最もらしい翻訳を選びたい どうやって選ぶ? 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 . 日本語 を 英語 に 翻訳 する 事 は 難しい 。 入力

Slide 13

Slide 13 text

選択に必要なもの:スコア 各翻訳候補にスコアを与える 日本語 を 英語 に 翻訳 する 事 は 難しい 。 入力 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

Slide 14

Slide 14 text

どのようなスコアを与える? 正しい翻訳に高いスコアを与えたい 次の二つを考える •  翻訳スコア •  原文と訳文の意味が近いかを表すスコア •  言語スコア •  翻訳文が言語らしいかを表すスコア 以降、扱うスコアは0以下の実数値とする

Slide 15

Slide 15 text

翻訳らしさのスコア フレーズごとに考える 各フレーズのスコアを足した ものが最終的な各候補の 翻訳らしさのスコア 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 = = = =

Slide 16

Slide 16 text

言語らしさのスコア 訳文に対して考える 日本語 を 英語 に 翻訳 する 事 は 難しい 。 入力 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

Slide 17

Slide 17 text

最終的なスコア 翻訳らしさと言語らしさのスコアを足し算 日本語 を 英語 に 翻訳 する 事 は 難しい 。 入力 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 最もスコアが高い訳文を選ぶ

Slide 18

Slide 18 text

翻訳過程の数式化 今までの翻訳過程を数式で表すと 翻訳スコア 言語スコア 翻訳元の文fに対してスコアが最大 となる翻訳eを選ぶ ※スコアは0以下の数値 e = arg max e { Scoretr(e | f) tr + Scorelm(e) lm } 翻訳スコアの重み 言語スコアの重み

Slide 19

Slide 19 text

確率モデルによる翻訳過程 の表現 今までのスコアは対数と確率で表す事が出来る 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以下の数値 翻訳モデル 言語モデル

Slide 20

Slide 20 text

目次 •  はじめに •  句に基づく統計的機械翻訳の概要 •  句に基づく統計的機械翻訳の学習 •  言語モデルの学習 •  翻訳モデルの学習 •  翻訳過程 •  今回扱わなかった重要な内容 •  翻訳システムの構築 •  より深い理解のために

Slide 21

Slide 21 text

今回扱うモデル この発表では以下のモデルの学習を扱う •  言語モデル •  翻訳モデル 学習のためにはコーパスが必要

Slide 22

Slide 22 text

パラレルコーパス・ モノリンガルコーパス これはペンです。 彼はトムです。 あれは青い鳥です。 This is a pen . He is Tom . That is a blue bird . モノリンガルコーパス (日本語) モノリンガルコーパス (英語) パラレルコーパス 二言語で文レベルの対応が存在すればパラレルコーパス コーパス(corpus)とは、言語学において、自然言語処理の研究に用いるため、 自然言語の文章を構造化し大規模に集積したもの。 by Wikipedia

Slide 23

Slide 23 text

学習に必要なもの 各モデルの学習はコーパスを必要とする •  言語モデルの学習 •  モノリンガルコーパスが必要 •  翻訳モデルの学習 •  パラレルコーパスが必要

Slide 24

Slide 24 text

目次 •  はじめに •  句に基づく統計的機械翻訳の概要 •  句に基づく統計的機械翻訳の学習 •  言語モデルの学習 •  翻訳モデルの学習 •  翻訳過程 •  今回扱わなかった重要な内容 •  翻訳システムの構築 •  より深い理解のために

Slide 25

Slide 25 text

0.8 Japanese is difficult to translate into English . 言語モデル 入力された文に対して言語らしさの確率を返すモデル 確率 入力 言語モデル どうやって計算する?

Slide 26

Slide 26 text

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 | Japanese) P(Japanese | ) ※は開始記号 Japanese is の後に difficultが生起する確率 この例は3-gram つまり3単語まで考慮

Slide 27

Slide 27 text

最尤推定 部分的な単語列の生起確率をどのようにもとめる? P(difficult | Japanese is) = → 最尤推定 Count(difficult Japanese is) Count(Japanese is) コーパスに出現する単語列をカウント コーパスに出現しない単語列を含む場合、確率は0 → 未知の単語を扱えない!

Slide 28

Slide 28 text

加算スムージング 最も簡単な方法 : 分子、分母に0より大きい数値を加算 P(difficult | Japanese is) = Count(Japanese is difficult) + δ Count(Japanese is) + δ・V ※ Vは単語の異なり数 未知の単語が含まれていても確率はゼロにならない

Slide 29

Slide 29 text

バックオフスムージング より精度が高いスムージング法 低次の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 × - γ - γ

Slide 30

Slide 30 text

言語モデルまとめ 言語モデル •  役割 •  入力された文の生起確率を返す •  学習 •  モノリンガルコーパスを使用 •  N-gram •  文をN単語の部分文字列に分けて考える •  スムージングで未知語に対応

Slide 31

Slide 31 text

目次 •  はじめに •  句に基づく統計的機械翻訳の概要 •  句に基づく統計的機械翻訳の学習 •  言語モデルの学習 •  翻訳モデルの学習 •  翻訳過程 •  今回扱わなかった重要な内容 •  翻訳システムの構築 •  より深い理解のために

Slide 32

Slide 32 text

翻訳モデル 入力された文に対し、翻訳候補とその確率を返す 0.8 確率 翻訳モデル フレーズの翻訳確率の積 以降フレーズの翻訳について扱う 日本語 を 英語 に 翻訳 する 事 は 難しい Japanese is difficult to translate Into English 。 . 日本語 を 英語 に 翻訳 する 事 は 難しい 。 入力 文の翻訳候補は各フレーズの翻訳候補から導ける

Slide 33

Slide 33 text

フレーズの抽出 Japanese is difficult to translate into English . 与えられた単語アライメントからフレーズを抽出する 黒いセルは単語間に対応が 存在する事を示す

Slide 34

Slide 34 text

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

Slide 35

Slide 35 text

フレーズの列挙 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にした

Slide 36

Slide 36 text

フレーズ翻訳スコアの計算 コーパスから抽出されたフレーズ対をカウント P(translate | 翻訳 する) = Count(translate / 翻訳 する) Count(* / 翻訳 する) フレーズ “翻訳 する” が “translate” に翻訳される確率 “翻訳 する” を含むフレーズ対の数

Slide 37

Slide 37 text

フレーズ翻訳確率の問題点 フレーズ、フレーズ対共に低頻度の場合、確率が信用出来ない 誤った単語アライメントから抽出されたフレーズ対 →低頻度な傾向 P(translate | を 翻訳 する) = Count(translate / 翻訳 する) Count(* / 翻訳 する) P(English | を 翻訳 する 。) = Count(English / を 翻訳 する 。) Count(* / を 翻訳 する 。) 低頻度が原因で正しいフレーズ対応の確率が相対的に低くなる例 3 5 = = 1 1

Slide 38

Slide 38 text

単語を利用した翻訳スコア フレーズは単語から構成される → 単語を用いてフレーズ確率を求めればいい

Slide 39

Slide 39 text

単語アライメントの利用 フレーズ対は単語アライメントから抽出 → フレーズ対には単語アライメントが含まれている フレーズの代わりに単語の対応をカウントすれば良い translate into t(into | に) = Count(* / に) Count(into / に) 単語”に”から”into”が生起される確率t(into | に)は

Slide 40

Slide 40 text

単語アライメントに基づく フレーズ翻訳確率の計算 以下の式に基づく translate into × ( t(translate | 翻訳) + t(translate | する) ) × t(into | に) 1 2 1 1 + = P(translate into | に 翻訳 する) 単語が生起する確率 アライメントが 生起する確率 これにより低頻度のフレーズに対しても 信頼出来る確率を求める事が可能

Slide 41

Slide 41 text

未知語の扱い 翻訳時の未知語の扱いは二通り •  削除 •  そのまま出力 未知語のスコアを学習する事は困難なので、 事前に人手で決定した一定のスコアを与える

Slide 42

Slide 42 text

翻訳モデルまとめ 翻訳モデル •  役割 •  入力されたフレーズに対応する翻訳となるフレーズを返す •  翻訳に対してその生起確率を返す •  学習 •  パラレルコーパスを使用 •  フレーズ抽出 •  単語アライメントが必要 •  確率の計算 •  フレーズそのもの •  フレーズ内の単語アライメント •  未知語

Slide 43

Slide 43 text

目次 •  はじめに •  句に基づく統計的機械翻訳の概要 •  句に基づく統計的機械翻訳の学習 •  言語モデルの学習 •  翻訳モデルの学習 •  翻訳過程 •  今回扱わなかった重要な内容 •  より深い理解のために •  翻訳システムの構築

Slide 44

Slide 44 text

翻訳候補の全列挙は困難 冒頭の翻訳候補の列挙は理想 •  理想 •  全ての候補を列挙し、訳文を選択 •  現実 •  組み合わせ爆発 •  NP困難問題 •  コンピュータの計算量の限界 •  全ての候補の列挙は非現実的 •  近似が必要 どうやって近似する?

Slide 45

Slide 45 text

デコード 探索問題として考える 日本語 を 英語 に 翻訳 する 事 は 難しい Japanese is difficult to translate Into English 。 . start 日本語 を Japanese is 英語 に Into English 日本語 を Japanese is は 難しい difficult 翻訳 する 事 to translate 。 . ・・・・ 。 . は 難しい difficult 。 . は 難しい difficult 全ての経路を考える事は無理・・・

Slide 46

Slide 46 text

ビームサーチ スコア上位N件の候補を保持 日本語 を 英語 に 翻訳 する 事 は 難しい Japanese is difficult to translate Into English 。 . start 日本語 を Japanese is 英語 に Into English 日本語 を Japanese is は 難しい difficult 翻訳 する 事 to translate 。 . ・・・・ 例:上限2 Nを調節する事で計算機の性能に合わせた翻訳が可能

Slide 47

Slide 47 text

目次 •  はじめに •  句に基づく統計的機械翻訳の概要 •  句に基づく統計的機械翻訳の学習 •  言語モデルの学習 •  翻訳モデルの学習 •  翻訳過程 •  今回扱わなかった重要な内容 •  より深い理解のために •  翻訳システムの構築

Slide 48

Slide 48 text

単語アライメントの生成 単語アライメントはパラレルコーパスから教師無しで学習可能 → 人手でアライメントを与える必要はない Japanese is difficult to translate into English . ※今回の発表では詳細は扱いません

Slide 49

Slide 49 text

その他のモデル 翻訳モデル、言語モデル以外にも様々なモデルが存在 •  並び替えモデル •  フレーズ •  語彙 •  長さモデル •  フレーズ粒度 ※今回の発表では詳細は扱いません

Slide 50

Slide 50 text

パラメータチューニング e = arg max e { log(Ptr(e | f)) tr + log(Plm(e)) lm } 翻訳モデル 言語モデル 各モデルの重みを学習 ※今回の発表では詳細は扱いません

Slide 51

Slide 51 text

目次 •  はじめに •  句に基づく統計的機械翻訳の概要 •  句に基づく統計的機械翻訳の学習 •  言語モデルの学習 •  翻訳モデルの学習 •  翻訳過程 •  今回扱わなかった重要な内容 •  翻訳システムの構築 •  より深い理解のために

Slide 52

Slide 52 text

実際に翻訳したい 句に基づく統計的機械翻訳システムを構築したい 必要なもの •  デコーダー •  翻訳モデル •  言語モデル •  学習データ 自分で最初から作るのは大変そう・・・

Slide 53

Slide 53 text

MOSES 統計的機械翻訳のためのオープンソースなフレームワーク http://www.statmt.org/moses/ いくつかのツールによって構成される •  単語アライメント : GIZA++ •  言語モデル : IRSTLM, SRILM •  翻訳モデル : moses •  その他のモデル : moses •  デコーダ : moses

Slide 54

Slide 54 text

MOSESによる翻訳システム NAIST 中村研究室のGraham Neubig先生が、京都フリー翻訳タス クのベースラインとして、簡単に導入出来るスクリプトと訓練データ、開 発データ、テストデータを公開してくださっている http://www.phontron.com/kftt/index-ja.html

Slide 55

Slide 55 text

MOSESによる翻訳システム ~参考資料~ Graham Neubig先生とKevin Duh先生のチュートリアル http://www.phontron.com/slides/building-smt-ja-20120510.pdf 公式サイトのガイド http://www.statmt.org/moses/?n=Moses.Baseline mosesdecoderのマニュアル http://www.statmt.org/moses/manual/manual.pdf

Slide 56

Slide 56 text

パラレルコーパスの獲得 翻訳モデルを学習するためにはパラレルコーパスが必要 方法は二つ •  公開されているものを使う •  商用利用可能なものは日本語では少ない •  自分で獲得 •  Webページをクロールする事になる

Slide 57

Slide 57 text

パラレルコーパスの獲得 コンパラブルコーパス : 二言語にまたがる内容が同じ文書 コンパラブルコーパスからパラレルコーパスが抽出できる →まずはコンパラブルコーパスを獲得する必要

Slide 58

Slide 58 text

パラレルコーパスの獲得 Common Crawl Miner •  https://github.com/jrs026/CommonCrawlMiner •  Common crawlデータから対訳文を抽出 •  Common crawl : http://commoncrawl.org •  Amazon s3で使用出来るWebコーパスを提供 •  合計2PB •  商用利用可能かは怪しい

Slide 59

Slide 59 text

目次 •  はじめに •  句に基づく統計的機械翻訳の概要 •  句に基づく統計的機械翻訳の学習 •  言語モデルの学習 •  翻訳モデルの学習 •  翻訳過程 •  今回扱わなかった重要な内容 •  翻訳システムの構築 •  より深い理解のために

Slide 60

Slide 60 text

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

Slide 61

Slide 61 text

おすすめの本② コロナ社 自然言語処理シリーズ 1 言語処理のための 機械学習入門 奥村学 監修 高村大也 著 •  特徴 •  初学者向けの本であり、自然言語処理の基礎を 簡潔に学ぶことができる •  演習問題の説明も詳細なので、独学に向く •  サポートサイト •  http://www.lr.pi.titech.ac.jp/~takamura/ ml4nl.html

Slide 62

Slide 62 text

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

Slide 63

Slide 63 text

おすすめのスライド 渡辺太郎 著 『統計的手法による機械翻訳』 http://www2.nict.go.jp/univ-com/multi_trans/member/ t_watana/papers/statmt-tutorial2013.pdf Graham Neubig 著 『機械翻訳』 http://www.phontron.com/slides/neubig-alagin-20130117.pdf

Slide 64

Slide 64 text

おわり