Question Answering Using Enhanced Lexical Semantic Models (pdf)

Wen-tau Yih, Ming-Wei Chang, Christopher Meek and Andrzej Pastusiak, Microsoft Research, ACL 2013

導入

  • 自然文の質問文を入力として受け付けて、解答として適切な文の選択(answer sentence selection)をして出力する
    • 単に名詞を解答として選択して出力するよりも、文脈が付いていたほうが根拠が分かるし、ユーザにとっては価値があるから
  • answer sentence selectionは質問文と文書中の文とのマッチングの問題と考えられる
    • 単語の表層形のマッチングを単純な方法だと精度はそんなに上がらない
    • 深い意味解析をしたり構文木の編集距離 (Tree Edit Distance)をしている研究もあるが、計算コストが高い
    • なのでこの研究では浅い意味解析を頑張ってanswer sentence selectionの性能を上げることに焦点を当てる
      • 浅い意味解析は上位下位語や同義語などを識別するlexical sematics
  • この論文ではlatent word-alignment structureとしてanswer sentence selectionを定式化する

この論文の貢献

  • 色々なlexical semanticを組み合わせれば、学習アルゴリズムなどに関係なくanswer sentence selectionシステムの性能を上げられる
  • lexical word-alignment structureは、非構造なモデルよりも高い性能を出せるが、両方のモデルにlexical semanticsを入れた場合、性能の差は小さくなる
    • 計算コストを下げたいなら、lexical semanticsを使ってシンプルなモデルを使うこともできる

問題設定

教師あり学習でanswer sentence selectionに取り組む。学習時は質問文qと、それに関連するラベル付きの文(yi, si)のリストが与えられるので、それを学習データとしてパラメータを学習。yiは1であればsiは正解の文、0であれば不正解の文を表す。予測時は未知の文に対し、文が正解である確率を予測し、yiとする。

実際には文が正解であるかどうかではなく、文が質問文と意味的にマッチするかどうかを学習する。この論文では質問文と文の間には隠れ構造hが存在すると仮定する。隠れ構造hは質問文の単語と文の単語が対応するかどうかを表したバイナリのベクトル。

文を構文木で表現する先行研究もあるが、導入部分での理由から、この論文では浅い意味解析により文を表現する。

lexical semantic models

表層系のみのマッチングでは微妙なので言語資源を作成する。

類義語と反義語

Polarity-Inducing latent semantic analysis (PILSA) modelを使う。シソーラス(文書と単語のtfidf行列?)を入力として、SVDでd行n列の行列を構築する。dは類義語や反義語のクラスタの数を表す。nは語彙の数。二つの単語を表す列のコサインが正であれば、その単語は類義語、負であれば反義語とみなす。

上位語下位語

WordNetはカバレッジが低いので、Probaseを使う。ある単語が別の単語の下位語である確率を保持している。

意味的な単語の類似度

商用のサーチエンジンのクリックデータを使ってSiamese newural networkモデルを学習。入力はクエリとクリックしたページのタイトルの対の集合。ある文字列(クエリ)がどの文字列(クリックされたページのタイトル)と対応するかを表す行列を学習する。ページのタイトルを表す行ベクトルは密になるように圧縮されている。

分類器の学習

Bag-of-Wordsモデル

logistic regressionとboosted decision treeを用いる。

隠れ構造モデル

構造的なモデルではLatent-SVMの一種であるLCLRを用いる。目的関数 (単語間の意味的類似度) を最大化する隠れ構造hを選択して、損失項を最小化するように重みを更新するのを繰り返す。隠れ構造hがどの単語とどの単語の対応を見るかを制御している。隠れ構造は、「文のある単語は少なくとも質問文中の1つ以上の単語と対応していなければならない」、「質問文中の単語は文中のいずれかの単語と対応していなければならない」、というような制約を付与して整数計画法により選択する。

素性

すべての素性は単語のIDFで重み付け

  • 表層的な単語のマッチング
  • WordNet: 同じsynsetに属する、上位語下位語、反義語関係にある
  • lexical semantics: 上記実数値
  • NE: 単語が同じタイプの固有表現の一部である
  • answer type checking: 質問文がWHを接頭辞とする単語から始まる場合のルール。Whoで始まれば、PersonなNEと対応するみたいなもの。

結果

リッチな言語資源を使うほど、どの分類器でもMRR、MAPが向上。

所感

複雑なアルゴリズムでやるよりも言語資源をリッチにして計算コストを減らすのは良さそうと思ったので、LCLRとlogistic regressionでどれくらい差が出るのか気になった。文間の単語の対応くらいだと問題はそれほど大きくないかもしれないけど、整数計画法のソルバーは早いものが有償だったりするので、そういったことを考えると分類器で複雑なことをするよりも言語資源を前処理でガッと作っておくほうが現実的な気がした。


関連記事






最近の記事