仲間が話をするときは聞きにいくもの

勉強会の論文紹介担当に当たっているので準備で忙しく、昼の CJE (Chinese-Japanese-English、普通は Chinese-Japanese-Korean の CJK なのだが、いま研究室に韓国の人がいないので CJE になっている)勉強会には出られず残念であった。

松本研では M1 の秋以降は全員最低1つ以上の勉強会に所属し、その勉強会は(自分の発表担当でなくても、あるいは取り上げられている論文にあまり興味がなくても)毎回出席し、何回かに1回は論文紹介もしくは進捗報告をすることが義務づけられている。

義務づけの意味を考えると、定期的に進捗を報告する場所を研究室全体の週1ミーティング(研究会)とは別に設け、もっと突っ込んだ議論を持つ、という役割もあり、あるいは単に聞きにいくだけでいい非コアの勉強会と比べると、自分もなにか論文を紹介しなければならないわけで、他人の論文紹介を聞いて「この論文つまらないね」「論文紹介の方法が下手だよ」と批判するのは簡単だが、「じゃあお前はどうなんだ」となったとき、自分も他の人に「この論文おもしろいね」と言ってもらえる論文を選択しなければならないし、「論文紹介分かりやすかった」と言ってくれるような紹介をしないといけないわけで、自分の発言に対してなにがしかの責任を取る、ということである。

最近どの勉強会がメインなのか分からない人(そのため勉強会の担当をどの勉強会でもやらない)、もしくはどの勉強会にも出ない人が若干いるようなのだが、それは松本研に来た意味の半分以上失っていると思うし、大変もったいないことである。せっかく研究室のメンバーがフィードバックをくれるチャンスなのに、自分からみすみすそのチャンスを捨てているのである。

「松本研に来たのになんかいまいちだなぁ」と感じている人は、学部までのお客様気分が抜けておらず、着席したら勝手に料理が運ばれてくると思っているのかもしれないが、大学院というのは自分で食材を調達して自分で調理してみなさんに食べてもらう場所であり、いつまでも批評家のつもりでいては困るし、そもそもシェフとなるための機関なのであって、何回か自分でやってみないとできるわけがない(自転車の練習をしないで教本だけで乗れるようになりますか? という話)。

以前学部時代の所属講座の教員だった野矢先生の話をもう一度引用するが、

「…ちょっと説教臭いことを言いますけどね…。君たちくらいの年代で一番重要なのは一緒に哲学をする仲間でね…。話題が自分の関心に近いかどうかは関係なく、仲間が話をするときには聞きに行くものだよ…」

自分もこの気持ちがよく分かる(おせっかいかもしれないが……)。若い人にありがちなのは、論文紹介でも自分の興味ないテーマだったら聞きに行かないとか、発表練習すると言っても出ないとか、はたまた前で人が話しているのに関係ない作業(研究会の最中に Yahoo! オークション見てたりするのはさすがに失礼なので止めてほしい)をノートパソコンで延々やるとか、自分の関心を限定的に考えて自分の殻に閉じこもってしまう(自分がいちばん大事)のだが、そうやっていると他の人たちとは「仲間」にはなれないと思うし(いや、一人でやっていく人もいるので、それはそれでいいのだが)、これももったいないなぁと思う。

大学院、とくに博士後期課程なんてところは、同世代でもほとんどの人が理解不能な世界である。試しに小学校の同級生に話してみたら、よくて「頭いいねえ。勉強好きなんだね。俺はよく分からないけど、がんばってよ」悪くて「そんな勉強ばっかしてないでちゃんと人様の役に立つことしろよ。バイトとかしたことないって? 学校なんて言ってないでバイトして金稼げ」と言われることだろう。馬鹿らしいと思うかもしれないがほとんど実話である。

そう思うと、博士の学生の間なんて一緒に世の中の未解決な問題に取り組む仲間を世界中にどれだけ作れるかが大事だし、自分が取り組んでいる問題を相手にも重要だと理解してもらうためには、相手が真剣に取り組んでいる問題も尊重してちゃんと話を聞く態度が重要だと思うのだ。

さて、4月から新しく始めた勉強会も今日で5回目、Hadoop を用いた演習も今日は @syou6162さんに手伝ってもらっていろいろ議論が深まる。次回とその次の勉強会の演習はMapReduce による転置インデックス作成とブーリアン検索(いわゆる AND 検索とか OR 検索)担当もそれぞれ @tomo_wbくんと@shirayuくんが手を挙げてくれたので、少しずつ大規模データを使うときの大変なところが伝わってきたのではないかと思う。(今日 @syou6162 さんが英語版 Wikipedia を使った演習の大変さについてリポートしてくれたが) 

今日読んだ論文は

  • Cheng T. Chu, Sang K. Kim, Yi A. Lin, Yuanyuan Yu, Gary R. Bradski, Andrew Y. Ng, Kunle Olukotun. Map-Reduce for Machine Learning on Multicore. NIPS-2006.

であるが、これはマルチコアの CPU を用いて Statistical Query Model という種類のモデルで記述可能な機械学習アルゴリズムは (MapReduce フレームワークによって)並列化可能である、という話。線形回帰、ナイーブベイズ、K-means、ロジスティック回帰、主成分分析、EM、SVM などたくさんのアルゴリズムが並列化可能であり、実際ほぼ理論的に予測されるのと同じくらいの速度の向上が見られている(2コアで2倍、4コアで3.5倍、8コアで7倍、16コアで14倍、みたいな)。
夏休みは GPU 使って自然言語処理における並列プログラミングの実験をいくつかしようと思っているのだが(修士の学生さんたちに手伝ってもらって)、高速化することによって可能となるなにか新しいことがあるといいなぁ(速いだけでも十分意義はあるのだが)。