similarity functions in lucene 4.0

24
Lucene 4.0 のスコア計算 関口宏司@ロンウイット

Upload: koji-sekiguchi

Post on 26-Jun-2015

6.799 views

Category:

Technology


1 download

TRANSCRIPT

Page 1: Similarity functions in Lucene 4.0

Lucene 4.0 のスコア計算 関口宏司@ロンウイット

Page 2: Similarity functions in Lucene 4.0

情報検索のモデル

  ブーリアンモデル

  ベクトル空間モデル

  確率モデル ← Lucene 4.0 で追加

  BM25Similarity

  LMSimilarity

  DFRSimilarity

2

Page 3: Similarity functions in Lucene 4.0

ブーリアンモデルと集合論

V = {ka,kb ,kc}q = ka ∧ (kb ∨¬kc )qDNF = (1,1,1)∨ (1,1,0)∨ (1,0,0)

kb ka

kc

(1,1,1)

(1,1,0) (1,0,0)

DNF: Disjunctive Normal Form

3

Page 4: Similarity functions in Lucene 4.0

ベクトル空間モデル

  基本はコサイン類似度

  単語の重みにtf(d,t)idf(t)を用いる

  文書の長さで自動重み付け

  Luceneは上記のすべてを実行(w/ ブーリアンモデル)

  詳しくはロンウイットのホワイトペーパーVol.8

  http://www.rondhuit.com/download.html#whitepaper

4

Page 5: Similarity functions in Lucene 4.0

確率モデルの優位性

  ブーリアンモデルやベクトル空間モデルは、ヒットした文書がユーザの情報ニーズをどの程度満たしているのかあいまい

  確率論はその不確実性の下で原則を提供可能

5

Page 6: Similarity functions in Lucene 4.0

確率論

  A : 事象、 : 余事象

  P(A) : Aの起こりやすさ。0 ≦ P(A) ≦ 1

  P(B|A) : Aが起こったときのBが起こる確率(条件付き確率)

  事象Aと事象Bが互いに独立であるとき(n個でも同じ)

A

P(B | A) =P(A∩ B)P(A)

6

P(A∩ B) = P(A)P(B)

Page 7: Similarity functions in Lucene 4.0

ベイズの定理

  結果Bが起こったときに、原因がAである確率

  P(A) : 事前確率

  P(A|B) : 事後確率 €

P(A |B) =P(A)P(B | A)

P(B)

7

Page 8: Similarity functions in Lucene 4.0

オッズ

O(A) =P(A)P(A)

=P(A)

1− P(A)

8

Page 9: Similarity functions in Lucene 4.0

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

Page 10: Similarity functions in Lucene 4.0

Binary Independence Model

  PRPで使われてきたモデル

  P(R|d,q)を実用的に見積もれる簡単な仮定をおく

  文書dをタームtが出現する( )か出現しない( )かのベクトルで表す :

  同様にクエリqに対して :

x = (x1,...,xM )€

xt =1

xt = 0

q = (q1,...,qM )10

Page 11: Similarity functions in Lucene 4.0

BIM

  "binary"

  文書dもクエリqも、タームtが出現する/しないという2値のベクトルで表す

  "independence"

  各タームが独立に出現する

11

Page 12: Similarity functions in Lucene 4.0

P(R =1 | x,q) =P(x |R =1,q)P(R =1 |q)

P(x |q)

P(R = 0 | x,q) =P(x |R = 0,q)P(R = 0 |q)

P(x |q)

12

Page 13: Similarity functions in Lucene 4.0

O(R | x,q) =P(R =1 | x,q)P(R = 0 | x,q)

=P(R =1 |q)P(R = 0 |q)

⋅P(x |R =1,q)P(x |R = 0,q)

定数 (ランキングには無関係)

13

前ページの2つの式の分母が同じことを利用してオッズを計算する。

Page 14: Similarity functions in Lucene 4.0

Naïve Bayes conditional independence assumption

P(x |R =1,q)P(x |R = 0,q)

=P(xt |R =1,q)P(xt |R = 0,q)t=1

M

文書中のタームの有無は、与えられたクエリ中の他のタームの有無とは独立

