like i loved you +

バイドゥ(百度)株式会社で働くR&Dエンジニアとして、世界一楽しい検索エンジンを作っています。情報系大学院生が、腕一本で「世界で一番アツい会社」に就職するまで&してからの記録。

Archive for 3月, 2009

p1010034e.jpg

やっと就活も一段落して、博士も無事取れたので、自分の就活体験について、「就活を始める前の自分に伝えたい、博士の就活のコツ」という形で書いてみる。同じ境遇にある人の参考になれば幸いです。

■ 情報収集フェーズ と 応募フェーズは分ける

まず大前提として、博士を出て就職しようという場合、大企業で博士新卒の枠に収まるのでなければ、「けものみち」就活は覚悟しなければいけないということ。それだけ、基本的なスキルに加え、枠にとらわれない柔軟性、積極性、対人能力が求められる。修士までの「レールの敷かれた」就活とはかなり事情が異なるので、ここでは梅田さんの言葉を借りて「けものみち」就活と呼んでみたい。

就活を始める前の自分に一つだけ最も大切なことを伝えられるとしたら、「まず情報収集を、早めに、徹底的にやっておく」ことをアドバイスするとおもう。情報収集といっても、企業のウェブを見たり、『就職四季報』を見たりといった表面的なことではなく(もちろんそれも大事だが)、実際に社員の人に会って話を聞いたり、オフィスの見学をしたり、可能ならばインターンのような形で働けるとベスト。

社員の方というのは、普通は自分の会社のことなら喜んで紹介してくれると思うので、気軽に「興味があるので話を聞きたい」とコンタクトしてみると良いと思う。もちろん、ただ単に話を聞くだけじゃ都合が良いだけので、自分からも提供できるネタを持って行くと良い(例えば研究紹介とかデモとか)

そもそもこのような情報収集は就活には必須だけど、さらに、「情報収集フェーズ」と「応募フェーズ」を分け、ある程度情報が出そろってから実際に受け始めることをオススメする。このためには、情報収集については、とにかく早く動き始める必要がある。博士を順調に3年で出られるとしたら、2年の半ばごろには回りに「就活してます」宣言して、「もう就活ですか、早いですね?」と言われるぐらいのタイミング。

なお、現在の経済状況がこんな有様なので、良いな~と思っていた企業(ポジション)に求人が無いなんてザラ。なおさら「情報収集フェーズを分ける」のは重要。

■ 「人、人、人」

不動産における三つの重要な要素は「場所、場所、場所」とはよく言われるが、「けものみち」就職活動に重要な三つの要素は間違い無く「人、人、人」である。就活において重要な情報はネットの上には無い場合が多いし、「チャンスは人に乗ってやってくる」という言葉(千葉智之『出逢いの大学』より)に加えて、自分としては「情報は人に乗ってやってくる」も付け加えたいと思う。

このためには、普段から人的ネットワークについてほんのちょっとだけ余分に意識すると良い。自分は(国内|国際)会議に参加するたびに「毎回、新しい知り合いを最低5人は作る」ことを目的に積極的に顔を出していたが、今のところコンスタントに(目標を上回るペースで)達成できており、そこで得られた恩恵は研究や就職に限らず計り知れない。もちろん、そのためには当該分野である程度の成果を上げることが必要条件だとおもう。

目標としては、応募したいと考えている全ての会社に対して、そこの社員の方と直接面識があるか、最低でも共通の知人1人の紹介で繋がれる、といったところを目指したい。

■ 精神面と身体面を鍛えておく

「けものみち」就活に限らず、就活は長丁場になりがちで、気を遣う面接や会社訪問の連続は、たとえうまく行っていたとしても精神的にもけっこう堪えるものがある。また、1社を受けるためのコスト(実際に訪問する時間に加え、企業研究や面接対策に費やす時間)は膨大なものになる。ただでさえ博士論文や研究で忙しい博士後半なので、時間的にもかなり厳しくなるのは覚悟すべき。このために、ストレスに負けない精神面と、体力的な身体面に注意しておきたい。

個人的には、「研究と全く関係無くて」「ある程度身体を使う」趣味を持つのがオススメ。スポーツとか楽器とか旅行とか。これは、博士の長い研究生活に対しても言えるけどね。

■ 応募する最適なタイミングを見極める

「就活で理想なのは、応募した会社全てから同時に内定が出ること」とMSRでインターンしていた時に同僚が言ってた。まず全てのオファーが出そろうまで待って、そこから最適なものを一つ選ぶそうな。新卒採用で無い限り、オファー(内定)の出るタイミングはなかなか予測できないし、内定の長期間のキープもほぼ不可能である。(ただし、面接のスケジュール調整をうまく使って、複数社の応募の進行具合を調整するという技もある)

そこで、複数社に応募する場合は特に、応募するタイミングと順番が重要になってくる(この件に関して自分はダメダメで、色んな人に多大な迷惑をかけたのだけど・・・)このとき参考になるのが、「最適停止の理論」というもので、これは例えば10社を順に受けるとき、どの会社から内定が出た段階で就活をストップすべきか、ということに関して確率的な最適解を与えてくれる。詳しくは以下のページ

【秋山仁のこんなところにも数学が!】(31)最適停止の理論 (1/2ページ)
http://sankei.jp.msn.com/culture/academic/080812/acd0808120723004-n1.htm

