
本 『検索システムガイド』を読んだ
検索システムガイド
を読んだ。もはやNoteBookLMがないと生きていけない感じになってきてる。
気になった用語とかいろいろ
block max WAND
block-max WANDは、MaxScoreアルゴリズムをベースに、さらに効率的なスコア計算を行うアルゴリズムです。 Apache Luceneのバージョン8.0.0から実装されており、デフォルトで有効になっています。 block-max WANDを有効にした場合と無効にした場合とでクエリ処理のパフォーマンスを計測した結果、返却件数が10件の場合、block-max WAND有効時は無効時に比較して4.5倍ものパフォーマンス向上が見られます。 ただし、返却件数が増えるほど差は縮まり、1000件程度になるとblock-max WANDのほうが遅くなるようです。
検索のランキング
TF-IDFとBM25:
- TF-IDFは情報検索の初期から広く利用されており、現在でも使われています [1]。BM25は確率ランキング原理に基づいて開発された手法で、現代の検索システムでも広く使われています。
- Apache SolrやElasticsearchでは、デフォルトのスコアリング方式としてBM25が採用されています
属性情報や他の要素によるランキング(ブースト)
- 検索クエリに合致するドキュメント集合を、ドキュメントに紐づけられた属性情報でソートすることで、ユーザーが求めるランキングで検索結果を提示できます 。
- 検索エンジンの実装の中には、ランキングにあたり、BM25などの類似度に特定のフィールドの値を足したり掛けたりしたスコアを利用できるものがあり、これはブーストと呼ばれることがあります。
- Elasticsearchでは、Function scoreクエリという機能を利用することでブーストを実現できます
機械学習によるランキング学習(LTR)
- 適切な訓練データから検索ランキングモデルを構築し、それを検索システムに組み込むことで、人手によるチューニングが不要で精度も高い検索結果のランキングを提示できるようになります
- ランキング学習は、目的関数の選び方によって、ポイントワイズ、ペアワイズ、リストワイズの3種類に大別されます
そもそも検索とは〜から入って、検索のUIからプロジェクト管理、ランキングぐらいまで検索周りのことを一巡り学べる本だった。 RAGが全盛期とはいえ、実装周りまでのことをかなり詳しく書いてあって、とても勉強になった。 あとは8章に書いてある検索プロジェクトの立ち上げと計画周りが一番大変じゃないかな〜〜〜?って思ったりもした