14

Page 15: Similarity functions in Lucene 4.0

O(R | x,q) =O(R |q)⋅ P(xt |R =1,q)P(xt |R = 0,q)t=1

M

=O(R |q)⋅ P(xt =1 |R =1,q)P(xt =1 |R = 0,q)

⋅P(xt = 0 |R =1,q)P(xt = 0 |R = 0,q)t:xt =0

∏t:xt =1∏

=O(R |q)⋅ ptut⋅

1− pt1− utt:xt =0

∏t:xt =1∏

=O(R |q)⋅ ptut⋅

1− pt1− utt:xt =0,qt =1

∏t:xt =qt =1∏

=O(R |q)⋅ pt (1− ut )ut (1− pt )

⋅1− pt1− utt:qt =1

∏t:xt =qt =1∏

pt = P(xt =1 |R =1,q)

ut = P(xt =1 |R = 0,q)とおいた

qt = 0 のとき

pt = utと仮定

定数 (ランキングには無関係)

15

Page 16: Similarity functions in Lucene 4.0

16

Page 17: Similarity functions in Lucene 4.0

Retrieval Status Value

RSVd = log pt (1− ut )ut (1− pt )t:xt =qt =1

∏ = logt:xt =qt =1∑ pt (1− ut )

ut (1− pt )

17

Page 18: Similarity functions in Lucene 4.0

ct = log pt (1− ut )ut (1− pt )

= log pt(1− pt )

+ log (1− ut )ut

RSVd = ctxt =qt =1∑

18

Page 19: Similarity functions in Lucene 4.0

確率の推定(理論)

pt = s /Sut = (dft − s) /(N − S)

ct = K(N,dft ,S,s) = log s /(S − s)(dft − s) /((N − dft ) − (S − s))

ˆ c t = K(N,dft ,S,s) = log(s +

12

) /(S − s +12

)

(dft − s +12

) /(N − dft − S + s +12

)19

Page 20: Similarity functions in Lucene 4.0

確率の推定(実践)

log (1− ut )ut

= log (N − dft )dft

≈ log Ndft

20

Pt側は複雑なので省略。参考文献[2]の11章を参照のこと。

文書コレクション中でクエリに関連する文書は数が少ないと仮定できるので

とおける。

ut =dftN

idfと同じ!

Page 21: Similarity functions in Lucene 4.0

BM25

  クラシックな確率モデルに、ベクトルモデルでの知見を加味してBM25が誕生した

  idf

  tf

  document length normalization

  BM25を最初に実装した検索システムがOkapi

RSVd = log( Ndft)

t∈q∑ ⋅

(k1 +1)tf tdk1{(1− b) + b Ld

Lave}+ tf td

21

Page 22: Similarity functions in Lucene 4.0

Language Model

  自然言語の文中で、次の単語の起こりやすさを考慮でき、その確率を与えるモデル。

  (確率的)言語モデルをIRに適用

文書を観測する可能性を予測するのにクエリ

を用いる

クエリを観測する確率を予測するために文書テキストを用いる

従来のモデル P(R=1|d,q)

言語モデル P(q|Md)

22

Page 23: Similarity functions in Lucene 4.0

Divergence From Randomness

  確率過程によって生成された単語分布と、実際の分布の相違度/逸脱度(divergence)を計測することにより、単語の重みを計算

  文書dj中のタームkiの重みwi,jとして、ランキングR, クエリq中のタームkiの回数fi,q

23

wi, j = (−logP(ki |C)) × (1− P(ki | d j ))

R(d j ,q) = f i,q × wi, jki ∈q∑

情報量

Page 24: Similarity functions in Lucene 4.0

参考文献

1.  Modern Information Retrieval: The Concepts and Technology behind Search (2nd Edition), Ricardo Baeza-Yates, Berthier Ribeiro-Neto, Addison-Wesley Professional, 978-0321416919

2.  Introduction to Information Retrieval, http://nlp.stanford.edu/IR-book/information-retrieval-book.html

3.  言語と計算(4) 確率的言語モデル 東京大学出版会 北 研二, 辻井 潤一

24