を参照してほしいが、この最適戦略に従うと、平均で10社中上から2.55位ぐらいのところに入社できるそうな(期待値なので、実際は1位のとこに入れるかもしれないし、10位かもしれないが、平均的に。)もちろん、「それまでに内定の出た会社が魅力度という観点で完全にランク付けできる」という前提があるが、この前提がけっこうくせ者だったりして。

ちなみにこの理論、「10人の異性と順番に付き合うとして、何番目の人と結婚すべきか?」「10人の応募者を順に面接するとして、何番目の人を採用すべきか?」という問題にも応用できて、個人的にもこれは興味深いトピックだったり。。。

■ ネットをフル活用する

上で「人」が重要だと書いたけど、同時にネットをフル活用することも大事だとおもう。これは車の両輪のようなもので、両方そろってこそまさにパワーが発揮できる。

個人的な意見としては、ネットで就活のために自分のブランディングや広報を行うという場合、現時点でブログ以上に手軽で効果的なツールは無いと思っている。面白いブログを書いている人は、会ってもやはり面白い人である場合が多いし、こういう「ネット上の知名度」の重要性は今後増す一方だと思う。もちろん、面白いWebサービスやソフトウェアを作って公開するなど、知名度を上げる戦略はブログに限ったものではないが、その場合でもやはりブログぐらいは持っておいてほうが良い。

あと、最終的な決定に関しては寄与しなかったが、個人的にはLinkedInもかなりオススメ。登録してから、企業の人事部やヘッドハンターからオファー(応募のお誘い)を何件もいただいたし、こちらから企業の人にコンタクトする場合にもかなり使えるサービスである。

■ 洋書の就職本を読む

就活を始めてから、巷に溢れるいわゆる「就活本」の類をいくつか読んでみたのだけど、総じてレベルが低いと思った(もちろん、自分が単に良い本に当たらなかったという可能性もあるので、オススメの本をご存じの方はぜひコメント等で教えてください!)

そもそも、バイトの面接ならともかく、博士の「けものみち」就活に「就活本」が役立つと考える自分がそもそも間違っていたのだが、博士に限らず、例えば面接の「想定問答集」みたいなものを本気で買って練習している人が居るかと思うとちょっとゲンナリする。下でも詳しく書くが、本気で自分がその会社で働きたくて、かつその能力がある場合、スキルとして何を求められるのか、面接で何を聞かれるのかぐらいはだいたい想像が付くものだと思うのだけど。

一方、今回は洋書の「就職本」をいくつか読んでみたが、平均レベルは総じて高い傾向がある。前にも書いたが、就職本の「けものみち度」は、間違い無く海の向こうの方が上である(Amazonで「Job hunt」で検索するとぞろぞろ出てくる)。例えば、「気になる会社のリストを用意して、上から順に、片っ端から電話をかけろ」とかいう過激な?アドバイスもあって、それを愚直に実行するかどうかはともかくとしても、色々と開眼することがあるかと思う。

この記事で紹介した



Orville Pierson: The Unwritten Rules of Highly Effective Job Search
http://www.amazon.com/dp/0071464042

の他にも、個人的に激しくオススメしたいのが、



John Mongan, Noah Suojanen, Eric Giguere: Programming Interviews Exposed
http://www.amazon.com/dp/047012167X

で、これは近年、ソフトウェアエンジニア等を採用する際にポピュラーになりつつある「プログラミング面接」についてのほぼ唯一とも言える対策本である。他の分野には関係無いと思うが、ソフトウェアに関連する職を受ける、もしくは面接する予定の人には必読の書だとおもっている。(プログラミング面接対策についてはまた改めて書く)

■ 採用というシステムをメタ視点で考える

「もし自分が会社の人事なら、この会社のこういう状況を考えると、こういうようような採用試験を課して、こういうことができる、こういう人を採る」というように、採用システムをメタに考えることができれば、上に書いたように「○○社の面接では、どんなふうに答えれば通りますか?」というマヌケな質問をしなくて済む。そういう意味で、「就活生は、イタすぎる」と斬ってくれた就活のバカヤローはかなり痛快だった(ただし、この本が就活そのものに役に立つかどうかは疑問である)。

さらにメタ度を上げていくと、会社にとって結局「人=カネ」なので、会社のカネの流れ、ひいては経済の流れにまで行き着くので、早い段階からそういう情報に敏感になっておく必要がある。もっとも、こういった類の「メタ視点」は、就職に限らず自分がその会社で働くことになってからも重要であるのは言うまでもない。

■ 自分探し、大いに結構

これまた前にも書いたが、就活と恋愛はとても良く似ている(そのせいで「婚活」なる言葉が生まれたのだが)。真剣に恋愛するとびっくりすることの一つが、相手を通じて、否が応でも「自分」という人間がありありと浮き彫りにされること。

これは就職に関しても同じで、よく就職するに当たっては、「自己分析」が大切、と言われるが、「自分」なんてものは机にじっと座って、「自己分析シート」を前にしてウンウンうなっていても分析できるものでも無く、相手に対して真剣にぶつかって、それに対する自分の反応を見た上で初めて徐々に分かってくるようなものだと思う。

そういった意味で、異性と付き合っていくうちに、「相手に対してゆずれない物」の優先順位が徐々に変化するのと同じように、就活中に、「会社に重視すること」などの視点が変わってくるのは大いにあり得るし、むしろそれ自体が就活の大きな成果だと思う。

実際、就活中にその会社のことを知る良い方法の一つは、実際に採用試験を受けてみることである。面接の担当者が魅力的ではなかったり、技術職採用なのにどうでも良い質問(「自分を動物に例えると何ですか?」みたいなの)ばかりされたりして、採用試験を受けているその場から会社に対するイメージが変わっていくこともある。こういう「違和感」みたいなものは入社後にさらに増幅する可能性が高いので大切にしたい。

なので、個人的には就活を通じた「自分探し」というのは大いに結構で、というか、そういった「自分の価値観のrefinement」自体も含めて、就活の大事なプロセスである気がする。

ただし、そもそも就職活動に限らないけど、選択にあたって自分の譲れない「軸」を持っておくことは重要だと思う。なんだか、だんだんと自己啓発本みたいなノリになってきたけど、自分の場合、

1.「迷ったら、人と違う方を選ぶ」
2.「迷ったら、得しそう、ではなく、楽しそう、を選ぶ」
3.「迷ったら、より難しそう(チャレンジング)な方を選ぶ」

という基本的な3つの行動指針があって、就活中に(というか人生全般で)迷った時にはいつもこのことを意識していた。これらは何も自分のオリジナルではなく、

1.は渡辺千賀著『ヒューマン2.0』
2.は大村あつし著『人生は数式で考えるとうまくいく』
3.はポール グレアム著『ハッカーと画家』

からそれぞれ共感した「指針」をつまみ食いしたものである。上で「会社を魅力度でランキングすること自体が難しい」ということを書いたが、迷ったときは行動指針に合わせて「どちらかより指針に合っているか」で判断すると楽になることが多い。

なお、このブログでも繰り返しオススメしているが、今では「インターン」という「会社で給料をもらいながらお試しで働いてみる」、恋愛の例えで言うと「異性と付き合う前に一夜を共にできる(?)」という素晴らしいシステムがある。日本ではまだまだちゃんとしたインターン制度を提供している企業は少ないけど、「その会社のことを知る」という点でインターン以上に良い方法は無いと思っている。

■ そんなこんなで

友人・知人にはある程度伝えたけど、4月からバイドゥ(百度)株式会社のR&Dエンジニアとしてはたらくことになりました。いろいろと紆余曲折があったけど、上の指針に照らして、単純に「最も人と違って、最も楽しそうで、最もチャレンジングな」ところを選べたと思う。ちなみに最初の勤務地は上海のR&Dセンターの予定。今からワクワクしてます。

なお、就活にあたっては、指導教官のT先生、mamorukさんsassanoさんをはじめ、多くの方々のお世話になりました。どうもありがとうございました。

ちなみに、もともとこのブログ、「海外就職記」という名前で始めたものだった。海外で就職したいけど、どうやって就活したら良いかわからない!ということで、それなら自分の就職自体をネタにして、ブログで報告したりフィードバックをもらったりしたら良いのでは?と考えたのがきっかけ。

結局、夏にアメリカに3ヶ月インターンに行って、「海外で仕事したい欲」がある程度満たされてしまったことに加え、自分が目指していたのは、「海外で働くこと」ではなく、「人と違う(交換不可能な)環境で働く」ことだったと分かった。加えて、ブログで就活の過程を公開すること自体、けっこうデリケートな話なども含むし、なんとなく品の良いことではないような感じがしたので、普通の個人ブログになっていたが、今ならこうやって書けるので、本来の目的達成してやったり、という感じである。(しかも、フタを開けてみたら、実際海外で働くことになって自分でもびっくりしていたり!)

