翻訳の論文ばかり一気読み

午前中に統計数理研究所に行く予定がキャンセルになったので、ACL 2016 読み会を敢行する。いろいろ予定を考慮に入れた結果、今日やらないと11月中に終わらなさそうだった(EMNLP 2016 読み会が年度内に開催できない)からである。ただでさえ論文紹介や英語の本の輪読の時間を減らしているし、これは毎週やらないと、と思っている。

午前中はたまたま以下の2つの論文の紹介で、どちらも単語より短いレベルのニューラル機械翻訳のお話。

  • Sennrich et al. Neural Machine Translation of Rare Words with Subword Units. ACL-2016.
  • Chung et al. A Character-Level Decoder without Explicit Segmentation for Neural Machine Translation. ACL-2016.

前者の論文は、ニューラル翻訳で最近使われる Byte Pair Encoding(BPE)というのをちゃんと調べていなかったので、割とおもしろかった。頻出する文字列をグリーディに新しい記号に置き換えていき、未知語や低頻度語を頑健にモデル化するという手法だが、文字レベルの文法圧縮に近い話のような気がする。情報理論の授業でこういうのを教えられるといいのだが、入れるタイミングが難しい。

後者の論文は前回紹介してもらった(単語の切れ目は与えられている言語での)「なんちゃって文字ベースニューラル翻訳」ではなく、デコードするとき単語切れ目が与えられない状況での文字ベースニューラル翻訳。単語ベース(あるいは BPE ベース)より文字ベースの方がよい、という主張ではなく、文字ベースでもちゃんと動く、ということを示している論文であるが、内容としてはおもしろい(たぶん出力が日本語でも大丈夫。エンコードするときも文字ベースで動くと思うのだけど、計算量的にはしんどそうで、細かい改善をしていかないと動かないのかなぁ。

お昼は「さくらサイエンス」というプログラムで今後3年間にわたってフィリピンの大学生が毎年首都大に来るイベントで、学生たちと昼食会。なぜか本学も留学生だけお昼が出るそうで、留学生2人に来てもらう。自分の席に来た学生は電気電子専攻で、どうもお父さんが IEEE のフィリピン支部の時期会長になるそうで、2代続けて電気工学の研究をするそうだ。アジアの大学から首都大に来る学生は大体こういう感じで親が名士だったりして、帰国したら政府高官になったりするみたいだし、首都大はそういう公共的な大学としての役割も大事だと思った(海外からわざわざ日本に来てもらうだけの魅力のある環境にしたい)。

そういえば、自分も父は工学部出身だが、兄弟4人中で工学系の専門は自分だけで、自分もそもそも学部時代は哲学専攻だったし、親を見て同じことをしたいと思う、というのはうらやましい感覚である(当時の花形が原子力だったそうで、花形ではない電気電子を専攻したらしいが、いま自分が電気電子に近いコースで大学教員をしているのは因果なものである)。自分としては父親のすごさは働き始めるまで分からなかったし、もっというと子育てをしてようやく分かるようになったこともあり、20歳で親のことが一番尊敬する人物だ、と言えるのはすごい。

ACL 読み会を挟んで同じく留学生たちに研究室紹介。日本語が分かる学生はいないので、日本語の評価極性分類のデモを見せてみたがちょっと微妙な感じで、その裏で起動してもらっていた日英レシピ翻訳のデモをしてみたところ、若干受けていたのでよかった(時間はかかったけど)。

M2 の学生2人に研究紹介を依頼していて、ちょっと時間をあまり残していなかったのが申し訳なかったが、時間は気にしないでいい、と言われたのでそれぞれしっかり話してもらう。そもそも見学する学生たちはコンピュータサイエンス専攻ではなく、バイオや土木の学生が中心と聞いていたので、アプリケーション寄りのウェブからの情報抽出(インフルエンザの流行検出と浸水害の情報分析)の話をしてもらったのだが、ランチを含めて話してみた感じ、ものすごく優秀な学生たちが来ているので、ちゃんと仕組みも含めて説明した方がいいのかも、と思ったりした(前座で紹介したニューラル機械翻訳の話の方が興味ありそうだった)。

午後は ACL 読み会の続き。個人的には

  • Sennrich et al. Improving Neural Machine Translation Models with Monolingual Data. ACL-2016.

がヒット。統計的機械翻訳で、翻訳先の言語に関する情報を言語モデルとして入れるような形で、ニューラル翻訳にも簡単に入れられないか?と思っていたのだが、この論文では単に翻訳先の言語の生コーパスを翻訳した「擬似対訳コーパス」を使えば性能が(劇的に)上がるということを示している。言語モデルのような効果を得るためにネットワーク構造をいじったり(専用のゲートやメモリセルを設けたり)するのは、やりたいことからするとどう考えてもオーバースペックだと思っていて、もっと簡単な方法でできるのでは?と考えていたのである。

本来の対訳コーパスに対する擬似対訳コーパスの分量には気をつけないといけないが、そもそも翻訳元はそんなにきれいに翻訳されていなくても、入力として変な言語は来ないので、少々ノイジーでも翻訳モデルとしての効果がある、ということのようである。分野適応としても効果があるし、単純で効果が高い手法というのはよいものである(言われてみれば誰でも思いつきそうだし、誰かがそのうちやる手法だったのだろうけど、割と彼らの研究の着眼点が自分の好みかもしれない)。