小町さんのブログでアナウンスがあったように、10/6に Yahoo! Inc. の Patrick PantelさんがNAISTにて「大規模な自動的集合展開」について講演してくださるというので行ってきた。初NAIST訪問でした。

集合展開(Set Expansion)というのは(自分でも)聞き慣れない言葉だったけど、要するに Google Sets みたいに、ある言葉の集合を入れるとそれらと同じカテゴリに属する他の言葉を自動でウェブなどから取ってきてくれるようなタスクのこと。たとえばred, green, blueって入れるとblack, white, brown, pinkなど他の色を自動でずらずらと出してくれる。

Google Setsはどうやってやってるかは知らないが、この集合展開、基本的には、類義語獲得によく使われる分布類似度の応用で実現可能である。与えられた語(種:シード)の文脈を見て、その文脈と共起するような語を拾ってくればシードと類似している可能性が高い、というしくみである(ここを詳しく語っていると論文が軽く数本書けてしまうので割愛)。

講演自体はこの分布類似度からスタートして、どうやって高速化するか、コーパスの質や量、シードの質や量の影響は、といった関連調査まで幅広く紹介してくれた。自分は分布類似度がらみのことをずっと研究でやってきたので、「どうやってやっているか」の部分について深く聞きたかったのだが、この部分については要するに「シードの素性ベクトルを算術平均して、あとは普通の分布類似度と同じ」だったのでなんだか拍子抜け。聴衆の興味の問題もあるのであまりマニアックなところを延々と議論するのもアレかとは思うけど、ここの集合展開の基本モデルについても再考の余地はありそうだ。

あとは、分布類似度の高速化の話が面白かった。PantelさんはYahoo!の分散化システム(GoogleのMapReduceみたいなの)上に単語分割して載せて、さらに逆インデックス作って高速化を図ったという話だったけど、分布類似度というのはもともと扱う行列がものすごくスパースなので、実は計算量がO(N^3)というのは大げさである。計算量を下げる別のアプローチとして、元の情報を保ったまま余計な次元や要素を削除するのが簡単にできてしまう。このあたりの技術は自分が去年ぐらいにやってたことで、もうすぐ論文誌「自然言語処理」に論文が載るので興味があったら見てやってください(宣伝)。講演後にPantelさんともこのあたりの議論がけっこうできたのでよかった。

ちなみに集合展開というと、この前ふらふらしていて見つけたSet Expander for Any Language (SEAL)というシステムが異様に性能が高く、Google Setsよりも良い結果を出してくれる(ちなみにGoogle Setsはちょっと前まで日本語が通りさえしなかった)。例えば、「ネ、ウシ、トラ」をGoogle Setsに入れても全然展開してくれないけど、このSEALに入れるとちゃんと「タツ、イヌ、トリ、ウ」を出してくれて賢い。こっちは論文をちゃんと追ってないが、分布類似度じゃなくてHTMLの構造を使ってるようだ。ハイブリッド的にやったらどうなんだろう。

その後はPantelさんと一緒に松本研究室の紹介をしてもらう。聞いたことある話も少しあったけど非常に面白くて、なんだか講演を聴きに来た身で紹介までそのまましていただいて申し訳なく、何か自分も研究紹介のネタ(最低でも論文別刷り)ぐらい持ってくればよかったと後悔。興味を持ってもらえそうなネタがあればトークをしながらこうやって研究室を訪問して回るのも良いかもしれない。

その後Pantelさんと研究やYahoo!や採用の話などをしながら移動。Yahoo!について「そんなにしゃべちゃっていいの」的なことも聞けておもしろい。夜はPantelさんを囲む会でおいしい夕食をいただき帰路につく。講演もNAIST訪問を含めて実に楽しい1日だった。NAISTも非常に良い環境だし、名古屋から実質2時間で行けるので、時間的な距離は東京とほとんど同じ(かちょっと遠い)ぐらいで、このぐらいなら軽い研究会などちょくちょく訪問に行ければ、研究の情報交換もできるしモチベーションも上がって良い感じだと思った。あまり頻繁に行くぐらいなら「中の人」にでもなってしまったほうが良いかもしれない。