add to hatena hatena.comment (236) add to del.icio.us (0) add to livedoor.clip (8) add to Yahoo!Bookmark (3) Total: 247
  • 2 Comments
  • Filed under: インターン, 就職, 大学
  • p1010029e.jpg dsc02503.jpg

    25日は名古屋大学の卒業式。博士課程の3年次は特に色々あったけど無事博士号を頂くことができました。これも研究室の先生方をはじめ、5年以上に渡る研究生活を支えて下さった全ての方々のお力添えのおかげです。色々とお世話になりました。

    3月は、引っ越しに出張x2と、色々な人との出会い+別れ(+飲み)で、怒濤のように日々が過ぎていってしまいました。引っ越しも落ち着き、今日から1週間弱は東京で暮らしてますので関東圏のひとはよろしく!

    写真は最後に研究室のメンバーでパチリ。顔出しNGの人は言ってください(事後報告)

    add to hatena hatena.comment (2) add to del.icio.us (0) add to livedoor.clip (1) add to Yahoo!Bookmark (0) Total: 3
  • 5 Comments
  • Filed under: 大学
  • p1000967e.jpg p1000980e.jpg

    (写真:香港大学から見た高層アパート群と、ヴィクトリア・ピークからの夜景)

    週末から今日にかけて、研究室で参加している

    日本法令翻訳プロジェクト
    http://www.kl.i.is.nagoya-u.ac.jp/told/

    の関係で香港大学を訪問していました。

    自分は法律文に統計的自然言語処理を適用する話について研究紹介。基本的には、去年の夏に参加した、法律情報学の国際ワークショップJURISIN 2008で発表した内容と同じ。前にも書いたけど、日本の法律文というのは定型性が高いので、自然言語処理の分野で提案された統計的手法などを適用したら嬉しいよね、という話。

    もう一つの研究紹介は、小川先生のBilingual KWICで、単語のアラインメントをさせながらパラレルコーパスをKWIC形式で検索できるツールである。KWICとアラインメントという、どちらもそれ単体では既に枯れた技術だが、それを組み合わせるとものすごく便利になるよ、という話の好例だと思う。

    この「対応単語がわかるパラレルコーパス検索エンジン」、shimaさんのブログのエントリ:

    外国語学習に役立つ、対応単語がわかるパラレルコーパス検索エンジン「LINEAR B」
    http://w-it.jp/shima/2009/03/linear_b.html

    には、「どなたか英語<–>日本語あたりで似たようなシステムを作ってみてはいかがでしょう?」とあるが、既にここにあるよ~!ということで紹介してみました。

    この「Bilingual KWIC」、今コーパスとしては法律文が入っているが、一般のパラレルコーパスを入れて英語学習者向けに公開したらウケるのは間違いない。法律関係の用語にはめっぽう強く、例えば「証券会社」と入れるとちゃんと「securities corporation」「securities company」といった訳語を推定してくれて賢い。

    香港について

    今回、香港に行ったのは初めてだったけど、歴史的経緯のせいで、英語、広東語、標準中国語(普通話)が街中に飛び交う、なかなかマルチリンガルな地域である。それだけで自他ともに認める自分のような「語学マニア」にはたまらない。たとえば、地下鉄のアナウンスは、広東語、普通話、英語の順に3言語で同じ内容を言うのでなんだか長ったらしくて騒がしいが、聞いてみると単に「列車とホームの隙間にご注意ください」ぐらいしか言っていなかったりする。

    そのためあって、法律の言語関係は色々大変とのことで、カナダ(英語+フランス語)と同様に中国語と英語で、最初からパラレルに法律が書かれるそうな。

    英語の通用範囲はかなり広いし、標準中国語もけっこう通じるようだし(拙いフレーズを買い物するときに少し使ってみたが、こっちのほうが地元の店の人には通用するみたい)、何より書いてあるのが繁体字なので、標準中国語で使われる簡体字よりも日本人に優しいというのが良い。アジアの典型的な(カオスな)町並みと近代的なビル群が混ざったような風景は面白いし、言葉の関係もあって海外旅行初心者には良い目的地だと思う(あと料理がホントおいしい!)。そのためあって、空港まで迎えに来てくれた弟夫婦に激しくオススメしておいた。

    add to hatena hatena.comment (2) add to del.icio.us (0) add to livedoor.clip (0) add to Yahoo!Bookmark (0) Total: 2
  • 2 Comments
  • Filed under: 技術, 大学
  • 週末から今日にかけて、研究室で参加している

    日本法令翻訳プロジェクト
    http://www.kl.i.is.nagoya-u.ac.jp/told/

    の関係で香港大学を訪問していました。自分は法律文に統計的自然言語処理を適用する話について研究紹介。

    また詳細はあとで書きます。(溜まったメールも返信します。。。)

    add to hatena hatena.comment (0) add to del.icio.us (0) add to livedoor.clip (0) add to Yahoo!Bookmark (0) Total: 0
  • 0 Comments
  • Filed under: 技術, 大学
  • 引き続き、先週鳥取で行われた自然言語処理年次大会(NLP2009)の本会議3日目について書きます。

    まずは、個人的に興味のあった発表について。

    超大規模ウェブコーパスを用いた分布類似度計算
    (京大 柴田さん他)

    超大規模ウェブコーパスとして、検索エンジンTSUBAKIの1億ページを使って分布類似度を計算し、類義語を求めました、というお話。

    「超大規模」と銘うってある割には、高速化や近似処理などの「超大規模ならでは」の話があまり無かったように思える点は残念である。一点、ふんだんなコーパスサイズを利用して、「コーパスサイズを変えると分布類似度の性能はどう変化するか」が詳細に調査されてて、この研究で扱った1.6G文ほどあれば十分のようだ、という結果である。

    個人的な経験としては、分布類似度の計算には、文脈の量も大事だが、それよりも「多様さ」(異なり数)がけっこう利くので、ある程度量を確保したら、それ以上コーパスサイズを増やしても多様性は少ししか(コーパスサイズのlogを下回るペースでしか)増えないので性能が飽和するのだろう。直感的に。

    これに関連して、超大規模コーパスから文脈類似度を計算する話としては、


    James Gorman and James R. Curran
    Scaling Distributional Similarity to Large Corpora
    In Proc. of COLING/ACL 2006

    が詳しくてオススメ。ここでは、大規模コーパスからの分布類似度の計算のために、

    - RI; Random Indexing
    - LSH; Locality Sensitive Hashing
    - VPT; Vantage Point Tree
    - PLEB; Point Location in Equal Balls
    - SASH; Spatial Approximation Sample Hierarchy

    などの、ベクトルモデルでk近傍を高速に求めるための近似手法がいくつか比較されている。結果的には、速度ではRandom Indexingが、近似精度ではSASHが良かったという話である。ベクトル間の類似度を求める処理は自然言語処理に限らず色んなところに出てきて、どれがうまく行くか、というのはある程度タスク依存なところも有ると思うが、こういった手法をカタログ的に知っておくのは有用である。

    グラフカーネルに基づく非分かち書き文からの意味的語彙カテゴリの抽出
    (自分の発表) 発表スライド

    自分の発表したD4:マイニング(1)のセッションに面白そうな話が集まっていたのが理由だと思うけど、とてもたくさんの人に見に来て頂いて圧倒されそうだった。質問・コメント等に関しても、セッション中およびセッションの後にまで及んで本当に数え切れないぐらいの人から有用なフィードバックを頂いて、ただただ感謝するばかりである。こういう点に関して、自分は他人の研究に質問・コメントしたりするのが全然まだまだだなぁと感じるので、微力ながらこうやってブログで紹介等を書くのがせめてもの罪滅ぼしである。

    実は今回の話、NAISTの小町さんらのグループの話にかなりの部分が依存していて、論文等も引用しまくっている。それもあって、原稿を投稿した直後に「論文引用したので、ちゃんと引用できてるか、よかったら読んでください」といって本人に直接、原稿を送ったのだった。結局、引用をチェックしてもらえただけではなく、脚注中のタイポまで指摘してもらい(!)とても有用な経験だったので、今後もできるだけ続けていきたい。(参考文献がほとんど英語なので、これを実行しようとすると自動的に論文は英語でしか書けなくなるけど)

    この「論文を引用したら著者に見せる」メソッド、実は前コメントでshimaさんに紹介してもらった、MSRのSimon Peyton JonesのHow to write a great research paperの中にあった、


    A good plan: when you think you are done, send the draft to the competition saying “could you help me ensure that I describe your work fairly?”
    (「関連研究」を書き終えた時点で、論文のドラフトを引用した競合相手に送り、「あなたの研究をちゃんと引用できているか確認してもらえますか?」と言うと良い)

    というアドバイスを愚直に実行してみたものである。思えば、引用される側からしても、自分の論文が引用されていれば嫌な気はしないし(というかけっこう嬉しいし)、それを元にどんな研究がなされたのか、論文中でどのように言及されているかは気になるところであるので、両者ともハッピーなのではないだろうか。

    ちなみに上の「How to write a great research paper」、これ以外にも

    - 研究をやる前に論文を書け
    - 論文の目的はシステムの紹介ではない
    - 本論文の構成は、以下の通りである・・・はやめれ
    - 例を使え
    - 従来研究を高く評価しても、自分の研究の評価を下げることにならない

    等々、有用なコメントがたくさんあるので、論文書く前に何度でも読み返したい。

    add to hatena hatena.comment (18) add to del.icio.us (0) add to livedoor.clip (2) add to Yahoo!Bookmark (0) Total: 20
  • 0 Comments
  • Filed under: 技術, 大学
  • 先週鳥取で行われた自然言語処理年次大会(NLP2009)の本会議2日目について書きます。

    意味的類似度を利用した日本語クエリ書き換え

    この日のポスター発表では、去年の夏にMicrosoft Researchで取り組んだ「意味的類似度を利用した日本語クエリ書き換え」のプロジェクトについて話してきた。この話については、去年の9月に熱海で行われたNLP若手の会(YANS)の第3回シンポジウムで一度話しているが、実験で若干の修正(改善)があったことと、全国大会での初のお披露目、という意味でもう一度あらためて発表したものだった。

    クエリ書き換えは、実はちゃんとやろうとするとけっこう難しいタスクであり、しかも自然言語処理の様々な要素技術を使う。今回のプロジェクトも実はかなり大規模で、雑音のある通信路モデル、nグラム言語モデル、翻字、一般化編集距離、分布類似度、ブートストラップ、グラフカーネル、最大エントロピー法、etc. etc.と、これはもはや「自然言語処理のデパート」だ、と自分で勝手に呼んでいるぐらい色々な話が入っているので、それを全部説明すると聞く方も話す方も退屈してしまう。

    そのため、前回の反省を踏まえて「いかに多くの人にプロジェクトのことを知ってもらうか」に注力して話してみた。他の研究室の学生さんと話していて、そもそもMSRでインターンができることを知らなかった、という話もあったので、インターンの宣伝も兼ねている。詳細はばっさり切ってシステムの概要だけ説明して、必要に応じて詳細に踏み込む、幅優先探索的な戦略。この成果もあって、共著のhisamiさんと手分けして並列に説明したのでかなり多くの人にプロジェクト自体を知ってもらえたように思う。多数の質問コメントありがとうございました。

    ここで話した内容のポスター(及びブースターセッションのパワポ)はNLP若手の会のサイトから見られるので、よかったらどうぞ~

    そういえば、クエリ書き換えと言えば、NY大関根先生の株式会社ランゲージ・クラフト研究所のページに面白いスペルミスを集めたミススペル 109例というページがある。一見どこが間違っているかよく分からない例もあって見てるだけでも面白いが、どれもこれも検索エンジンのクエリ誤りとしてはありがちだと思うので、これからスペル訂正システムを作ってみる場合には、「とりあえずこの109例が正しく直せるか?」というのをベースラインにしても良さそうである。CoNLL shared taskにしろ、同義語獲得でよく使われるTOEFLの同義語判定50問にしろ、こういった手軽に使える共通のベンチマークがあると研究も俄然盛り上がるような気がする。

    ちなみに、今回のプロジェクトでクエリログをけっこうな量眺めたのだが、面白かったスペルミスは「You Tube」のスペルミスで「Юチューブ」というもの。この「Ю」はハングルではなく実はキリル文字で/ju/の音を表すものらしく、おそらく「ユーチューブ」を入力しようとした時にロシア語のIMEがONになっていたため入力されてしまったと想像される。発表では「You Tube」のスペルミスだけをたくさん集めたものをばーんと見せて「クエリ訂正がいかに重要か」ということを理解してもらえるよう努めたのだが、しかしまあ検索エンジンのユーザーというのは(自分も含めて)色々な間違いをするものだなぁと感心する。

    頭語構造の特長を利用した上位下位関係辞書の拡張
    (NICT 山田さん他)

    他に1件だけ、面白かった発表を紹介(ほかにも面白かったものはたくさんあった)。

    この発表では、Wikipediaから収集して構築した語の上位下位関係辞書に対して、Webテキストから収集した語を追加して拡張していくというタスクを扱っている。上位下位関係辞書は、関係を繋げていくと「語彙体系」とよばれる木構造になるが、Webから獲得した語をその語彙体系のどこに追加していけば良いかを求める、というのが手法の本質部分。

    簡単に言うと、Webから収集した文脈に基づく「分布文脈類似度」から求めた潜在クラス分布を用いて最も似ている節点を求めて、その上位語にくっつける感じ。この上位語の求め方も、単純に一番似ているものを取ってくる方法から、似ているものを複数取ってきて、その全てを総合してスコアリングして尤もらしいものを取ってくる方法まで試されていて、広範囲を見て総合的にスコアリングして求めた方が性能が高いそうだ。

    質疑応答でも質問があったが、この方法を聞いて思い出すのがRion SnowのCOLING/ACL 2006の論文で、こちらでは、文脈類似度と上位・下位関係分類器の出力など、「複数の情報源からの手がかりに基づいた語彙体系自体の確率」を最大化するように新たな節点を追加している。まず上位下位の語彙体系を構築してそこに追加していくという2段階ではなく、その両者を考慮して語彙体系を(ゼロから、もしくは核から)むくむくと成長させてく感じで、よりスマートに思える。両者の比較もぜひ見てみたい。

    あとは、文脈類似度を求める時に使っている潜在意味モデルがどう見てもPLSIと本質的に同じなのだが、そこへの言及が無かったのは残念だった。この部分は、ぶっちゃけ単純なBoW+ベクトル空間モデルでも類似度が出せるので、今回の話の本質ではないのだけど・・・。

    ちなみに発表者の山田さんは、自分の研究室のOBということで少しお話させていただいたのだが、同じ系統の研究をやっている身としてもっとゆっくりと時間をとって議論できたら良かった。

    add to hatena hatena.comment (12) add to del.icio.us (0) add to livedoor.clip (3) add to Yahoo!Bookmark (0) Total: 15
  • 0 Comments
  • Filed under: インターン, 技術, 大学
  • 先週参加した自然言語処理年次大会(NLP2009)について引き続き書きます。本会議1日目は発表は無し。個人的に面白かった発表を2件ほど紹介します。

    Character-based Thai Named Entity Recognition(文字ベースのタイ語固有表現認識)
    (東工大のWanvarieさんら)

    今回の自分の発表が非分かち書き文からの知識獲得に関するものなので、こういう「文字ベース」系の手法にどうしても目が行ってしまう。

    日本語と同様に、タイ語も単語分かち書きをしないのはけっこう知られていると思うけど、さらに全て表音文字なので、日本語のひらがなで文が全て書いてあるようなもので、固有名詞抽出などのタスクが大変だという問題がある。

    形態素解析器などもあまり整備されていないため、それならば文字nグラムの単位でやってしまえば良いのでは?というお話。

    手法としては、まずタイ語固有の前処理(特定の文字は単語の最初には来ない、などなど)をして文字を「疑似形態素」にまとめておいてから、CRFの系列ラベリングでIOB(固有名詞の頭か、内側か、外側か)のラベルを付けていくという手順で、特に目新しいものはない。

    興味深かった知見は、これを2段階に分けて、単語境界検出をしてからそれを素性にして固有名詞抽出をすると、単語境界検出に足を引っ張られてかなり性能が落ちてしまうところ。それならば最初から文字nグラムを直接素性にしたほうがいい、という結論で、これは自分の研究のそもそもの動機である「固有表現認識に形態素解析は使えない」に通じるものがある。日本語でも、文字種などのヒューリスティックである程度まとめてから文字nグラム単位で解析したらもう少しうまく行くかもしれない。

    専門用語の内部構造解析
    (NAIST, 東大の山田さんら)

    一日目にしてこんなに面白い研究発表に出会えたのは幸運かもしれない。「問題→解決」のストーリーが分かりやすい素晴らしいプレゼンで、例もふんだんに使ってあって聞いててどんどんとのめり込んだ。今回の大会のオレ的最優秀発表賞。

    ここでは医学系の専門用語を扱っていて、たとえば「急性骨髄性白血病」は「(急性)の(骨髄性白血病)」で、「骨髄性白血病」は「(骨髄性)の(白血病)」というように、内部構造(要素とその間の関係)を持つ。この関係をどのように定義してやればいいか?という話なのだけど、例えば「大腿骨折」は「(大腿骨)の(骨折)」というように「骨」が縮退してしまっていてちょっと複雑なのでなかなか一筋縄ではいかない。

    そのために、この発表では文字単位で係り受けを定義することによって、縮退や依存関係などを統一的に定義している。

    質疑応答の中にもあったけど、自分も「縮退を前処理的に処理しておいて、係り受けはあくまで要素間で定義できないのかな?」とも思った。でもよく考えてみると、文字単位でやったほうがすっきりするし、要素の区切りと依存関係を、同じ枠組みで表現できるので解析器も学習させやすいのは良い。

    漢字の文字単位での係り受けの定義・解析って、これだけ聞いていると、これはもはや「中国語の構文解析」の特殊な場合に近いのでは?と思った。実際、中国語には「兼語文」といって、前の文の客語(目的語)と後ろの文の主語が同じ時に一つにまとまっている(=縮退している)構文がある。中国語の構文解析ではこういう文をどう定義しているのか調べてみると参考になるかもしれない。

    ちなみに、自分の研究室では、構文情報付きの法律文コーパスを作っているが、ここでも「法律文中の並列関係や同格関係、括弧書き間の係り受け関係をどのようにして定義するか?」という問題が出てきて、ミーティングで毎回、侃々諤々の議論をしていた。日本の法律文というのは、少なくとも近年においては非常にシステマティックに、高い定型性を持って書かれていて、ここではかなり綺麗に定義できた記憶がある。その結果は去年のNLP2008で発表している(山田将之ら「構文情報付き法律文コーパスの設計と構築」)ので、興味がある方は参照していただきたい。

    add to hatena hatena.comment (10) add to del.icio.us (0) add to livedoor.clip (1) add to Yahoo!Bookmark (0) Total: 11
  • 0 Comments
  • Filed under: 技術, 大学
  • 先週まで、鳥取で開かれた言語処理学会年次大会(NLP2009)に参加していました。自分は、発表2件をひっさげてチュートリアルから本大会まで、とフル出場でした。帰ってきて少し落ち着いたので、取ったメモを元にして少しまとめてみたいと思います。

    チュートリアルの中で自分の興味のあった講演は、

    Yahoo!の山下たつをさんの「ウェブサービスを利用した自然言語処理研究」

    NY大関根先生の「自然言語処理のための知識獲得」

    の2件。

    ウェブサービスを利用した自然言語処理研究

    前者は、Web APIを自然言語処理に活用する際のレシピ、と銘打っていて、Yahoo!の提供するWeb APIの紹介と、それを使った自然言語処理のアイデアなどを浅く広く紹介してもらえた感じ。最近流行のライフハック本シリーズに倣って一言でタイトルを付けると「Web API+NLP Hacks!」という感じになるかな。

    Web APIを適用していたタスクには、「関連語検索」「関係抽出」などの語彙知識や固有名詞獲得系のものが多かった。この系のタスクは、関係を取ってくるために、大規模データ中の文脈パターン(一次の共起)や文脈の類似度(二次の共起)、もしくはその両方を使うものが多いので、Web上での統計を求めるためにWeb検索APIは絶好のツールである。

    この辺りの話は、「枯れた技術」が中心で、ほとんどがたつをさんのブログに載っているので、それを「Web API+NLP」という軸でまとめたというところ以外、特にいつもブログを拝読している身としてはどこかで聞いた話は多かった。一方、小粒なテクニックでは面白いアイデアがちょこちょこあって(例えばYahoo!カテゴリを利用した簡易文書分類、など)、ベースラインとして使うにはちょうどよいネタが満載だった。

    自然言語処理のための知識獲得

    後者は、「知識獲得」と銘打っているが、講演の最初に紹介があったように、ここで言う「知識」とは「モノ・コト・名前とその間の関係」なので、語彙知識獲得とかなりの部分が重複しており、こちらもどこかで聞いた話がほとんどであった。

    印象としては、知識発見手法についてこちらも広く浅くまとめてあって、知識獲得系のことを包括的に知るためのポインターとしては有用だと思った。(スライド最後に膨大な参考文献のリストがあって、これだけでも価値がある)

    この講演で初めて聞いた話でとても面白かったものの一つに、「Amazon Mechanical Turk」がある。これは、オンラインで出来る軽い作業(タスク)を安価に人に頼めるWebサービスで、これを使うとたとえば「この画像によく当てはまる単語を選んでください」とか「この中から反義語を選んでください」みたいなアノテーション(タグ付け)の作業を簡単に外注できる。このサービスを使ったアノテーションについては、EMNLP 2008のRion Snowの論文に詳しいが、多数決を取ったり工夫することで専門家と同等以上の質のアノテーションが実現できるみたいだ。

    チュートリアルの説明を聞く限り、アノテーションの外注サービスのような印象を受けたけど、よくよく見てみれば別に外注する作業はアノテーションに限ったものでは無い。簡単に思いつく面白い(実用的な)使い方は「英文添削」で、英語のWebサイトとかを作ってみたら、「このサイト読んで英語の変なところを教えてね!」的な作業を投げてみれば良い。驚くべきはそのコストで、10文のアノテーションを頼んで2セントとか、そういうレベルらしい。論文とかだと守秘義務の問題とかがあって難しいかもしれないけど、どうせ公開するWebサイトとかなら、専門の業者に頼むのがバカらしくなりそう。

    この話を聞いて真っ先に浮かんだのが、前に友人に教えてもらった、IT系のプロジェクトを簡単に外注できる仕事マッチングサービスの「oDesk」。この両者、似ているようでだいぶ方向性が異なっていて、Amazon Mechanical Turkのほうは「人力作業外注サービス」である一方、「oDesk」のほうは「プロジェクト外注マッチングサービス」という感じかな。「oDesk」で英語の先生を激安で雇う、ということもできるし、どちらも使い方次第では可能性が広がる。

    総括

    久しぶりにチュートリアルなるものに出てみたけど、わざわざ日曜に鳥取入りして出た価値があった。一点だけ残念なのは、「チュートリアル」というからには研究分野に飛び込んだばかりの修士課程の学生が聞いても面白い(もしくは分からない内容については適切なポインターを提示する)内容であるべきだと思っていて、その点でスライドが英語なのはどうかな・・・というところ。英語がネックになって研究が思うように進まない学生はけっこう多いように思う。もちろん、最新のトピックには日本語にできないものが多数あるのがあるのは分かるが、むしろこういう機会に「標準訳」を提示してやるぐらいの勢いがあったらよかった。

    その点で、関根先生が最初に

    Distributional Similarityは、『分布類似度』ではなくてむしろ『文脈類似度』と言うべき

    という趣旨のことを仰ってたのにははっとした。これは最初の英語の用語がそもそも適切では無い例だが、これまで自分も違和感を持ちながら使っていたので、これからチャンスがあれば「文脈類似度」という言葉のほうをちょっと使ってみたくもなった。

    add to hatena hatena.comment (6) add to del.icio.us (0) add to livedoor.clip (1) add to Yahoo!Bookmark (1) Total: 8
  • 0 Comments
  • Filed under: 技術, 大学
  • 2月末でついに8年住んだ名古屋ともお別れ。3月中は、ダブル家賃をなるべく避けるために実家をバッファーにして東京に引っ越すため、

    1. まず不要なモノや家具等を処分したり実家に送ったりしておく
    2. 旧居の退去日に残ったモノを車に全部積んで実家に帰る ← いまここ
    3. 新居に荷物を運んだり送ったりする

    というように3段階に分けて段階的にやっている。

    引っ越しはけっこう複雑な作業なので、進めていくと大小さまざまな問題に出くわしてけっこう頭を使う。たとえば、

    - モノや家具等のうち、どれを処分してどれを新居に運ぶか どのタイミングで、どうやって運ぶか(運搬コストを最小化するにはどうしたらよいか)
    - 旧居の退去時期と新居の入居時期はいつにするか(家賃の合計額を最小化するにはどうしたらよいか)
    - 運搬用車にいかに効率的に荷物を載せるか(載せた荷物の価値の合計を最大化するにはどうしたらよいか)

    などなど。最後のやつは文字通り「ナップサック問題」で、どのサブ問題も結局は「引っ越しのトータルのコストをいかにして最小化するか」という最適化問題に落ち着く。

    自分は大学に入ってから一度も引っ越しをしたことがなくて、今回引っ越しのコストがいかに高いかを思い知って頭を悩ませているのだけど、こういうふうに「脳トレ」として考えると俄然楽しくなってくる。実際、築山節氏著の『脳が冴える15の習慣』 にも、


    現代人は脳のタフさ(指令を出し続ける体力)が欠けている
    これは、日常的な雑用を面倒くさがらずに片付けることで鍛えられる

    という趣旨のことが繰り返し書かれており、こういった意味で引っ越しはかなり有効な「脳トレ」である。この本、「脳の健康」というトピックに関するとても良い本なので、エンジニアや研究者に限らず、全ての頭脳労働者におすすめしたい。

    ちなみに、個人的に思う最大の脳トレは「会社を経営する」ことであるし、これが会社経営者に成功者が多い理由だと思う。どっちが鶏か卵か分からないが。

    ちなみに、今回引っ越しをするにあたって、名古屋大学の下宿用品リユース市がものすごく役に立った。物品の提供側に回るのは初めてだけど、とても良い活動だと思うので今後もぜひ続けていって欲しい。ちなみに、昨年度はfrippa側の社会貢献として、提供物品のデータベースシステムを提供させてもらった。運営側にも携わることができて貴重な経験ができるので、ぜひ携わってみたい人にはオススメ。

    今週からは言語処理学会第15回年次大会(NLP2009)に参加するために鳥取入りしています。詳細についてはまたあとで書く。

    add to hatena hatena.comment (0) add to del.icio.us (0) add to livedoor.clip (0) add to Yahoo!Bookmark (0) Total: 0
  • 0 Comments
  • Filed under: 大学, 一般
  • Recent Comments