Download - Similarity functions in Lucene 4.0
Lucene 4.0 のスコア計算 関口宏司@ロンウイット
情報検索のモデル
ブーリアンモデル
ベクトル空間モデル
確率モデル ← Lucene 4.0 で追加
BM25Similarity
LMSimilarity
DFRSimilarity
2
ブーリアンモデルと集合論
€
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
ベクトル空間モデル
基本はコサイン類似度
単語の重みにtf(d,t)idf(t)を用いる
文書の長さで自動重み付け
Luceneは上記のすべてを実行(w/ ブーリアンモデル)
詳しくはロンウイットのホワイトペーパーVol.8
http://www.rondhuit.com/download.html#whitepaper
4
確率モデルの優位性
ブーリアンモデルやベクトル空間モデルは、ヒットした文書がユーザの情報ニーズをどの程度満たしているのかあいまい
確率論はその不確実性の下で原則を提供可能
5
確率論
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)
ベイズの定理
結果Bが起こったときに、原因がAである確率
P(A) : 事前確率
P(A|B) : 事後確率 €
P(A |B) =P(A)P(B | A)
P(B)
7
オッズ
€
O(A) =P(A)P(A)
=P(A)
1− P(A)
8
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
Binary Independence Model
PRPで使われてきたモデル
P(R|d,q)を実用的に見積もれる簡単な仮定をおく
文書dをタームtが出現する( )か出現しない( )かのベクトルで表す :
同様にクエリqに対して :
€
x = (x1,...,xM )€
xt =1
€
xt = 0
€
q = (q1,...,qM )10
BIM
"binary"
文書dもクエリqも、タームtが出現する/しないという2値のベクトルで表す
"independence"
各タームが独立に出現する
11
€
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
€
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つの式の分母が同じことを利用してオッズを計算する。
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
€
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
16
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
€
ct = log pt (1− ut )ut (1− pt )
= log pt(1− pt )
+ log (1− ut )ut
RSVd = ctxt =qt =1∑
18
確率の推定(理論)
€
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
確率の推定(実践)
€
log (1− ut )ut
= log (N − dft )dft
≈ log Ndft
20
Pt側は複雑なので省略。参考文献[2]の11章を参照のこと。
文書コレクション中でクエリに関連する文書は数が少ないと仮定できるので
とおける。
€
ut =dftN
idfと同じ!
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
Language Model
自然言語の文中で、次の単語の起こりやすさを考慮でき、その確率を与えるモデル。
(確率的)言語モデルをIRに適用
文書を観測する可能性を予測するのにクエリ
を用いる
クエリを観測する確率を予測するために文書テキストを用いる
従来のモデル P(R=1|d,q)
言語モデル P(q|Md)
22
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∑
情報量
参考文献
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