16
坪坂正志 mail : m.tsubosaka(at)gmail(dot)com

static index pruningについて

Embed Size (px)

Citation preview

Page 1: static index pruningについて

坪坂正志

mail : m.tsubosaka(at)gmail(dot)com

Page 2: static index pruningについて

参考文献

D. Carmel+ : Static index prunning for

information retrieval, SIGIR 2001

S. Buttcher and C. L. A. Clarke : A docment-

centric approach to static index pruning in

text retrieval systems, CIKM 2006

Page 3: static index pruningについて

Static index pruningとは

転置インデックスを作成する際に不要なエントリを除外する

Lucene 3.6で導入されている

http://lucene.apache.org/core/3_6_0/api/contrib-

pruning/index.html

https://issues.apache.org/jira/browse/LUCENE-

1812

Page 4: static index pruningについて

転置インデックスのスコアが上のようになっていたとする

term 1 (doc1,0.5)

term 2 (doc1,0.1) (doc2,5.0) (doc3,5.0)

(doc2,1.0)

Page 5: static index pruningについて

転置インデックスのスコアが上のようになっていたとする

term2に関して相対的にdoc 1のスコアは低い

そのためterm 2を含むクエリに関してdoc 1が上位に来る可能性は薄い

term 1 (doc1,0.5)

term 2 (doc1,0.1) (doc2,5.0) (doc3,5.0)

(doc2,1.0)

Page 6: static index pruningについて

検索結果の上位に影響が薄いエントリは転置インデックスから除外するというのがstatic

index pruning

転置インデックスはそのままで クエリ実行時にpruningするというのはdynamic index pruningと呼ばれる

cf : http://www.slideshare.net/tsubosaka/top-kquery

term 1 (doc1,0.5)

term 2 (doc2,5.0) (doc3,5.0)

(doc2,1.0)

Page 7: static index pruningについて

主なアプローチ

Term-Centric index pruning

転置インデックスのタームごとに重要度の低いエントリを削除する手法

Document-Centric index pruning

文章ごとに重要度の低いエントリを削除する手法

Page 8: static index pruningについて

Term-Centric index pruning

Carmelらによるものを紹介

初めに上位𝑘件まで検索を行うかを決める

各転置インデックス𝑃𝑡に対して

○ 転置インデックス内の文章𝑑 ∈ 𝑃𝑡のスコア𝐴(𝑡, 𝑑)を計算する

○ 𝐴(𝑡, d)の内ターム𝑡に関して𝑘番目に大きい値を𝑧𝑡とし、𝜏𝑡 = 𝜖𝑧𝑡とする

○ 𝐴 𝑡, 𝑑 ≤ 𝜏𝑡となる文章𝑑を転置インデックスから全て除外する

Page 9: static index pruningについて

𝑘 = 1, 𝜖 = 0.2のとき𝑧𝑡 = 5.0となり、𝜏𝑡 = 1.0であるためdoc2,3は除外されないがdoc 1は除外される

term (doc1,0.5) (doc2,2.0) (doc3,5.0)

Page 10: static index pruningについて

この方法によって保証される結果

削除後の転置インデックスに対して上位𝑘件までの問い合わせ𝑞 = (𝑡1, … , 𝑡𝑟)を行った時に上位𝑘件の文章のスコア𝑆𝑞

∗は元のスコア𝑆𝑞に対して

1 − 𝜖𝑟 𝑆𝑞 ≤ 𝑆𝑞∗ ≤ 𝑆𝑞

が成立する

Page 11: static index pruningについて

論文における実験結果

𝑘 = 10のとき

上位10件(P@10)の精度はある程度pruning

してもあまり変化しない

Page 12: static index pruningについて

Document-centric index pruning

termごとではなく各文章ごとにその文章において重要度が高いtermのみを残して、あとはエントリから除外する

Page 13: static index pruningについて

Term-centric approachでは上の例ではdoc1に関するエントリが全て削除される

一方doc 2においてはterm 1は相対的に重要な単語ではないが削除されない

文章の方から見ることによってdoc1は残してdoc 2のterm 1に関するエントリを削除するのがDocument-centric approach

term 1 (doc1,1)

term 2 (doc1,1) (doc2,10) (doc3,10)

(doc2,1)

Page 14: static index pruningについて

スコア基準

文章中で単語が出現する確率とコーパス全体における確率のダイバージェンスを基準にする

𝑆𝑐𝑜𝑟𝑒𝐷𝐶𝑃 𝑡 = 𝑀𝐷 𝑡 log(𝑀𝐷 𝑡

𝑀∗ 𝑡)

ここで𝑀𝐷 𝑡 は文章Dにおいて単語tが出現する確率

𝑀∗ 𝑡 はコーパス中での単語tが出現する確率

このスコアが上位のもののみ転置インデックスに格納する

BM25などのスコアリング関数とは独立した基準となっている

Page 15: static index pruningについて

論文における実験結果 Term-centric pruning(TCP)よりも同レベルの

pruningではDocument-centric pruningの方が良い結果となった 𝐷𝐶𝑃𝑅𝑒𝑙 は上位6.2%を転置インデックスに入れたもの、 𝐷𝐶𝑃𝐶𝑜𝑛𝑠𝑡は上位21件を転置インデックスに入れたもの

Page 16: static index pruningについて

関連文献

Static index pruning for information retrieval

systems: a posting-based approach, LSDS-IR

2009

Term-centric approachとDocument-centric approach

でのスコアを合わせた形のものを利用してpruning

Resln: a combination of results caching and

index pruning for high-performance web search

engines, SIGIR 2008

Pruningしたindexに問い合わせを行い、結果が得られなかった際にはfull-indexに対して問い合わせる