先週鳥取で行われた自然言語処理年次大会(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ということで少しお話させていただいたのだが、同じ系統の研究をやっている身としてもっとゆっくりと時間をとって議論できたら良かった。