SlideShare uma empresa Scribd logo
1 de 24
Baixar para ler offline
Lucene 4.0 のスコア計算	
 
     関口宏司@ロンウイット
情報検索のモデル	
 
  ブーリアンモデル

  ベクトル空間モデル

  確率モデル ← Lucene 4.0 で追加
    BM25Similarity
    LMSimilarity
    DFRSimilarity	
 



                        2
ブーリアンモデルと集合論	
 
    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
ベクトル空間モデル	
 
  基本はコサイン類似度

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

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

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

  詳しくはロンウイットのホワイトペーパーVol.8
    http://www.rondhuit.com/download.html#whitepaper	
 

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

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




               5
確率論	
 
  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	
 


 €
ベイズの定理	
 

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

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

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



                       7
オッズ	
 



       P(A)   P(A)
O(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)を実用的に見積もれる簡単な仮定をおく
                                 xt = 1
    文書dをタームtが出現する(	
 	
 	
 	
 	
 	
 )か出現しない
     (	
 	
 	
 	
 	
 	
 )かのベクトルで表す :
        xt = 0

                x = (x1,..., x M )
                    €
€   同様にクエリqに対して : 	
 

               q = (q1,...,qM )
      €                   10
BIM	
 
  "binary"
     文書dもクエリqも、タームtが出現する/しないという
      2値のベクトルで表す
  "independence"
     各タームが独立に出現する	
 




                      11
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	
 


€
前ページの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
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	
 
€
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
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
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
確率の推定(理論)	
 


pt = s /S
ut = (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
確率の推定(実践)	
 

        文書コレクション中でクエリに関連する文書は数が少ないと仮定できるので
               df t
          ut =        とおける。	
 
               N

              (1 − ut )       (N − df t )       N
          log           = log             ≈ log
    €
                 ut              df t           df t
                                            idfと同じ!


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



€                                20
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
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

  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
参考文献	
 
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

Mais conteúdo relacionado

Mais procurados

PRML 1.6 情報理論
PRML 1.6 情報理論PRML 1.6 情報理論
PRML 1.6 情報理論sleepy_yoshi
 
整数格子点上の劣モジュラ被覆に対する高速アルゴリズム
整数格子点上の劣モジュラ被覆に対する高速アルゴリズム整数格子点上の劣モジュラ被覆に対する高速アルゴリズム
整数格子点上の劣モジュラ被覆に対する高速アルゴリズムTasuku Soma
 
文字列カーネルによる辞書なしツイート分類 〜文字列カーネル入門〜
文字列カーネルによる辞書なしツイート分類 〜文字列カーネル入門〜文字列カーネルによる辞書なしツイート分類 〜文字列カーネル入門〜
文字列カーネルによる辞書なしツイート分類 〜文字列カーネル入門〜Takeshi Arabiki
 
ウィナーフィルタと適応フィルタ
ウィナーフィルタと適応フィルタウィナーフィルタと適応フィルタ
ウィナーフィルタと適応フィルタToshihisa Tanaka
 
Crfと素性テンプレート
Crfと素性テンプレートCrfと素性テンプレート
Crfと素性テンプレートKei Uchiumi
 
topology of musical data
topology of musical datatopology of musical data
topology of musical dataTatsuki SHIMIZU
 
線形カルマンフィルタの導出
線形カルマンフィルタの導出線形カルマンフィルタの導出
線形カルマンフィルタの導出Fumiya Watanabe
 
公開鍵暗号2: NP困難性
公開鍵暗号2: NP困難性公開鍵暗号2: NP困難性
公開鍵暗号2: NP困難性Joe Suzuki
 
8.4 グラフィカルモデルによる推論
8.4 グラフィカルモデルによる推論8.4 グラフィカルモデルによる推論
8.4 グラフィカルモデルによる推論sleepy_yoshi
 
AtCoder Regular Contest 030 解説
AtCoder Regular Contest 030 解説AtCoder Regular Contest 030 解説
AtCoder Regular Contest 030 解説AtCoder Inc.
 

Mais procurados (18)

PRML 1.6 情報理論
PRML 1.6 情報理論PRML 1.6 情報理論
PRML 1.6 情報理論
 
サンプリング定理
サンプリング定理サンプリング定理
サンプリング定理
 
整数格子点上の劣モジュラ被覆に対する高速アルゴリズム
整数格子点上の劣モジュラ被覆に対する高速アルゴリズム整数格子点上の劣モジュラ被覆に対する高速アルゴリズム
整数格子点上の劣モジュラ被覆に対する高速アルゴリズム
 
文字列カーネルによる辞書なしツイート分類 〜文字列カーネル入門〜
文字列カーネルによる辞書なしツイート分類 〜文字列カーネル入門〜文字列カーネルによる辞書なしツイート分類 〜文字列カーネル入門〜
文字列カーネルによる辞書なしツイート分類 〜文字列カーネル入門〜
 
ウィナーフィルタと適応フィルタ
ウィナーフィルタと適応フィルタウィナーフィルタと適応フィルタ
ウィナーフィルタと適応フィルタ
 
Crfと素性テンプレート
Crfと素性テンプレートCrfと素性テンプレート
Crfと素性テンプレート
 
Prml 4.3.6
Prml 4.3.6Prml 4.3.6
Prml 4.3.6
 
topology of musical data
topology of musical datatopology of musical data
topology of musical data
 
ロマ数16 simizut
ロマ数16 simizutロマ数16 simizut
ロマ数16 simizut
 
動的計画法
動的計画法動的計画法
動的計画法
 
線形カルマンフィルタの導出
線形カルマンフィルタの導出線形カルマンフィルタの導出
線形カルマンフィルタの導出
 
yyoshida thesis
yyoshida thesisyyoshida thesis
yyoshida thesis
 
Chainerで流体計算
Chainerで流体計算Chainerで流体計算
Chainerで流体計算
 
公開鍵暗号2: NP困難性
公開鍵暗号2: NP困難性公開鍵暗号2: NP困難性
公開鍵暗号2: NP困難性
 
8.4 グラフィカルモデルによる推論
8.4 グラフィカルモデルによる推論8.4 グラフィカルモデルによる推論
8.4 グラフィカルモデルによる推論
 
AtCoder Regular Contest 030 解説
AtCoder Regular Contest 030 解説AtCoder Regular Contest 030 解説
AtCoder Regular Contest 030 解説
 
2013 03 25
2013 03 252013 03 25
2013 03 25
 
π計算
π計算π計算
π計算
 

Destaque

OpenNLP - MEM and Perceptron
OpenNLP - MEM and PerceptronOpenNLP - MEM and Perceptron
OpenNLP - MEM and PerceptronKoji Sekiguchi
 
Research on Recommender Systems: Beyond Ratings and Lists
Research on Recommender Systems: Beyond Ratings and ListsResearch on Recommender Systems: Beyond Ratings and Lists
Research on Recommender Systems: Beyond Ratings and ListsDenis Parra Santander
 
LUCENE-5252 NGramSynonymTokenizer
LUCENE-5252 NGramSynonymTokenizerLUCENE-5252 NGramSynonymTokenizer
LUCENE-5252 NGramSynonymTokenizerKoji Sekiguchi
 
Solr AutoComplete and Did You Mean?
Solr AutoComplete and Did You Mean?Solr AutoComplete and Did You Mean?
Solr AutoComplete and Did You Mean?Minoru Osuka
 
自然言語処理における機械学習による曖昧性解消入門
自然言語処理における機械学習による曖昧性解消入門自然言語処理における機械学習による曖昧性解消入門
自然言語処理における機械学習による曖昧性解消入門Koji Sekiguchi
 
技術勉強会(Solr入門編)
技術勉強会(Solr入門編)技術勉強会(Solr入門編)
技術勉強会(Solr入門編)Atsushi Takayasu
 
トピックモデルの評価指標 Perplexity とは何なのか?
トピックモデルの評価指標 Perplexity とは何なのか?トピックモデルの評価指標 Perplexity とは何なのか?
トピックモデルの評価指標 Perplexity とは何なのか?hoxo_m
 
はじめての検索エンジン&Solr 第13回Solr勉強会
はじめての検索エンジン&Solr 第13回Solr勉強会はじめての検索エンジン&Solr 第13回Solr勉強会
はじめての検索エンジン&Solr 第13回Solr勉強会Noritsugu Suzuki
 

Destaque (11)

OpenNLP - MEM and Perceptron
OpenNLP - MEM and PerceptronOpenNLP - MEM and Perceptron
OpenNLP - MEM and Perceptron
 
Lu solr32 34-20110912
Lu solr32 34-20110912Lu solr32 34-20110912
Lu solr32 34-20110912
 
Research on Recommender Systems: Beyond Ratings and Lists
Research on Recommender Systems: Beyond Ratings and ListsResearch on Recommender Systems: Beyond Ratings and Lists
Research on Recommender Systems: Beyond Ratings and Lists
 
LUCENE-5252 NGramSynonymTokenizer
LUCENE-5252 NGramSynonymTokenizerLUCENE-5252 NGramSynonymTokenizer
LUCENE-5252 NGramSynonymTokenizer
 
Solr AutoComplete and Did You Mean?
Solr AutoComplete and Did You Mean?Solr AutoComplete and Did You Mean?
Solr AutoComplete and Did You Mean?
 
HMM viterbi
HMM viterbiHMM viterbi
HMM viterbi
 
Apache Solr 検索エンジン入門
Apache Solr 検索エンジン入門Apache Solr 検索エンジン入門
Apache Solr 検索エンジン入門
 
自然言語処理における機械学習による曖昧性解消入門
自然言語処理における機械学習による曖昧性解消入門自然言語処理における機械学習による曖昧性解消入門
自然言語処理における機械学習による曖昧性解消入門
 
技術勉強会(Solr入門編)
技術勉強会(Solr入門編)技術勉強会(Solr入門編)
技術勉強会(Solr入門編)
 
トピックモデルの評価指標 Perplexity とは何なのか?
トピックモデルの評価指標 Perplexity とは何なのか?トピックモデルの評価指標 Perplexity とは何なのか?
トピックモデルの評価指標 Perplexity とは何なのか?
 
はじめての検索エンジン&Solr 第13回Solr勉強会
はじめての検索エンジン&Solr 第13回Solr勉強会はじめての検索エンジン&Solr 第13回Solr勉強会
はじめての検索エンジン&Solr 第13回Solr勉強会
 

Semelhante a Similarity functions in Lucene 4.0

情報検索の基礎(11章)
情報検索の基礎(11章)情報検索の基礎(11章)
情報検索の基礎(11章)Katsuki Tanaka
 
Rate-Distortion Function for Gamma Sources under Absolute-Log Distortion
Rate-Distortion Function for Gamma Sources under Absolute-Log DistortionRate-Distortion Function for Gamma Sources under Absolute-Log Distortion
Rate-Distortion Function for Gamma Sources under Absolute-Log Distortion奈良先端大 情報科学研究科
 
第8章 ガウス過程回帰による異常検知
第8章 ガウス過程回帰による異常検知第8章 ガウス過程回帰による異常検知
第8章 ガウス過程回帰による異常検知Chika Inoshita
 
050 確率と確率分布
050 確率と確率分布050 確率と確率分布
050 確率と確率分布t2tarumi
 
卒業論文発表スライド 分割統治法の拡張
卒業論文発表スライド 分割統治法の拡張卒業論文発表スライド 分割統治法の拡張
卒業論文発表スライド 分割統治法の拡張masakazuyamanaka
 
パターン認識第9章 学習ベクトル量子化
パターン認識第9章 学習ベクトル量子化パターン認識第9章 学習ベクトル量子化
パターン認識第9章 学習ベクトル量子化Miyoshi Yuya
 
Deep learning _linear_algebra___probablity___information
Deep learning _linear_algebra___probablity___informationDeep learning _linear_algebra___probablity___information
Deep learning _linear_algebra___probablity___informationtakutori
 
PRML 6.1章 カーネル法と双対表現
PRML 6.1章 カーネル法と双対表現PRML 6.1章 カーネル法と双対表現
PRML 6.1章 カーネル法と双対表現hagino 3000
 
PRML ベイズロジスティック回帰
PRML ベイズロジスティック回帰PRML ベイズロジスティック回帰
PRML ベイズロジスティック回帰hagino 3000
 
パターン認識 05 ロジスティック回帰
パターン認識 05 ロジスティック回帰パターン認識 05 ロジスティック回帰
パターン認識 05 ロジスティック回帰sleipnir002
 
パターン認識と機械学習6章(カーネル法)
パターン認識と機械学習6章(カーネル法)パターン認識と機械学習6章(カーネル法)
パターン認識と機械学習6章(カーネル法)Yukara Ikemiya
 
プログラミング言語 Julia の紹介
プログラミング言語 Julia の紹介プログラミング言語 Julia の紹介
プログラミング言語 Julia の紹介Kentaro Iizuka
 
「トピックモデルによる統計的潜在意味解析」読書会 2章前半
「トピックモデルによる統計的潜在意味解析」読書会 2章前半「トピックモデルによる統計的潜在意味解析」読書会 2章前半
「トピックモデルによる統計的潜在意味解析」読書会 2章前半koba cky
 
複雑ネットワーク 第4章 古典的なグラフ
複雑ネットワーク 第4章 古典的なグラフ複雑ネットワーク 第4章 古典的なグラフ
複雑ネットワーク 第4章 古典的なグラフShintaro Takemura
 
Nonparametric Factor Analysis with Beta Process Priors の式解説
Nonparametric Factor Analysis with Beta Process Priors の式解説Nonparametric Factor Analysis with Beta Process Priors の式解説
Nonparametric Factor Analysis with Beta Process Priors の式解説Tomonari Masada
 
量子アニーリングを用いたクラスタ分析
量子アニーリングを用いたクラスタ分析量子アニーリングを用いたクラスタ分析
量子アニーリングを用いたクラスタ分析Shu Tanaka
 
070 統計的推測 母集団と推定
070 統計的推測 母集団と推定070 統計的推測 母集団と推定
070 統計的推測 母集団と推定t2tarumi
 

Semelhante a Similarity functions in Lucene 4.0 (20)

情報検索の基礎(11章)
情報検索の基礎(11章)情報検索の基礎(11章)
情報検索の基礎(11章)
 
Rate-Distortion Function for Gamma Sources under Absolute-Log Distortion
Rate-Distortion Function for Gamma Sources under Absolute-Log DistortionRate-Distortion Function for Gamma Sources under Absolute-Log Distortion
Rate-Distortion Function for Gamma Sources under Absolute-Log Distortion
 
第8章 ガウス過程回帰による異常検知
第8章 ガウス過程回帰による異常検知第8章 ガウス過程回帰による異常検知
第8章 ガウス過程回帰による異常検知
 
050 確率と確率分布
050 確率と確率分布050 確率と確率分布
050 確率と確率分布
 
卒業論文発表スライド 分割統治法の拡張
卒業論文発表スライド 分割統治法の拡張卒業論文発表スライド 分割統治法の拡張
卒業論文発表スライド 分割統治法の拡張
 
パターン認識第9章 学習ベクトル量子化
パターン認識第9章 学習ベクトル量子化パターン認識第9章 学習ベクトル量子化
パターン認識第9章 学習ベクトル量子化
 
Deep learning _linear_algebra___probablity___information
Deep learning _linear_algebra___probablity___informationDeep learning _linear_algebra___probablity___information
Deep learning _linear_algebra___probablity___information
 
ndwave7.pdf
ndwave7.pdfndwave7.pdf
ndwave7.pdf
 
PRML 6.1章 カーネル法と双対表現
PRML 6.1章 カーネル法と双対表現PRML 6.1章 カーネル法と双対表現
PRML 6.1章 カーネル法と双対表現
 
linhyp.pdf
linhyp.pdflinhyp.pdf
linhyp.pdf
 
PRML ベイズロジスティック回帰
PRML ベイズロジスティック回帰PRML ベイズロジスティック回帰
PRML ベイズロジスティック回帰
 
パターン認識 05 ロジスティック回帰
パターン認識 05 ロジスティック回帰パターン認識 05 ロジスティック回帰
パターン認識 05 ロジスティック回帰
 
パターン認識と機械学習6章(カーネル法)
パターン認識と機械学習6章(カーネル法)パターン認識と機械学習6章(カーネル法)
パターン認識と機械学習6章(カーネル法)
 
演習発表 Sari v.1.2
演習発表 Sari v.1.2演習発表 Sari v.1.2
演習発表 Sari v.1.2
 
プログラミング言語 Julia の紹介
プログラミング言語 Julia の紹介プログラミング言語 Julia の紹介
プログラミング言語 Julia の紹介
 
「トピックモデルによる統計的潜在意味解析」読書会 2章前半
「トピックモデルによる統計的潜在意味解析」読書会 2章前半「トピックモデルによる統計的潜在意味解析」読書会 2章前半
「トピックモデルによる統計的潜在意味解析」読書会 2章前半
 
複雑ネットワーク 第4章 古典的なグラフ
複雑ネットワーク 第4章 古典的なグラフ複雑ネットワーク 第4章 古典的なグラフ
複雑ネットワーク 第4章 古典的なグラフ
 
Nonparametric Factor Analysis with Beta Process Priors の式解説
Nonparametric Factor Analysis with Beta Process Priors の式解説Nonparametric Factor Analysis with Beta Process Priors の式解説
Nonparametric Factor Analysis with Beta Process Priors の式解説
 
量子アニーリングを用いたクラスタ分析
量子アニーリングを用いたクラスタ分析量子アニーリングを用いたクラスタ分析
量子アニーリングを用いたクラスタ分析
 
070 統計的推測 母集団と推定
070 統計的推測 母集団と推定070 統計的推測 母集団と推定
070 統計的推測 母集団と推定
 

Mais de Koji Sekiguchi

20221209-ApacheSolrによるはじめてのセマンティックサーチ.pdf
20221209-ApacheSolrによるはじめてのセマンティックサーチ.pdf20221209-ApacheSolrによるはじめてのセマンティックサーチ.pdf
20221209-ApacheSolrによるはじめてのセマンティックサーチ.pdfKoji Sekiguchi
 
Solr から使う OpenNLP の日本語固有表現抽出
Solr から使う OpenNLP の日本語固有表現抽出Solr から使う OpenNLP の日本語固有表現抽出
Solr から使う OpenNLP の日本語固有表現抽出Koji Sekiguchi
 
Learning-to-Rank meetup Vol. 1
Learning-to-Rank meetup Vol. 1Learning-to-Rank meetup Vol. 1
Learning-to-Rank meetup Vol. 1Koji Sekiguchi
 
Lucene 6819-good-bye-index-time-boost
Lucene 6819-good-bye-index-time-boostLucene 6819-good-bye-index-time-boost
Lucene 6819-good-bye-index-time-boostKoji Sekiguchi
 
NLP4L - 情報検索における性能改善のためのコーパスの活用とランキング学習
NLP4L - 情報検索における性能改善のためのコーパスの活用とランキング学習NLP4L - 情報検索における性能改善のためのコーパスの活用とランキング学習
NLP4L - 情報検索における性能改善のためのコーパスの活用とランキング学習Koji Sekiguchi
 
An Introduction to NLP4L (Scala by the Bay / Big Data Scala 2015)
An Introduction to NLP4L (Scala by the Bay / Big Data Scala 2015)An Introduction to NLP4L (Scala by the Bay / Big Data Scala 2015)
An Introduction to NLP4L (Scala by the Bay / Big Data Scala 2015)Koji Sekiguchi
 
An Introduction to NLP4L
An Introduction to NLP4LAn Introduction to NLP4L
An Introduction to NLP4LKoji Sekiguchi
 
コーパス学習による Apache Solr の徹底活用
コーパス学習による Apache Solr の徹底活用コーパス学習による Apache Solr の徹底活用
コーパス学習による Apache Solr の徹底活用Koji Sekiguchi
 
情報検索の基礎からデータの徹底活用まで
情報検索の基礎からデータの徹底活用まで情報検索の基礎からデータの徹底活用まで
情報検索の基礎からデータの徹底活用までKoji Sekiguchi
 
情報検索におけるランキング計算の紹介
情報検索におけるランキング計算の紹介情報検索におけるランキング計算の紹介
情報検索におけるランキング計算の紹介Koji Sekiguchi
 
系列パターンマイニングを用いた単語パターン学習とWikipediaからの組織名抽出
系列パターンマイニングを用いた単語パターン学習とWikipediaからの組織名抽出系列パターンマイニングを用いた単語パターン学習とWikipediaからの組織名抽出
系列パターンマイニングを用いた単語パターン学習とWikipediaからの組織名抽出Koji Sekiguchi
 
Luceneインデックスの共起単語分析とSolrによる共起単語サジェスチョン
Luceneインデックスの共起単語分析とSolrによる共起単語サジェスチョンLuceneインデックスの共起単語分析とSolrによる共起単語サジェスチョン
Luceneインデックスの共起単語分析とSolrによる共起単語サジェスチョンKoji Sekiguchi
 
Lucene terms extraction
Lucene terms extractionLucene terms extraction
Lucene terms extractionKoji Sekiguchi
 
Visualize terms network in Lucene index
Visualize terms network in Lucene indexVisualize terms network in Lucene index
Visualize terms network in Lucene indexKoji Sekiguchi
 
WikipediaからのSolr用類義語辞書の自動生成
WikipediaからのSolr用類義語辞書の自動生成WikipediaからのSolr用類義語辞書の自動生成
WikipediaからのSolr用類義語辞書の自動生成Koji Sekiguchi
 
Pre rondhuit-naming-story
Pre rondhuit-naming-storyPre rondhuit-naming-story
Pre rondhuit-naming-storyKoji Sekiguchi
 

Mais de Koji Sekiguchi (20)

20221209-ApacheSolrによるはじめてのセマンティックサーチ.pdf
20221209-ApacheSolrによるはじめてのセマンティックサーチ.pdf20221209-ApacheSolrによるはじめてのセマンティックサーチ.pdf
20221209-ApacheSolrによるはじめてのセマンティックサーチ.pdf
 
Solr から使う OpenNLP の日本語固有表現抽出
Solr から使う OpenNLP の日本語固有表現抽出Solr から使う OpenNLP の日本語固有表現抽出
Solr から使う OpenNLP の日本語固有表現抽出
 
Learning-to-Rank meetup Vol. 1
Learning-to-Rank meetup Vol. 1Learning-to-Rank meetup Vol. 1
Learning-to-Rank meetup Vol. 1
 
Lucene 6819-good-bye-index-time-boost
Lucene 6819-good-bye-index-time-boostLucene 6819-good-bye-index-time-boost
Lucene 6819-good-bye-index-time-boost
 
NLP4L - 情報検索における性能改善のためのコーパスの活用とランキング学習
NLP4L - 情報検索における性能改善のためのコーパスの活用とランキング学習NLP4L - 情報検索における性能改善のためのコーパスの活用とランキング学習
NLP4L - 情報検索における性能改善のためのコーパスの活用とランキング学習
 
An Introduction to NLP4L (Scala by the Bay / Big Data Scala 2015)
An Introduction to NLP4L (Scala by the Bay / Big Data Scala 2015)An Introduction to NLP4L (Scala by the Bay / Big Data Scala 2015)
An Introduction to NLP4L (Scala by the Bay / Big Data Scala 2015)
 
An Introduction to NLP4L
An Introduction to NLP4LAn Introduction to NLP4L
An Introduction to NLP4L
 
Nlp4 l intro-20150513
Nlp4 l intro-20150513Nlp4 l intro-20150513
Nlp4 l intro-20150513
 
コーパス学習による Apache Solr の徹底活用
コーパス学習による Apache Solr の徹底活用コーパス学習による Apache Solr の徹底活用
コーパス学習による Apache Solr の徹底活用
 
情報検索の基礎からデータの徹底活用まで
情報検索の基礎からデータの徹底活用まで情報検索の基礎からデータの徹底活用まで
情報検索の基礎からデータの徹底活用まで
 
情報検索におけるランキング計算の紹介
情報検索におけるランキング計算の紹介情報検索におけるランキング計算の紹介
情報検索におけるランキング計算の紹介
 
系列パターンマイニングを用いた単語パターン学習とWikipediaからの組織名抽出
系列パターンマイニングを用いた単語パターン学習とWikipediaからの組織名抽出系列パターンマイニングを用いた単語パターン学習とWikipediaからの組織名抽出
系列パターンマイニングを用いた単語パターン学習とWikipediaからの組織名抽出
 
Luceneインデックスの共起単語分析とSolrによる共起単語サジェスチョン
Luceneインデックスの共起単語分析とSolrによる共起単語サジェスチョンLuceneインデックスの共起単語分析とSolrによる共起単語サジェスチョン
Luceneインデックスの共起単語分析とSolrによる共起単語サジェスチョン
 
Html noise reduction
Html noise reductionHtml noise reduction
Html noise reduction
 
Lucene terms extraction
Lucene terms extractionLucene terms extraction
Lucene terms extraction
 
Visualize terms network in Lucene index
Visualize terms network in Lucene indexVisualize terms network in Lucene index
Visualize terms network in Lucene index
 
WikipediaからのSolr用類義語辞書の自動生成
WikipediaからのSolr用類義語辞書の自動生成WikipediaからのSolr用類義語辞書の自動生成
WikipediaからのSolr用類義語辞書の自動生成
 
NLP x Lucene/Solr
NLP x Lucene/SolrNLP x Lucene/Solr
NLP x Lucene/Solr
 
Pre rondhuit-naming-story
Pre rondhuit-naming-storyPre rondhuit-naming-story
Pre rondhuit-naming-story
 
Lucene/Solr 3.1
Lucene/Solr 3.1Lucene/Solr 3.1
Lucene/Solr 3.1
 

Último

自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineerYuki Kikuchi
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)UEHARA, Tetsutaro
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfFumieNakayama
 
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案sugiuralab
 
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?akihisamiyanaga1
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NTT DATA Technology & Innovation
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfFumieNakayama
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)Hiroshi Tomioka
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...博三 太田
 

Último (9)

自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
 
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
 
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
 

Similarity functions in Lucene 4.0

  • 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 /S ut = (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-0321416919 2.  Introduction to Information Retrieval, http:// nlp.stanford.edu/IR-book/information-retrieval- book.html 3.  言語と計算(4) 確率的言語モデル 東京大学出版会 北 研二, 辻井 潤一 24