SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

DeveloperZine(デベロッパージン)- エンジニアの意思決定を支える技術情報メディア ProductZine

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

機械翻訳のメカニズムを探検しよう

Google翻訳にも使われている「統計的機械翻訳」のしくみを覗いてみよう

機械翻訳のメカニズムを探検しよう 第1回

3. Nグラム言語モデル

 第2節では、翻訳の理論について述べ、直接翻訳モデルP(e|f)を、言語モデルP(e)および逆の翻訳モデルP(f|e)の積として書き換えました。このようなことをしたのは、P(e|f)を用いた翻訳を直接理由付けしようとすると、パラメータ推定に高い確度が必要となり、困難だからです。しかしながら、ベイズの定理を用いてこれを分解することにより、翻訳モデルP(f|e)がfに対する訳語として一般的な、良好なeを保証し、P(e)が文法に合わない翻訳を排除するといったように、それぞれの問題に特化したモデルを用いて問題を解決できます。

 言語をモデル化する方法としては、文の構造を表す構成要素パースツリーを構築する等、いくつか挙げられますが、言語モデルの主な用途は、語を左から右へとたどるシーケンスモデルです。言い換えれば、"John loves Mary."といった英文をシーケンスとして捉え、読む語順に従って一語一句、確率を見ていくことです。

3.1 Nグラム

 シーケンスが出現する確率を推定するのに最もよく用いられるのは、以下の式で示されているように、大きなコーパスの中でシーケンスが出現した回数を数える、相対度数カウントという方法です。

式6
式6

 しかし、言語は創造的であるため、精度の高い推定が得られるほど大きなコーパスは存在しません。多くの完全文はその時点までに出現したことがないため、0回を数えることになります。しかし、人間は文字列を分割し、より短い文字列を精査することができます。もし分割された後の文字列が適切であれば、その文字列を"I like eating trees."(この文を見たことはないかもしれませんが、良い例文の1つです)のような、文法的に正しい文として受け入れることはできます。

 分割された後の文字列に含まれる語数がnである場合、これをNグラムと定義します。例えば、2語であればバイグラム(2グラム)、3語であればトライグラム(3グラム)と呼びます。先ほどの文であれば、“I like”、“like eating”、“eating trees”等は2グラム、“I like eating”、“like eating trees”、“eating trees .”[1]等は3グラムとなります。

[1] ここでは、文末であることを明示するため、ピリオドを省略していないことに注意してください。

3.2 マルコフ仮定とマルコフ連鎖

 前項では、語数nから成る、分割された後の文字列をNグラムと定義しました。1語から

 成るユニグラムを除く、ほとんどのNグラムは、統計的依存を要するモデルを必要とします。この種の最も単純なモデルはマルコフ仮定に基づくものです。ここでも、下記の仮定に基づいて、言語モデルに用いることにします。

 語の選択は、ある特定の語の前にあるn語のみに依存する。

 そのため、語のシーケンスを形成する2グラムを用いることは、ある語の後に続く語は、その直前にある語にのみ依存することを意味します。例えば、先ほどの文であれば、“like”の後に“eating”という語が続く確率は、“I”には依存しません。そのため、その確率は条件付き確率 P(eating|like)として表すことができます。

 Nグラム言語モデルについて詳しく述べる前に、結合確率分布を計算する手段となるマルコフ連鎖について説明します。これは、結合確率分布を、条件付き確率の積として表すものです[2]

式7
式7

[2] ここでは、ある文の最初の語をw1、n番目の語をwnと表します。

 式6で表した例文は、マルコフ連鎖を用いると下記のように分解することができます。

式8
式8

 また、マルコフ仮定を用いて、下記の式で示すように、結合確率分布の推定を概算することもできます。

式9
式9

 完全文よりもこういった2グラム文字列のほうがコーパスの中に出現する頻度が高く、より容易に数えられるため、この式を用いることで、確率を容易に計算することができます。

3.3 パラメータ推定

 前項の例では、シーケンスの確率を2グラム言語モデルを用いて計算する式を挙げました。この式を用いると、P(John)やP(loves|John)といった、分割された後の文字列の確率をかけ算するだけで、シーケンスの確率を計算することができます。ですが、これらの確率はどこから出てくるのでしょうか? これらの確率はコーパスから推定できます。例えば、確率P(John)を推定するには、コーパスに“John”という語が出現する回数を数え、総語数で割ればよい、ということになります。条件付き確率 P(loves|John)については、下記の式で示すように、語“loves”が“John”の直後に出現する回数を数え、“John”の出現回数で割ればよい、ということになります。

式10
式10

 より一般的には、確率P(wj|wi)は以下の式で推定できます。

式11
式11

 上に示したように、相対度数カウントを用いるのは、確率を推定するための、いくつかある方法のうちの1つですが、これは特別なものです。これは最尤推定といい、この確率推定によって、最もよく出現する語のシーケンスの確率が最も高く算出されます。そのため、出現頻度の高い文が優先され、出現頻度の低い、もしくは文法的に正しくない文は排除されることになります。

 2グラム言語モデルの推定についてはこれまで説明してきた通りです。しかし、5グラム、6グラムといった具合に、より語数の多い言語モデルを用いることもしばしばあります。この場合における最尤推定の式は、下記の通り、単に前掲の式を拡張したものとなります。

式12
式12

4. 次回予告

 今回は、統計的機械翻訳および言語モデルの基礎的な理論を説明しました。言語モデルについては、パラメータ推定に最尤法を用いました。ある時点までにデータベースの中になかった発話について、0回と数えられることに対しては、Nグラム言語モデルでも対処できるものの、分割されたNグラムもまた0回と数えられることが高い確率であり得ます。そのため、次回はこの問題に対処するためのスムージング法をいくつか紹介します。

この記事は参考になりましたか?

連載通知を行うには会員登録(無料)が必要です。
既に会員の方はを行ってください。
この記事の著者

韓 丹(カン タン)

 2014年に国立情報学研究所で博士号を取得。自然言語処理研究、特に中国語、日本語、および英語の統計機械翻訳を研究。その後ワークスアプリケーションズにて製品への機械翻訳技術の導入を担当。現在は産業技術総合研究所にてクロスモーダルグラウンディング(Cross-Modal Grounding)を担当。趣...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

八島 良太(株式会社ワークスアプリケーションズ)(ヤシマ リョウタ)

国際基督教大学教養学部卒。同学在学中にオハイオ州立大学に留学し、経営学を学ぶ。外資系ストレージベンダーでの勤務を経て、2011年にワークスアプリケーションズに入社。同社のERPパッケージソフトウェア「COMPANY」が用いているミドルウェア調査の傍ら、技術系翻訳も行う。関心のある技術領域はストレージ...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

CodeZine(コードジン)
https://codezine.jp/article/detail/9547 2016/08/02 14:00

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー