【MT summit XVI 開催間近!】 特別インタビュー企画 ③
「機械翻訳の現状と未来」
目次<続き>
「MT summit XVI @名古屋大学 豊田講堂の見どころ」
いまさら聞けない。従来の機械翻訳の方式との違い
森口:今そのニューラルネット機械翻訳の話をしていましたが、それまでは SMT (Statistical Machin Translation) と言って統計ベースの機械翻訳があって、その前身にはルールベースという機械翻訳の方式があったわけですよね。それぞれの違いはどこにあって、なぜニューラルになってブレークスルーがあったのかという話が読者も興味があるのかなと思うんですが。
中岩:厳密に言うと微妙なんですけれども、よく言われるのは機械翻訳の教科書的な歴史で言うと最初にルールベース翻訳があって、人間が作ったルール、具体的には翻訳ルールだったり、対訳辞書だったりというのを使って、それを計算処理によってそれぞれのルールを試しながらそして訳語を決めていくというのがルールベース翻訳というものです。
その一番大きい特徴は、ある意味辞書を入れればその訳が出る、そのルールを入れればそのルールに基づく訳が出るということで、結果に対する理由付けがクリアなので、訳語の品質を改善するときにはたとえば辞書を追加すればいいとかルールが問題だというのがすぐにわかるわけです。
ただ、やはり翻訳させるためのルールや辞書というリソースは人間が作るので、たとえばA の分野のために作ったルールベースの翻訳システムを B という別の分野に適応しようとすると、B 分野向けの辞書だとかルールとかをまた作らないといけない。
ところが、そういうルールは専門家でないと作れないので、分野を広げたり、ある特定の分野の性能を上げようとしたりするときに、それなりのコストがかかるという問題があります。
あと、やはりルールを作ると言っても人間がある程度想像しながら作っていくので訳自体が悪くはないんだけど、なんかぎこちない。いわゆる機械翻訳したような訳が出てくるというのが問題。それが最初のルールベース機械翻訳です。
それに対して 1990 年前後からだと思うんですけど、IBM のメンバーが始めたのが統計翻訳です。この方式の機械翻訳では、言語モデルと翻訳モデルという二つのモデルを活用します。
今まで人間がルールを作ってたのが、たとえばマニュアルの日本語版と英語版とか、WEB サイトの日本語と英語とか、対訳データを使用するのが特徴です。
単語の中のどの単語とどの単語が一緒に表れやすいかを統計的に処理します。たとえば、冠詞が a か the かとか、前置詞は of か in かというものは、ある程度、単語と単語の組み合わせによって決まるわけで、いわゆる言葉としての自然性について単語を並べて検証するのが言語モデルです。
もうひとつは翻訳モデルです。たとえばよくあるのが bank という単語は銀行ですけどいわゆる river bank のような「岸」という訳もあります。bank という英語が出たときにどちらの意味なのかを、対訳データから統計的に river が来た場合は 70%「岸」だけれどもAccount が来た場合には「銀行」とする。
こうした単語、語順、もしくは構造の翻訳に関する統計的な確率を計算して言語モデルと翻訳モデルの二つを使って翻訳を自動的に出力しますので、ルールベースとは違って対訳データさえあれば適応できるというメリットがあります。
数年前まで、特に日本ではここ 1 年前までは、統計翻訳がメインでした。様々なデータも世の中に出てきましたから、それらを使って統計翻訳でいろんなシステムを作りましょうと。オープンソースのリソースもたくさんあるので各社がある程度コツをつかめば、顧客向けのシステムを作ることができる。それが主流だったわけです。
とはいえ、統計機械翻訳も単語と単語の並びのような局所的な統計量を使っているので全体を見たときに必ずしも最適な訳になっているかという点が保証されていない。統計的には保証されているものなんですけれども。つまり、実際に人間が読んだときにちょっと不自然だなというのがあるんですね。
ある種単語の並びのパートを組み合わせて翻訳するわけです。ルールベースはそれを人間が作るレベルで組み合わせる。統計機械翻訳はその単語の組み合わせについて、統計量を使ってガチャガチャと合わせる。
統計機械翻訳の場合は、対訳があるのでデータさえあれば作るほうは楽になったんですが、どうしても訳としての不自然性があって、特に日本語と英語のような語順が大きく違う言語間ではその語順の大きな違いをどうやってカバーするのかが問題になります。
たとえば英語だと動詞が 2 番目にきますけど、日本語だと最後にきますよね。また、先ほども話がありましたが、日本語には主語の省略などがあって、それをどうやって処理するのかというかなり難しい問題が残っていました。
森口:そういう意味では欧州の言語は比較的 SMT でうまくいっています。
中岩:そうですね。スペイン語と英語とか、ヨーロッパ言語間ではもともと言語の構造が近いというのと、単語自体がヨーロッパ内で流通していて、たとえば英語とフランス語ではすごく似たような単語がたくさんありますよね。
それに対して日本語と英語は完全にそういうプロセスを経てないわけで、若干外来語はありますけれども、構造にまでインパクトを与えるような近さはないのでそう意味では難しさがある。
最後にニューラルネット機械翻訳ですね。ニューラルネット機械翻訳も、最初に対訳データが必要になるのは同じなのですが、その学習の過程がニューラルネット、いわゆるノードの活性度の情報の中に埋め込まれるわけです。
ニューラルネットもいろんな方法がありますが、基本的には対訳入力文と翻訳された文の対訳データとの間にあるノードの活性度を学習させていく。
翻訳させたい文を入力側(デコーダー)に入れると、その学習した活性度のネットワークを通すと訳が出るというアルゴリズムです。
たとえば画像認識の世界でニューラルネットを使うとすると、最初は画素や、細かいドットの情報があるんですけど、だんだんニューラルネットの深くに行くとたとえば顔の画像だとかしっぽの画像だとかが理解できるようになり、最終的には猫を認識するようになったりする。
つまりメタな意味の情報になる。それと同じようなことが翻訳過程の中でも起こっていることが想像できますが、その結果として、意味的な情報みたいなものが出るわけです。
あとニューラルネット機械翻訳の特徴として、つぎはぎだらけの統計翻訳に対して、単語の訳し方だとか語順だとか単語の流れみたいなものをニューラルネット活性度の中に組み込んでそれで翻訳させるので、出力した文章の自然性は格段に上がっています。
ただ、訳が自然な分、安心して読んでると「あれ?違うな」というのがある。同じ単語が複数連続していたりとか、明らかに統計翻訳とは違う変な置き換えが起きていたりして、それらはニューラル翻訳ならではの問題として認識されています。
森口:うっかりすると完全に違う単語が入っていたり、本来だったら訳さないといけない部分が抜けちゃってたり、繰り返し似たような単語を吐きだし続ける挙動もあると聞いています。
中岩:そういうところです。だから今までの統計翻訳とは違う付き合い方をしないといけない。そのあたりがここ数年で熟成していくんだと思います。
一応機械翻訳を利用するやり方に関しては、統計機械翻訳の時に一通り検証しています。ゼロからのスタートではないのでずっと普及は早いでしょうし、特になかなか性能が出てなかった言語対に関しては上がり幅というか、改善度が高いので、特に日本語がらみの翻訳をやっている人間にとってはすごくいいかなと思いますね。