Similarity functions in Lucene 4.0

  • 5,117 views
Uploaded on

 

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
5,117
On Slideshare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
27
Comments
0
Likes
7

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Lucene 4.0 のスコア計算 関口宏司@ロンウイット
  • 2. 情報検索のモデル   ブーリアンモデル  ベクトル空間モデル  確率モデル ← Lucene 4.0 で追加   BM25Similarity   LMSimilarity   DFRSimilarity 2
  • 3. ブーリアンモデルと集合論 V = {k a ,k b ,kc } q = ka ∧ (k b ∨ ¬k c ) qDNF = (1,1,1) ∨ (1,1,0) ∨ (1,0,0) DNF: Disjunctive Normal Form ka kb (1,0,0) (1,1,0) € (1,1,1) 3 kc
  • 4. ベクトル空間モデル   基本はコサイン類似度  単語の重みにtf(d,t)idf(t)を用いる  文書の長さで自動重み付け  Luceneは上記のすべてを実行(w/ ブーリアンモデ ル)  詳しくはロンウイットのホワイトペーパーVol.8   http://www.rondhuit.com/download.html#whitepaper 4
  • 5. 確率モデルの優位性   ブーリアンモデルやベクトル空間モデルは、ヒットし た文書がユーザの情報ニーズをどの程度満たしている のかあいまい  確率論はその不確実性の下で原則を提供可能 5
  • 6. 確率論   A : 事象、 A: 余事象  P(A) : Aの起こりやすさ。0 ≦ P(A) ≦ 1  P(B|A) : Aが起こったときのBが起こる確率(条件付 €き確率) P(A ∩ B)   P(B | A) = P(A)  事象Aと事象Bが互いに独立であるとき(n個でも同 じ) P(A ∩ B) = P(A)P(B) € 6 €
  • 7. ベイズの定理 P(A)P(B | A) P(A | B) = P(B)  結果Bが起こったときに、原因がAである確率€  P(A) : 事前確率   P(A|B) : 事後確率 7
  • 8. オッズ P(A) P(A)O(A) = = P(A) 1 − P(A) 8
  • 9. Probability Ranking Principle   P(R=1|d,q) : 文書dがクエリqに関連する(R=1)確率  文書をP(R=1|d,q)にしたがってランキング  PRPは、P(R=1|d,q) > P(R=0|d,q) となる文書を返せ ば"1/0 loss"(関連しない文書を返したり、関連する 文書を返せなかったりするリスク)を最小化するのに 最適 9
  • 10. Binary Independence Model   PRPで使われてきたモデル   P(R|d,q)を実用的に見積もれる簡単な仮定をおく xt = 1   文書dをタームtが出現する( )か出現しない ( )かのベクトルで表す : xt = 0 x = (x1,..., x M ) €€   同様にクエリqに対して : q = (q1,...,qM ) € 10
  • 11. BIM   "binary"   文書dもクエリqも、タームtが出現する/しないという 2値のベクトルで表す  "independence"   各タームが独立に出現する 11
  • 12. P(x | R = 1,q)P(R = 1 | q) P(R = 1 | x,q) = P(x | q) P(x | R = 0,q)P(R = 0 | q) P(R = 0 | x,q) =€ P(x | q) 12 €
  • 13. 前ページの2つの式の分母が同じことを利用してオッズを計算する。 P(R = 1 | x,q) P(R = 1 | q) P(x | R = 1,q) O(R | x,q) = = ⋅ P(R = 0 | x,q) P(R = 0 | q) P(x | R = 0,q) 定数 (ランキングには無関係) € 13
  • 14. Naïve Bayes conditional independence assumption 文書中のタームの有無は、与えられたクエリ中の他のタームの有無とは独立 M P(x | R = 1,q) P(x t | R = 1,q) =∏ P(x | R = 0,q) t =1 P(x t | R = 0,q) 14 €
  • 15. M P(x t | R = 1,q) O(R | x,q) = O(R | q)⋅ ∏ t =1 P(x t | R = 0,q) P(x t = 1 | R = 1,q) P(x t = 0 | R = 1,q) = O(R | q)⋅ ∏ P(x = 1 | R = 0,q) ⋅ ∏ t:x t =1 t t:x t =0 P(x t = 0 | R = 0,q) pt 1 − pt = O(R | q)⋅ ∏u ⋅ ∏ pt = P(x t = 1 | R = 1,q) とおいた t:x t =1 t t:x t =0 1 − ut ut = P(x t = 1 | R = 0,q) pt 1 − pt = O(R | q)⋅ ∏ u ⋅ ∏ qt = 0 のとき t = ut と仮定 p t:x t =q t =1 t t:x t =0,q t =1 1 − ut € pt (1 − ut ) 1 − pt = O(R | q)⋅ ∏ u (1 − p ) ⋅ ∏ t:x t =q t =1 t t t:q t € 1 − ut =1 € 定数 (ランキングには無関係) 15 €
  • 16. 16
  • 17. Retrieval Status Value pt (1 − ut ) pt (1 − ut ) RSVd = log ∏ = ∑ log t:x t =q t =1 ut (1 − pt ) t:x t =q t =1 ut (1 − pt )€ 17
  • 18. pt (1 − ut ) pt (1 − ut ) c t = log = log + log ut (1 − pt ) (1 − pt ) ut RSVd = ∑c t x t =q t =1€ 18
  • 19. 確率の推定(理論) pt = s /Sut = (df t − s) /(N − S) s /(S − s)c t = K(N,df t ,S,s) = log (df t − s) /((N − df t ) − (S − s)) 1 1 (s + ) /(S − s + )ˆc t = K(N,df t ,S,s) = log 2 2 1 1 (df t 19 s + ) /(N − df t − S + s + ) − 2 2
  • 20. 確率の推定(実践) 文書コレクション中でクエリに関連する文書は数が少ないと仮定できるので df t ut = とおける。 N (1 − ut ) (N − df t ) N log = log ≈ log € ut df t df t idfと同じ! Pt側は複雑なので省略。参考文献[2]の11章を参照のこと。 € 20
  • 21. BM25   クラシックな確率モデルに、ベクトルモデルでの知見 を加味してBM25が誕生した   idf   tf   document length normalization  BM25を最初に実装した検索システムがOkapi N (k1 +1)tf td RSVd = ∑ log( )⋅ t∈q df t k {(1 − b) + b Ld } + tf 1 td 21 Lave
  • 22. Language Model   自然言語の文中で、次の単語の起こりやすさを考慮で き、その確率を与えるモデル。   (確率的)言語モデルをIRに適用 クエリを観測す 文書を観測する可能性 る確率を予測す を予測するのにクエリ るために文書テ を用いる キストを用いる 従来のモデル 言語モデル P(R=1|d,q) P(q|Md) 22
  • 23. Divergence From Randomness   確率過程によって生成された単語分布と、実際の分布 の相違度/逸脱度(divergence)を計測することによ り、単語の重みを計算  文書dj中のタームkiの重みwi,jとして、ランキングR, ク エリq中のタームkiの回数fi,q w i, j = (−log P(k i | C)) × (1 − P(ki | d j )) 情報量 R(d j ,q) = ∑f i,q × w i, j ki ∈q 23
  • 24. 参考文献 1.  Modern Information Retrieval: The Concepts and Technology behind Search (2nd Edition), Ricardo Baeza- Yates, Berthier Ribeiro-Neto, Addison-Wesley Professional, 978-03214169192.  Introduction to Information Retrieval, http:// nlp.stanford.edu/IR-book/information-retrieval- book.html3.  言語と計算(4) 確率的言語モデル 東京大学出版会 北 研二, 辻井 潤一 24