行列とニューラルネットが手をつなぐ

昨晩から体調がまた悪化したが、情報理論の中間試験を準備しないといけないので、午前5時に起床して作業。しかしいろいろあって一時危ういことに。普段出席を必須としていないので、中間試験の日だけ来る学生もいるし、体調が悪いから、と延期できないため、相当焦る(試験問題を作るのも採点するのも大変だということ、理解していただきたい)。1学期に2回もそういう日があるとしんどいので、期末試験一発にしたほうが自分は楽だなぁ。学生はどっちが楽なのか分からないが……。

午前中、なんとか大学に来て無事中間試験を実施する(中間試験とはいえ、前半の45分は普通の授業)。

そういえば、夏のITエンジニアインターンの情報が集まる魔法のスプレッドシートに、インターンシップの内容や期間、報酬がまとまっているので、学部生たちに授業で紹介している。最近はインターンシップのでも待遇がかなりよいので、下手に夏休みを過ごすなら、こういうところに数週間でも行ったほうがいいと思うのである。

特に学部生のうちは、経験を積むことが大事だし、採用されると経験を得ることができるが、経験がないと採用されない、という卵が先か鶏が先か問題があり、アルバイトやインターンシップはこのサイクルを回す手っ取り早い方法だと思うのである(もちろん研究室に配属されればいいのだが、配属されたら研究室によっては研究室でかなりの時間を過ごすことになるので、動きにくくなってしまう)。

お昼過ぎ、NL研(情報処理学会自然言語処理研究会)の幹事のお仕事。某フォーラムや某研究会のプログラム編成である。8割の投稿は問題なくクラスタリングできるのだが、やっかいなのは2割の投稿で、あちらを立てればこちらが立たず、クラスタのサイズを同程度に保つとごった煮のクラスタができるし、逆にクラスタの純粋性を保つとクラスタのサイズが偏ってしまうのである。座長依頼などしていると余裕で2時間以上過ぎる。本当に毎日出勤したと思ったら退勤しないといけないし、熱したフライパンに油も引かずバターを乗せてバターが蒸発するかのように時間が消えていく(汗)

午後は研究室で進捗報告を聞く。YANS(NLP若手の会シンポジウム)の会場の下見の報告を聞いたり。きれいなところですごく行きたくなる(が、今年はもう自分は行かない予定)。

あと深層学習のいわゆる GloVe 論文について紹介してもらうが、[twitter:@chokkanorg] さんの単語の分散表現と構成性の計算モデルの発展がとても分かりやすいので、必読。

個人的に、word2vec が登場してちやほやされ出したとき、「これは前からあった、どう違うの」という感じでちょっと違和感を感じていたのだが、理論的な解析が進み、ある種の仮定を置いた word2vec は shifted PMI(自己相互情報量)を求めているのと同じ、という話を聞いて、あー、だからかな、と思ったことがある。というのも、意味解析タスクでは共起の情報として PMI を使うのは10年以上前から普通のお話で、しかもこれがけっこううまく行くことも経験的には分かっているので、これよりよいのか?という今さら感があったのである。

ちなみに PMI は低頻度の共起にバイアスがかかってしまう問題点があり、それを防ぐヒューリスティックスもいろいろ提案されているのだが、word2vec は単に PMI の yet another ヒューリスティックスに見える。もちろん PMI を用いた従来手法でも意味の足し算引き算ができたから word2vec に新規性がない、というわけではなく、意味の足し算引き算ができるような手法を考えたらそのうちの一つがたまたま PMI と同じであることがあとから分かった、ということなので、word2vec にも手法としての意義はあるだろう。(ただし、そのような意味の演算ブームの貢献役は、word2vec ではなく Mitchell と Lapata らだろう、というのはこの日記で何度か書いている)

自分がこの話を知ったのはword2vec と PMIが等価を読んだのとほぼ同時で、自分も Twitter で知ったのだが、感想も似ていて、行列(テンソル)の世界と意味の世界は割と近いと考えていて(ある種の意味は行列またはテンソルで表現・演算できる、という立場)、ニューラルネットワークでの意味の表現・演算がいま世界中で猛烈に研究されていて、そのうちどこかで接点があるのでは、と思っている(脳がどのようにしているかは自分は特に興味がないのだが、ニューラルネットワークの仕組みで意味が表現・演算できるかどうかには大きな関心がある)。

最後になるが、単語をベクトルとして単語(インスタンス)と文脈(パターン)の共起を行列で表現し、エッジの重みには positive PMI を用いる、というのは自分が博士後期課程のときいろいろ試した実験設定で、具体名詞の意味を表現するにはこれで十分(PMI で十分、というのも、現在使われるほとんどの自然言語処理応用では、具体名詞が分かればいいから)、という感触だったのだが、やはり難しいのは抽象名詞や述語(動詞、形容詞)の意味のモデル化だった(いろいろやってもなぜか性能が出なかった)。述語はベクトルじゃなく行列ではないか、という研究を知ったときは衝撃を受けたものだが、一度このあたりは研究してみたい。(主語が内項なのか外項なのかで、できてくる動詞の行列が違ったりするのが可視化できたりすると、無茶苦茶おもしろそう)