機械翻訳と言語モデリング

でも、遊んでばかりいるわけではアリマセン

というわけで聞いてきた内容でも書いてみると、今日の午前中のセッションでは

  • Discriminative, Syntactic Language Modeling through Latent SVMs
  • Colin Cherry & Chris Quirk (Microsoft Research)
  • AMTA 2008

がおもしろかった。やりたいこととしては機械翻訳の出力が(Nグラムを用いた)言語モデルではスコアが高くなってしまう、という問題が知られており、本当の翻訳文と機械翻訳の出力を比較したとき、本当の翻訳文のほうがスコアが高くなるようにしたい、というのが動機。実際、(Och et al. 2004) では P(機械翻訳の出力) > P(機械翻訳の出力のうち、一番いい翻訳) > P(正解文) となっているそうで、言語モデルが適切に機能していない、というのが問題である(P は確率の意味だが、本当は正解文がいちばんいい確率を与えるようになっていてほしいのだが、そうなっていない)。

さらに問題を落とし込むと、結局のところはある文が与えられたとき、これが機械翻訳による文かそうでないか判定する分類器を作れればいいんじゃないか、という問題に帰着する。局所的な単語の連鎖しか見ない N グラムと異なり、文全体を見て分類する手法であれば、もっと適切に翻訳らしさを推定できるのではないか、という話。N グラムを言語モデルとして用いると、文らしいのだけど全体を見るとよく分からないことを言っている、というのはよくある。ここで使うのは (Okanohara and Tsujii 2007) で、自動的に作った負例と正解文の分類器を作れれば目的達成、というわけである。

そこで、画像認識で使われている Latent SVM という手法を用いて、この問題を解く、というのが大きな流れである。Latent SVM はたとえば自転車の画像を認識するとき正解データとしては「ここが自転車の領域ですよ」というのを与えるのだが、Latent SVM では「この領域のうち6箇所選んでいいよ」と教えると、車輪の領域とペダルの領域とハンドルの領域みたいな部分問題(ここが latent なんだろう)を勝手に見つけて分類に使ってくれる、というもの。この問題で言えば、文の分類をするときに役に立つ補助問題として部分木の分類を勝手に発見してくれる、ということに相当する。

あとの内容は論文が公開されたら見るとよいと思うのだが、提案手法はけっこうよくこの分類問題を解くことができる、という実験結果になっている。なんらかの形で文全体を見てスコアをつけるような言語モデルが求められていると思うのだが(この一つ前のトーク構文解析器の出力を言語モデルとして使う、というものだったが、そちらは実験的にはうまくいかなかった、という報告)、どこを見れば結束性が判定できるかなんてのは人間でも発見するのは難しいので、こういう分類器による機械学習の手法でうまくいくといいな、と思う。