なぜ Google を使うのがいいのか、研究篇

秋入学だけどビザの関係で来日が遅れてしまった最後の中国からの研究生の人が到着し、松本研の席も全部埋まる。授業は先々週から始まっているらしいが、III期(NAIST はクォーター制)の授業は基本的に出席は取らないので、いまからでも間に合う、という寸法。

研究室内の勉強会も先週から始まったのだが、先週は月曜日が休みだったので今週が初めて。今回の意味談話解析勉強会では ryu-i さんが

  • Co-occurrence Contexts for Noun Compound Interpretation
  • Saghdha, Diarmuid and Copestake, Ann
  • ACL 2007 Workshop on A Broader Perspective on Multiword Expressions, 2007

を紹介。いろいろ共起を測る手法を比較検討して複合名詞の名詞間の関係を当てる、という話。勉強会の後 ryu-i さんと1時間くらい雑談したのだが、こういうタスクだとだいたい最終的には Google で検索したときのヒット回数を使って PMI を計算する、といった手法がいい数字を叩き出すことになるのだが、どうもここ半年くらいは個人的にはこれは Google がすごいんではないかという意見になりつつある。

なぜ Google を使うのがいいかというと、

スパムブログ(スプログと言うらしい)や word salad の対応、アダルトページのフィルタリングをしてくれている。こういうのが混じっていると共起データとしては変なデータになってしまう。自分でクロールしたデータを使う場合はこのあたりの面倒自分で見ないといけない。機械的にコピーされたページの中に低頻度の表現が入っていると特に共起が変になる。

データ量が圧倒的。共起の計算なんかでは特に低頻度の表現の出現頻度を見積もるときに値が適切でなくなるということが知られていて、新聞記事や自分でクロールしたデータなんかではこのあたり出現しない表現の推定がかなり間違うようだ。(PMI より log likelihood のほうが低頻度語の影響が少ないとかあるらしいが、そのあたりはたぶんどれ使ってもあまり変わらない)

Googleスニペット(検索したときに数行表示されるアレです)はかなり優秀でそれっぽいコンテクストを持ってくる。試しにLive Search で検索してみると、そもそも検索単語が全く含まれないスニペットがけっこう出てくる(だからこれからコンテクスト抽出するってのはたぶん難しい)。考えてみると Namazuスニペットもなんか単語は含まれているけどいまいち中を見た方がいいのかどうか分からないものがよく出ていたし、一昔前の検索エンジンは大概そんな感じだった気がするので、Google はきっと中の人ががんばって賢いことをしているのであろう。

このあたり自分でクロールしたりインデックス張ったりするのは現実的に大変。日本語のブログデータだけで(画像とか含んでいるのかテキストだけなのか知らないが)40TBあるらしいが、個人はおろか研究室単位でもこの量のデータを保存してデータベースに入れているところはないのでは?

といったところか。結果に再現性がないのは確かに問題だけど、Google のカウントを使わないで複雑なモデル(上記の論文では依存構造解析の結果とか string kernel とかそれらの組み合わせとかいろいろ試している)作っても、Google のカウントを使った単純な手法に負けたりする、なんてのはそんな恥ずかしいことではないと思う。

雑談だとドキュメント化されないのが痛い、なんてことを ryu-i さんが言っていたのでちょっと書いてみた。まあ Web で読めるものと読めないものと両方あった方が(自分は Web 日記に割と書く方だけど考えたことやあったことの1/10も書いていない)リアルコミュニケーションも大事にするのでいいんじゃないかな、と思うけど、こうやって書いてみるのも考えをまとめるにはいいかも。

特待生ミーティングに久しぶりに行ってきた。研究室外の人と会う機会ほとんどないので、ドクターに来てからいよいよこういう機会が貴重だなと思う。

近況なにかありますか、と湊先生に聞かれたのでいろいろマイクロソフト・リサーチのインターンシップの宣伝をしてくる。今考えてもいい環境だったなあ。そろそろ来年度(2008年夏)の募集かかるらしいので、興味ある人はメールください :-)