統計翻訳での並べ替えは徹底的に〜NTCIR 特許翻訳タスク

情報検索に関する国際ワークショップ、NTCIR の3日目である。自分はこれの特許翻訳に関するタスクに参加しており、今日はそのポスター発表だったので、ポスター担いで行ってくる。

午前中は特許翻訳タスクの概要と、参加したチームの中からいくつか選ばれた(もしくは自分で希望した)チームが口頭発表。京都大学や NTT などいつも出てくるチームの説明は変わらないが、MIT の Michael Collins のところの学生さんで、現在 Google 日本のエンジニアとして働いている人の発表はおもしろかった。

背景を少し説明すると、最近統計翻訳で主流となっている句に基づく翻訳(phrase-based)では、語順などの統語的な特徴が似ている言語間(たとえば英語とフランス語みたいなヨーロッパの言語間)ではうまく行くことが分かっているが、日本語と英語のように端的にはSOVとSVOで語順が大きく異なる言語間ではあまりうまく行かないといった問題が知られている。そこで、この研究では非常に単純なのだが、日本語の語順を全部逆に並べれば、高速に翻訳するシステムが作れますよ、ということを示した。たとえば "The preamp 3 amplifies an input reproduction signal, and sends out to an AGC amplifier 4.” に対応する日本文を

プリアンプ 3 は | 入力 さ れ た 再生 信号 を 増幅 し て AGC アンプ 4 へ 出力 する | 。
は 3 プリアンプ | する 出力 へ 4 アンプ AGC て し 増幅 を 信号 再生 た れ さ 入力 | 。

のように、文節内の単語を全部逆順に並べ替える。これだけで、ベースラインより高速で主観評価もよいというシステムが作れるらしい。彼らは比較のために CaboCha を使って構文解析し、ガでかかっている名詞は動詞の前に、ヲでかかっている名詞は動詞の後に、みたいな並べ替えも試しているのだが、係り受けは考慮せず単に並べ替えるほうがいいようだ。

というのも、自分たち(NAIST-NTT チーム、すなわち自分と NTT CS 研の永田さん)も2年前に IWSLT という機械翻訳の国際ワークショップで同じような日本語→英語の翻訳タスクに参加し、SynCha という述語項構造解析器で彼らが CaboCha を使ってやったような並べ替えを試したのだが、そのときは思わしい結果が得られなかったので、なんなのだろうか、と思っていたのであった。自分たちは文節の中までは並べ替えなかったので、やるなら徹底的に並べ替えるべきだった、というのが結論なのかもしれない。(実際「太郎 が 魚 を 食べ まし た」を並べ替えると「太郎 が 食べ まし た 魚 を」になっていて、元々の語順では「魚」と「食べ」は近かったのに、並べ替えると間にいろいろ挟まって遠くなってしまうというのが問題なのかと考えたりもした) まあ、CaboCha の係り受けで並べ替えるよりは、NAIST テキストコーパスには述語項構造がついているので、これで述語項構造解析器を作って、意味まで見て並べ替える我々の手法のほうが(原理的には)いいと思うけど……。(「は」の曖昧性や、省略があったりといった問題への対処)

実際はこれで少しよくなったからといってどうだというわけではないのだが、個人的にはその後並べ替えの研究はしていなかったのが、腑に落ちたのでよかった。ポスターでも聞きにきてくれたのでいろいろ話したり。彼がいま Google で日英翻訳の研究開発をしているのかな?

ポスターは割といろんな人が来てくれて議論が進んだのでよかった。ポスターの前で永田さんと自分が研究ミーティングしている(それに他の人の知恵を拝借)ような感じだったが、それはそれでこのワークショップの雰囲気的にいいのかな、と思った。ただ今回の反省点としては、〆切があると集中して実験したり論文書いたりするのだが、1ヶ月-2ヶ月使って解釈に困る結果を報告するよりも、3ヶ月なりなんなり集中して研究して、一つのテーマに関する突っ込んだ知見を得る、というほうがいいのだな、と思う。そういう意味では今回もグラフがどういう構造になっていれば(もしくはどういうものをシードにすれば)うまく行くっぽいのかという経験則が得られたので、それはそれでよかったのだが……。