言語処理学会 NLP 2010 チュートリアル大盛況

今週は月曜日から言語処理学会年次大会および情報処理学会全国大会が東京大学本郷キャンパスで開催されるので、それらに出席するために東京に来ている。
http://nlp2010.anlp.jp/NLPlogo_300x100.pnghttp://www.ipsj.or.jp/10jigyo/taikai/72kai/images/logo.jpg
(こうやって並べると言語処理学会はかなり貧相だな……)

実は今週は毎日「オフィス見学会」という名前の社会科見学を企画しており、NAIST 松本研究室の修士の学生を中心に、出口を知った上で研究してほしい、という気持ちから、Naver, PFI, Google, Baidu といった企業巡りをして、せっかく東京に来たメリットを享受してほしい、と思っていて、毎晩深夜近くまでそちらで潰れるので、昼は妻と過ごそうと思って、のんびり根津の谷という自然食レストランで食べる(根津交差点から10mくらい南にあるお店)。

研究(教育)を優先するか家庭を優先するかは人それぞれであるし、今後の活動を考えると今回の学会をどう過ごすかは大変悩んだのだが、一度に全部するのは不可能だと割り切り、今回は修士の人たちを他の研究者の人たちや企業の人たちに紹介するのを最優先することに(せっかく東京での開催なので)。自分も昔 ryu-i さんにくっついて行動していたとき、いろいろ先輩の研究者方を紹介してもらったのがその後ずっと財産になっているので、自分も同じように後輩たちにしてあげられたらなぁ、と思うのである。(逆に言うと、去年シンガポールであった国際会議では、自分がアメリカから参加していたのもあって、後輩の面倒を見ないで自分優先で聞きたい発表を聞きまくっていたのを反省している)

そういうわけで、チュートリアルは午後の

  • 「並列テキスト処理のための環境・ツール(EC2上での並列処理体験付き)」田浦 健次朗 氏(東京大学
  • はてなで利用している言語処理技術」伊藤 直也 氏(株式会社はてな

だけに参加する。途中@masakazuiくんと合流したのだが、エレベーターなしで4階まで上がるのはしんどい(と言うと年寄りすぎるか……)。会場に入るとほぼ満席でびっくり。マニアックな内容なのに、これはすごいな〜。

田浦さんの話は「並列テキスト処理のための」と題しているのだが、基本的には並列処理のチュートリアル。並列処理自体に不案内な自然言語処理研究者が対象ということを考えると、これくらいだ妥当な内容ではある。個人的には「なんで GNU make を使って並列にするのか」というのがいまいちピンと来なかったし(拡張性とかどうしているのだろうか。あと並列で動かしたいものによっては make でやるとオーバーヘッドが気になるのでは)、MapReduce の実装で大規模データ処理において実はクリティカルなのはファイルシステムをどう設計するかであり、データのローカリティ(局所性)と言うのだが、データが置いてあるノードでローカルのディスクやメモリにあるデータにアクセスして計算するのと、ネットワーク越しにあるデータにアクセスして計算するのとでは速度に雲泥の違いがあり、「GXP を使えば MapReduce できます(でも分散ファイルシステムのことはまだ考えていません)」というのは、リップサービス程度の効力しかないんではないかと思う(ので質問してみた)。

いずれにせよこのあたりの泥臭い部分は、自然言語処理の研究ではほとんど評価されないし、NICT の河原さんも「我々も大規模データで痛い目に遭ってきたのでなにか知恵があれば教えてほしい」と質問していたが、各研究チームが分散して独立にこういうノウハウを蓄積するのは無駄なことだと思う(そういう知識が根本的にないと、なにかあったとき困るのも事実だが)。Amazon EC2 みたいに集中的にメンテナンスしてくれるところに面倒な部分を丸投げして、研究としては計算部分だけ面倒を見る、というのが効率よいのだろうが……。GoogleYahoo! みたいな巨大企業では、社内でそういうメンテナンスの部分は隠蔽されて、簡単に上のレイヤーの研究開発ができるのだろうし、大学で同じようなことを独立にやっていても差が広がるばかりではないかなぁ。(それを解消しようというのがたとえば情報爆発だったり情報大公開だったり情報信頼性だったりするのかもしれないが)

id:naoya さんの話は、はてなで使われている自然言語処理の技術をいくつか紹介し、それぞれで得られた知見と、研究と開発のはざまの話なんかをいろいろとしてもらう。トークの直前に Twitter の #nlp2010 ハッシュタグのタイムラインがスクリーンにオンエアされていたが、あそこで気の利いたことを発言すれば一世を風靡できたかも(笑)

実は内容自体は第1回入力メソッドワークショップ(という名前の飲み会)で話してくださった内容と、先日のウェブ学会で話してくださった内容のハイブリッドみたいな感じだったので、自分としては目新しい内容はなかったのだが、それぞれまとまった内容で自然言語処理の研究者や学生相手に1.5時間話してもらう、というのはとてもすばらしい機会であった。一つ注文すると、言語処理学会は必ずしも自然言語処理(工学系)の人たちばかりではなく、言語学(人文系)の人たちもいるので、チュートリアルは丁寧に話してもらってもよかったかなとは思った。(今回は裏に影浦さんの「『現代思想』と言葉――脳・認知から遠く離れて」というもろ人文系の話があったので、言語学分野の人はそちらを聞きに行っていたと思うから、現実的には問題なかったかも)

しかし質疑応答タイムになると、各所から Navitime やら手嶋屋(OpenPNE の会社)やらがこぞって質問。企業の人からの質問だけで10件以上あっただろうか? これ「言語処理学会」のチュートリアルなのだけど(笑) でもいろんな分野の人たちが来るのもいいことなので、こうして人が集まってくれたのは貴重な時間だったと思う。あまりに自然言語処理の人からの質問がないので、一つ質問してみた(笑) 質問は「はてなキーワードのマッチ部分を安直な実装から洗練された実装にするとき情報科学の知識が必要になったが、こういった知識を身につけるにはどうしたらいいか」というもの。これから何回かオフィス見学会の感想を書くが、@naoya_itoさんの答えも他の企業の方々と全く同じで、「ある程度ジェネラリストを意識して、いろんな分野の知識を貪欲に吸収することが大事」という回答。同感。

特にウェブ系のデータ処理のエンジニアにそういう能力が要求されるのかもしれないが、この分野に限ってはジェネラリストでないと動きの速さについていけないように思う。特にデータ構造やアルゴリズムオートマトンや計算量の話のような理論的な話を押さえていることも大事。「こんなの実践では使わないでしょ、コード書けるほうがいいに決まっている」と思うかもしれないが、実はよく出てくるテーマであり、一度どこかで勉強しておけばいいだけの話でもあるので、それなら学生のうちに勉強しておいたほうがいいんじゃないかとも思う。

チュートリアル終了後、某社の方々とお会いする。@overlastさんや@nokunoさんはお久しぶりだったが、@tsubosakaさんは初めまして。某社はこういうジェネラリストタイプのエンジニアがたくさんいるのだから、しっかり活用すればいいのに、と思う。ぷんすか。(オフィス見学が控えていたので naoya さんたちとお食事に行けなかったのが心残り。いつもの自分なら自分の都合最優先でこの日に見学会は入れなかっただろうなぁ)

こういうふうに基礎と応用のチュートリアルやるのはいい試みだと思うので、来年もこういうふうなテーマのチュートリアルが出てくるといいなぁ。