Suche senden
Hochladen
Lucene 6819-good-bye-index-time-boost
•
Als PPTX, PDF herunterladen
•
0 gefällt mir
•
2,090 views
Koji Sekiguchi
Folgen
LUCENE-6819 & LUCENE-7730 の背景説明
Weniger lesen
Mehr lesen
Internet
Melden
Teilen
Melden
Teilen
1 von 10
Jetzt herunterladen
Empfohlen
JBoss AS7
JBoss AS7
nekop
aws_opsworks
aws_opsworks
Yukihiko SAWANOBORI
cloudpack導入資料(2011/05/06版)
cloudpack導入資料(2011/05/06版)
iret, Inc.
20221209-ApacheSolrによるはじめてのセマンティックサーチ.pdf
20221209-ApacheSolrによるはじめてのセマンティックサーチ.pdf
Koji Sekiguchi
Solr から使う OpenNLP の日本語固有表現抽出
Solr から使う OpenNLP の日本語固有表現抽出
Koji Sekiguchi
Learning-to-Rank meetup Vol. 1
Learning-to-Rank meetup Vol. 1
Koji Sekiguchi
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)
Koji Sekiguchi
Empfohlen
JBoss AS7
JBoss AS7
nekop
aws_opsworks
aws_opsworks
Yukihiko SAWANOBORI
cloudpack導入資料(2011/05/06版)
cloudpack導入資料(2011/05/06版)
iret, Inc.
20221209-ApacheSolrによるはじめてのセマンティックサーチ.pdf
20221209-ApacheSolrによるはじめてのセマンティックサーチ.pdf
Koji Sekiguchi
Solr から使う OpenNLP の日本語固有表現抽出
Solr から使う OpenNLP の日本語固有表現抽出
Koji Sekiguchi
Learning-to-Rank meetup Vol. 1
Learning-to-Rank meetup Vol. 1
Koji Sekiguchi
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)
Koji Sekiguchi
An Introduction to NLP4L
An Introduction to NLP4L
Koji Sekiguchi
Nlp4 l intro-20150513
Nlp4 l intro-20150513
Koji Sekiguchi
コーパス学習による Apache Solr の徹底活用
コーパス学習による Apache Solr の徹底活用
Koji Sekiguchi
情報検索の基礎からデータの徹底活用まで
情報検索の基礎からデータの徹底活用まで
Koji Sekiguchi
LUCENE-5252 NGramSynonymTokenizer
LUCENE-5252 NGramSynonymTokenizer
Koji Sekiguchi
情報検索におけるランキング計算の紹介
情報検索におけるランキング計算の紹介
Koji Sekiguchi
系列パターンマイニングを用いた単語パターン学習とWikipediaからの組織名抽出
系列パターンマイニングを用いた単語パターン学習とWikipediaからの組織名抽出
Koji Sekiguchi
Luceneインデックスの共起単語分析とSolrによる共起単語サジェスチョン
Luceneインデックスの共起単語分析とSolrによる共起単語サジェスチョン
Koji Sekiguchi
Html noise reduction
Html noise reduction
Koji Sekiguchi
Lucene terms extraction
Lucene terms extraction
Koji Sekiguchi
Visualize terms network in Lucene index
Visualize terms network in Lucene index
Koji Sekiguchi
WikipediaからのSolr用類義語辞書の自動生成
WikipediaからのSolr用類義語辞書の自動生成
Koji Sekiguchi
HMM viterbi
HMM viterbi
Koji Sekiguchi
NLP x Lucene/Solr
NLP x Lucene/Solr
Koji Sekiguchi
OpenNLP - MEM and Perceptron
OpenNLP - MEM and Perceptron
Koji Sekiguchi
自然言語処理における機械学習による曖昧性解消入門
自然言語処理における機械学習による曖昧性解消入門
Koji Sekiguchi
Similarity functions in Lucene 4.0
Similarity functions in Lucene 4.0
Koji Sekiguchi
Pre rondhuit-naming-story
Pre rondhuit-naming-story
Koji Sekiguchi
Lu solr32 34-20110912
Lu solr32 34-20110912
Koji Sekiguchi
Lucene/Solr 3.1
Lucene/Solr 3.1
Koji Sekiguchi
Weitere ähnliche Inhalte
Mehr von Koji Sekiguchi
An Introduction to NLP4L
An Introduction to NLP4L
Koji Sekiguchi
Nlp4 l intro-20150513
Nlp4 l intro-20150513
Koji Sekiguchi
コーパス学習による Apache Solr の徹底活用
コーパス学習による Apache Solr の徹底活用
Koji Sekiguchi
情報検索の基礎からデータの徹底活用まで
情報検索の基礎からデータの徹底活用まで
Koji Sekiguchi
LUCENE-5252 NGramSynonymTokenizer
LUCENE-5252 NGramSynonymTokenizer
Koji Sekiguchi
情報検索におけるランキング計算の紹介
情報検索におけるランキング計算の紹介
Koji Sekiguchi
系列パターンマイニングを用いた単語パターン学習とWikipediaからの組織名抽出
系列パターンマイニングを用いた単語パターン学習とWikipediaからの組織名抽出
Koji Sekiguchi
Luceneインデックスの共起単語分析とSolrによる共起単語サジェスチョン
Luceneインデックスの共起単語分析とSolrによる共起単語サジェスチョン
Koji Sekiguchi
Html noise reduction
Html noise reduction
Koji Sekiguchi
Lucene terms extraction
Lucene terms extraction
Koji Sekiguchi
Visualize terms network in Lucene index
Visualize terms network in Lucene index
Koji Sekiguchi
WikipediaからのSolr用類義語辞書の自動生成
WikipediaからのSolr用類義語辞書の自動生成
Koji Sekiguchi
HMM viterbi
HMM viterbi
Koji Sekiguchi
NLP x Lucene/Solr
NLP x Lucene/Solr
Koji Sekiguchi
OpenNLP - MEM and Perceptron
OpenNLP - MEM and Perceptron
Koji Sekiguchi
自然言語処理における機械学習による曖昧性解消入門
自然言語処理における機械学習による曖昧性解消入門
Koji Sekiguchi
Similarity functions in Lucene 4.0
Similarity functions in Lucene 4.0
Koji Sekiguchi
Pre rondhuit-naming-story
Pre rondhuit-naming-story
Koji Sekiguchi
Lu solr32 34-20110912
Lu solr32 34-20110912
Koji Sekiguchi
Lucene/Solr 3.1
Lucene/Solr 3.1
Koji Sekiguchi
Mehr von Koji Sekiguchi
(20)
An Introduction to NLP4L
An Introduction to NLP4L
Nlp4 l intro-20150513
Nlp4 l intro-20150513
コーパス学習による Apache Solr の徹底活用
コーパス学習による Apache Solr の徹底活用
情報検索の基礎からデータの徹底活用まで
情報検索の基礎からデータの徹底活用まで
LUCENE-5252 NGramSynonymTokenizer
LUCENE-5252 NGramSynonymTokenizer
情報検索におけるランキング計算の紹介
情報検索におけるランキング計算の紹介
系列パターンマイニングを用いた単語パターン学習とWikipediaからの組織名抽出
系列パターンマイニングを用いた単語パターン学習とWikipediaからの組織名抽出
Luceneインデックスの共起単語分析とSolrによる共起単語サジェスチョン
Luceneインデックスの共起単語分析とSolrによる共起単語サジェスチョン
Html noise reduction
Html noise reduction
Lucene terms extraction
Lucene terms extraction
Visualize terms network in Lucene index
Visualize terms network in Lucene index
WikipediaからのSolr用類義語辞書の自動生成
WikipediaからのSolr用類義語辞書の自動生成
HMM viterbi
HMM viterbi
NLP x Lucene/Solr
NLP x Lucene/Solr
OpenNLP - MEM and Perceptron
OpenNLP - MEM and Perceptron
自然言語処理における機械学習による曖昧性解消入門
自然言語処理における機械学習による曖昧性解消入門
Similarity functions in Lucene 4.0
Similarity functions in Lucene 4.0
Pre rondhuit-naming-story
Pre rondhuit-naming-story
Lu solr32 34-20110912
Lu solr32 34-20110912
Lucene/Solr 3.1
Lucene/Solr 3.1
Lucene 6819-good-bye-index-time-boost
1.
LUCENE-6819 Good bye index-time
boost 8/24/17 Koji Sekiguchi @kojisays
2.
LUCENE-6819による変更 • Lucene/Solr 6.5.0
にて関連するコードが @deprecated にマークされた。また、データ投入 時にboost!=1.0の値が指定されていると、警告が表 示される。 • Lucene/Solr 7.0.0 にて、インデックス時重み指定 ができなくなり、参照している部分も削除された。
3.
背景 • 旧DefaultSimilarityの実装に強く依存していた。 • fieldNorm
= lengthNorm * boost • fieldNormが1バイトのfloatでインデックスに保存されており、低精度。boostはコン トロールしようがないが、これが取り除ければ0 <= fieldNorm <= 1の範囲で抑える ことができ、精度を高く保つ努力が報われる。 • かつ、ほとんどの人はboostを指定しない。 • (すでにBM25Similarityがデフォルトとなり、オリジナルのBM25にはboostという考 えがなかったが、LuceneのBM25には文書長を考慮する部分にboostが掛けられている という独自実装が入っており、気持ち悪かった・・・というのもあると思われる。) • docValuesにboost値を入れればより高精度に重みを指定できる。
4.
LUCENE-6819 • この修正だけでは、相変わらず低精度のまま(0〜 255の範囲が有効に使えていない(グレー部分)) 〜〜〜〜 1byte (fieldNorm) Float.MAX_VALUE0
1(boostを使わない場合の最大値)
5.
今後のindex-time boost • 今後はdocValuesにブースト値を入れてスコアに加味す る。 •
Luceneの場合:FunctionScoreQuery • Solrの場合:従来のFunctionQuery • 使い方(Solrの場合) • techproductsではweightがdocValuesになっているので 、q=_val_:”product(weight)”などとする。
6.
関連チケット LUCENE-7730 (7.0) lengthNorm のよりよいエンコーディングのための改善。長さ(単語 数)40まではそのままエンコーディングされる(その後徐々にずれる )。BM25Similarityがデフォルトなので、1/sqrt(numTerms)計算後の 値ではなく、numTermsそのものを入れることにした。 LUCENE-7623 (6.5) FunctionScoreQuery と
FunctionMatchQuery の追加。 LUCENE-7377 (提案中) ClassicSimilarityの削除。
7.
omitNormsとの関連 • omitNormsは相変わらず有効。LUCENE-6819で行ったのは、 fieldNorm =
lengthNorm * boost から boost を切り離したこと。相変わ らず fieldNorm = lengthNorm はLUCENE-6819後も低精度でインデッ クスに保存されている。 • boostはどんな値も設定されるので、fieldNormがどんな値になるの か制御できない。 • LUCENE-7730で短い文章においてfieldNormに差がつくように改善し た。 • LUCENE-6819によりboostを切り離したことで、LUCENE-7730の 苦労が報われる。
8.
fieldNorms値の違い • Lucene 7.0 •
〜 Lucene 6.x 87 fieldNorm (1byte) 1000 984 SmallFloat.intToByte4(1000) → 87 SmallFloat.byte4ToInt(87) → 984 104 fieldNorm (1byte) 1000 1024 SmallFloat.floatToByte315(boost/sqrt(1000)) → 104 boost==1のとき、1/sqrt(1000)=0.03162277660168 SmallFloat.byte315ToFloat(104) → 0.031250
9.
SmallFloat a b numTerms SmallFloat.intToByte4(numTer ms) SmallFloat.byte4ToInt(a) SmallFloat.floatToByte315(boost/ sqrt(numTerms)) SmallFloat.byte315ToFloat(b) 0 0
0 1 1 1 124 1.000000 2 2 2 121 0.625000 3 3 3 120 0.500000 4 4 4 120 0.500000 : : : : : 40 40 40 113 0.156250 41 40 40 112 0.125000 42 41 42 112 0.125000 43 41 42 112 0.125000 : : : : : 1000 87 984 104 0.031250 7.0(LUCENE-7730) 〜 6.x
10.
LUCENE-7730 • fieldNormを有効に使う修正 〜〜〜〜 1byte (fieldNorm) Integer.MAX_VALUE0 40
Jetzt herunterladen