時間のあるときにしっかりサーベイしておく

午前中は自然言語処理の授業。来年度のシラバスの作成依頼が来ていたが、この授業は隔年開講なので、次にあるのは2年後である。そもそも数年単位で仕事をするようになるとは……。

昼過ぎは SLP (自然言語処理の教科書)の輪読である。最近進捗報告で潰れることが多かったので、できるときにちゃんと進めておきたいところ。英語は我々にとっては外国語なので、勉強しないと読めるようにならないし、雰囲気で理解しようとすると論文を読むとき手も足も出なくなるので、精読で多読することで、精読の速度を上げていくのが、遠回りのようで近道なのではないかと思う。こればかりは、苦手でもなんでも、時間を使うしかないと思うし……(自分も予備校生のとき、英文1ページを精読するのに最初20時間かかったりしていたが、それまでなんとなくでしか理解しておらず、雰囲気で理解しようとすると、ある程度のところで英語力が頭打ちになっていた)

午後は深層学習の勉強会。以下の3つの論文紹介があった。

  • Quoc Le and Tomas Mikolov. Distributed Representations of Sentences and Documents. ICML 2014. スライド
  • Richard Socher, Brody Huval, Christopher D. Manning, Andrew Y. Ng. Semantic Compositionality through Recursive Matrix-Vector Spaces. EMNLP 2012. スライド
  • Tomas Mikolov, Kai Chen, Greg Corrado and Jeffrey Dean. Efficient Estimation of Word Representations in Vector Space. ICLR 2013. スライド

最初の論文はいわゆる paragraph2vec についての論文。コードは sentence2vec に実装されているらしい。と思ったら微妙に違うという話も。応用もあるようだ。

文と文書をベクトル化するというのでどういうものかと思えば、文ベクトルは単語ベクトルを連結して作り(他の選択肢として単語ベクトルの平均を取ることもある、と書いてあるが、実験してない?)、単語ベクトルの他にトピックモデルみたく文書ベクトルを学習するもののようで、未知の文書に適用するときどうするの?と思ったが、未知の文書のベクトル化をしたいときは、その文書を足して再学習するらしい……(単語ベクトルは更新しないように制約をかけるようだが)。単語ベクトルを連結してフレーズなり文なりのベクトルを作るというのは、構文解析しなくてよいので頑健に動きそうだが、語順の制約が強い言語でないとうまく動かないような?

2番目の論文は以前どこかで読んだ記憶があるのだが、再帰的に文の意味を計算する話。名詞の意味はベクトルで、形容詞の意味は行列で持っておいて、形容詞の本質は形容詞自体に意味があると考えるのではなく、相手の意味ベクトルを変化させるのが本質である、というのを初めて見たときは衝撃であったが、やはりこういう話はおもしろい。しかし改めて読んでみると、行列を使うとものすごくパラメータが増えるので、ちゃんと学習できるのだろうか、というような細かいところが気になる(学習できるようにするためのいろんなヒューリスティックがあるのだろうが、作ってみないとわからない)。

3番目の論文が自分の紹介したもので、word2vec の話が載っていると思って読んだが、そんなに目新しい情報はなかった。スライドを Dropbox に置いておいて、さあ紹介しよう、と思ったら同期されておらず、Evernote に取ってあったメモも中途半端で、仕方なく論文の PDF をプロジェクタで映して解説したが……。

夕方はメール処理と事務処理で3時間強取られる。月末〜月の頭は書類がたくさんあり、全然回らない感がある。コースの仕事や学会の仕事もどんどん積まれているし、厳しい(かなり遅延が発生している)。松本先生よろしく論文紹介できる適当な人がいないときは自分が入ったりしているのだが、入るのはもう難しいのかもしれない(あるいは NAIST は教員にかなり余裕があるのだろう)。勉強会も自分がいないとキャンセルにすることが多いのだが、来年度は自分がいなくてもやってもらうようにしたほうがいいのかもなぁ(娘の急な病気で出られなくなったりもするし)。