petitviolet_blog

@petitviolet blog

Information Retrieval-12章

言語モデルで情報検索

言語モデルを情報検索に用いる流れは,

  1. 文書を生成モデルとみなして,クエリもそれによって生成されるものとする.
  2. 上の生成モデルを定義する.
  3. それを評価する.
  4. クエリを最も生成しそうな生成モデルである文書を見つけ出す.
  5. その文書を結果として返す.

と言った感じ.

言語モデル

まず言語モデルとはどういうものかについて.
有限オートマトンを思い出してもらって,

この図だと" I wish I wish I … "という言語列を持つ文書を生成する事ができる.
もちろん,こんなに簡単な文書は無いので,もっと複雑な確率で遷移するオートマトンを考えることになる.

確率的言語モデル

自然言語で構成される文書の,それぞれの単語列,文字列が起こる確率を与えることで
確率有限オートマトンを得る.
その確率を与えることが課題となる.

Naive Bayesとの比較

  • ナイーブベイズについてはまた後日詳しく.

ナイーブベイズ言語モデルの生成モデルを比較する.

ナイーブベイズについて
  1. 文書dを分類したい.
    • 例えばクラスは地域(UK, China, Kenyaなど)といったものが考えられる.
  2. 生成モデルによって文書dが生成されたものと考える.
  3. どのクラスの生成モデルがその文書を生成したと考えられるか.(重要)
言語モデルについて
  1. クエリqを分類したい.
    • それぞれの文書は異なるクラスに属すると考える.
  2. 生成モデルによってクエリqが生成されたものと考える.
  3. どの文書(つまりクラス)がそのクエリを生成したと考えられるか.(重要)

言語モデルを適用する

そのための手順.

  1. それぞれの文書を言語モデルとして扱う.
  2. 文書をでランキング.
    1. はクエリについてであるので,全ての文書に対して値は同じ → 無視.
    2. は全ての文書で等しいと見なすことが出来る → 無視.
    3. は文書dが与えられたときのクエリqが生成される確率(条件付き確率).
  3. ランキングはの値によるため,それを求めたい.

の求め方

  1. とも書ける.
    • sは"distinct term t in q"を表す.
    • 但し,はクエリqにおける単語tの出現頻度を表す.
  2. として計算される.
    1. もしあるひとつでもとなるtが存在すれば,となってしまう!
    2. スムージングする.
    3. と置き換える.
      • 但し,は文書集合をモデル化したもの.
      • 多項単純ベイズモデルと言われる.

  • モデル化したもの:ユーザーがは思い浮かべている文書があり,それからクエリを生成する.
  • この方程式は,その文書の確率を示している.

言語モデルベクトル空間モデルとの比較

  1. 結構似ている部分が多い
    1. なんかはどちらでも使われている.
    2. 確率,というものは長さの正規化に近い.
    3. に影響を与える.
      • 文書集合内では珍しい単語がある文書で頻出ならば,その単語はランキングに重要である.
  2. 違うところは
    1. 言語モデルは確率論に従う,ということ.
    2. ベクトル空間モデルでは類似性などに従う.
    3. か.
以上.

texの書き方

普通に書いたらすごく汚くなってしまうので
http://d.hatena.ne.jp/repose/20110506/1304612242
を参照して画像として数式を貼り付けることにしました.