MapReduce を使いこなすための勉強法

体調があまりよくなかったので、娘に夜2時前にミルクをあげて二度寝してしまった。体調はよくなったが、3時間ぶん仕事が遅れるので、挽回するのが難しい。

午前中はうちの研究室を受験希望という学部生の見学。これで夏季入試の見学者は6名で、来週の1人で(可能性としては、出願後に見学したいという人が出るかもしれないが)最後だと思う。去年と比べるとうちの研究室の希望者は2倍だろうか。大学院の定員は変わらないので、若干倍率が上がりそう?(例年1.2〜1.3倍くらい)

論文紹介では

  • Shane Bergsma, Mark Dredze, Benjamin Van Durme, Theresa Wilson, David Yarowsky. Broadly Improving User Classification via Communication-Based Name and Location Clustering on Twitter. NAACL-HLT 2013.

を紹介してもらう。Twitter のユーザのメンション関係を用いて2部グラフを作成し、固有表現のクラスタリングを行うという手法。アイデアは単純だが、なるほどなという感じでおもしろかった。ウェブを対象にした自然言語処理としては、こういう研究(スタイル)が有用性も高くてよいと思う。問題は、たまたまいいアイデアを思いつけばいいが、そうでないと何もできない、ということかな……。

お昼は見学の人と学生と一緒にランチ。私大の話を聞いたのだが、同じ研究室に配属された学部生が4年生11人いるうち、進学希望は彼女だけだそうで、それは確かに大学院は外部に進学した方がいいと思う(同様のことが、うちの学部生で、博士後期課程に進学する前提で大学院を受験しようという人にも当てはまるだろうけど)。学部3年生から研究室に配属されるそうだが、大学院に進学しない人が大半なら、学部4年生で配属されても(就職活動もあり)ほとんど何もできないだろうし、それが正解かもしれない。

お昼のあと、学内の委員会のミーティング。7月中にもう1回予定を確保していたが、あとは個別対応で済みそうなので、1回ミーティングが減った。ラッキー。

午後はハイパー会計処理タイム。月末に1日だけ、事務処理デーを作っているのであった。固めてやると1ヶ月分で2時間前後なので、秘書さん要らないような気もしている。なんで昨年度は常に事務処理やっているような気がしていたのだろう?

夕方は研究室へ。NLPチュートリアルで、ニューラルネットワークを実装しているようだが、ニューラルネットワークは慣れないと分かりにくい気もする(デバッグも難しいし)。まあ、機械学習アルゴリズムは、簡単なのは勉強目的で一度実装してみるのはいいと思う。作ってみて分かることもあるし。

また、午前中に紹介された論文関係で、MapReduce による K-means アルゴリズムの実装の質問があったのだが、これも一度 MapReduce で簡単なプログラムを書いてみるといいのかな。プログラミング言語MapReduce)に対する理解と、機械学習(K-means )に対する理解の両方が必要なところが、少しハードル上がるのかもしれない。冬学期に Hadoop 的なものを使った講習会を開いてほしい、という依頼があるのだが、そこで演習してもらおうかな?  

あと、個別のプログラミング言語についての話でなく、プログラミングするとはどういうことか、という話はどこでどう勉強すればいいんだろうか。上記のような問題を解く能力は、特定のプログラミング言語を知っているかどうかというよりは、たとえばこの手法を動的計画法で書けますか、と言われて答えられるかどうか、という能力に近く、パズルとまではいかないが、ちょっと特殊な能力であると思う。

大規模データのマイニング、英語の原書は PDF が無料で読めるようなので、後期に輪読しようかな。