統計的機械翻訳は用例翻訳に段々近づいている

今日は機械翻訳勉強会で

  • Michel Galley and Christopher D. Manning. Accurate Non-Hierarchical Phrase-Based Translation. NAACL 2010.
  • Daniel Cer; Michel Galley; Daniel Jurafsky; Christopher D. Manning. Phrasal: A Statistical Machine Translation Toolkit for Exploring New Model Features. NAACL 2010.

の2本を紹介。簡単に言うと、これまでのフレーズベースの統計翻訳(研究・商用ともにフレーズベースのものが一番よく使われている)は、連続する単語しか扱えないという問題点があったが、本研究では原言語側と目的言語側の両方にギャップがあるようなフレーズも扱うことができるようにしたところ、大きく精度が向上した、という話。

ここ数年の統計翻訳のトレンドとしては、2005年に階層的フレーズ(この場所になにかが入る、というスロットがあるテンプレート)を用いた翻訳の研究が ACL という自然言語処理の最難関国際会議でベストペーパーを受賞したこともあり、木構造やなど構造を持った統計翻訳が流行っているのだが、計算量が異常にかかって遅いとか、実装が難しいといった問題点があり、実用的にはフレーズベースのものが広く使われている。この研究では、既存のフレーズベースの手法をほとんど変えずにできるのが利点。たとえば、フレーズベースの手法だと、翻訳が入力の長さに比例する時間でできるのだが、階層的フレーズの場合は O(n^3) の時間がかかるとか、いろいろ面倒くさいのである。

それを実現するためにいくつか実装上の工夫があり、一つは普通のフレーズベースの手法だと辞書引きはキーとバリューを持っていればいいだけなので簡単(フレーズテーブルという表を引く)なのだが、間にギャップがあるような場合だと単に表を引くだけでは効率的にフレーズが見つからないので、Suffix Array を用いてテーブル引きを高速化しますよ、という話。

これは元々階層的フレーズを獲得するために考案された手法だが、これを非連続なフレーズの抽出にも使いましょう、というわけ。

非連続なフレーズが使えることの利点は、実は階層的フレーズのような手法(専門的には同期文脈自由文法というのを使う。「同期」というのは2言語間で同時に構文木を生成するのでこう呼ばれる)ではフランス語の "ne ... pas" が英語の "not" に対応する、というようなルールを獲得できないのだが、非連続なフレーズを用いる提案手法ではこういうのが扱え、実際フランス語と英語間では18.6%がこのようなフレーズであり、フレーズが階層的、もしくは木でなけけばならないという制約は強すぎる制約なので、それを緩めました、という話。ただ、緩めすぎると逆に妥当でない文が生成されてしまうかもしれないので、ギャップの数が多くなりすぎないようにする制約をかける(ペナルティの強さは機械学習によって定まる)。これまでの木ベースの手法や階層的フレーズベースの手法は、フレーズの抽出にハードな制約をかけることに相当し、提案手法はソフトな制約をかけることに相当する、ということ。

実は言いたいのはそちらではなく後者のの論文。少し彼の論文から引用。

Using approximate pattern matching algorithms, we imagine that machine translation could be treated very much like search in a protein database. In this scenario, the goal is to select training sentences that match the input sentence as closely as possible, under some evaluation function that accounts for both matching and mismatched sequences, as well as possibly other data features. Once we have found the closest sentences we can translate the matched portions in their entirety, replacing mismatches with appropriate word, phrase, or hierarchical phrase translations as needed. This model would bring statistical machine translation closer to convergence with so-called example-based translation, following current trends (Marcu, 2001; Och, 2002).

近似パターンマッチングアルゴリズムを用いると、機械翻訳はタンパク質データベースの検索と非常によく似た手法だと考えることもできる。このシナリオでは、入力文にできるだけ似た訓練文を選択することがゴールとなる。その際、マッチした、もしくはマッチしなかったシーケンスなどいろいろな特徴量に対しての評価関数を用いる。いちばん似た文が見つかれば、マッチした箇所を翻訳することができる。マッチしなかった箇所は、必要に応じて適切な単語、フレーズ、もしくは階層的フレーズなどの翻訳で置き換える。このモデルは統計的機械翻訳を最終的にはいわゆる用例ベース翻訳に非常に近いものにするだろう。これは近年の流行とも合致している (Marcu, 2001; Och 2001)。

用例翻訳は、その名が示すように、翻訳元の言語で入力に似た文(パーツ)を探し、それに対応する翻訳を再帰的に見つけて翻訳する手法で、人間が翻訳するときもそうして翻訳したりしているのと同じモデルで、自然言語処理研究のメッカ京大でも書いたように、日本人(現在国会図書館長の長尾真先生)が提案したことでも有名である。用例翻訳は大量に対訳文があればうまくいく(逆に言うと大量にないと統計翻訳と比べてうまくいかない)ことが知られており、統計翻訳と比較して自然な文を生成してくれるという利点がある。

大規模なデータが使える世の中になったせいか、Adam Lopez さんも「機械翻訳はメモリ内でデータを高速に検索しなければならない情報検索のようになってきた。ほとんどバイオインフォマティクスと同じである」と書いているが、全く同感である。情報検索(ウェブの検索エンジン)があらゆる計算機科学系の頭脳を結集してアタックする問題になったように、機械翻訳バイオインフォマティクスもデータ構造とかアルゴリズムとかの基礎を身につけて、効率のよいコードを書いて大規模データで実験する、そういうフィールドなんじゃないかなぁ。若くて優秀な人がどんどん参入していくのも分かる。逆に言うと、実装力も数理的素養も研究力もないといけないという、なんとも厳しい分野でもあるのだが……。(そういえば自分が Microsoft Research にいたとき、彼はまだ PhD の学生で、トークしに来てくれた。北米で研究することの利点を感じたものである)

ちなみに上記の Och というのは先日日本に来て Google の機械翻訳について講演してくれた人で、Marcu というのは Language Weaver というエンタープライズ(企業向け)翻訳の世界トップ企業の CTO の Daniel Marcu のことである。去年 Language Weaver に遊びに行ったとき、Daniel から

「マモル、世界一の製品を作りたかったら、週3日だけ仕事したいなんて言っていてはだめだ。絶対、世界一の仲間と一緒に過ごさないとだめだ。朝起きても、夜寝るときも、ずっと一つの問題を考えて、死ぬ気でうんうんうなって考えて、苦しみながら答えを出す、そういう時間が必要なんだ。世界を動かすような仕事は片手間でできるものではない。自分もこれまでいろんな研究をしてきて、たくさん引用される研究もいくつかしてきたが、それらはどれも1年以上その問題だけをずっと毎日考えてやってきたものだし、自分でもそうしないとできなかったんだ」

と言われたのを思い出す。自分のことを高く評価してくれるのはありがたく、Daniel の言うことも痛いくらい分かるのだが、やっぱりそれはできないな、と思ったものである。でも、機械翻訳は彼のような人が大勢いて必死に取り組んでいるので、世界が変わるのは時間の問題だな、と個人的には確信に近いものを感じている。

そういえば、上記の論文の実装も含まれる Phrasal という統計翻訳ツールの公開予定地に行ってみたのだが、まだ公開されていないらしい……。論文には「公開されている」と書いてあるのだが、勇み足? katsuhiko-h くんが「同じ著者の別の論文でも同じことがあって、公開すると2006年の論文に書いてあるのにまだ公開されていないし、今回も公開されないと思っています」と教えてくれた。これは公開するする詐欺かもしれない (笑)