リランカーとは
Reranker / Re-ranking
初期検索で取得した候補群を、より高精度なモデルで並べ替える2段階目の検索コンポーネント
ひとことで言うと
検索で見つかった候補を、もう一度精度の高い方法で並び替える仕組み。
概要
リランカー(Reranker)とは、ベクトル検索やキーワード検索等の初期検索(候補生成)で取得した上位候補群に対し、クエリと各候補との関連度をより精密に評価し直して順位を並べ替えるコンポーネント。 ベクトル検索は大量の文書から高速に候補を絞り込めるが、クエリと文書を別々にベクトル化するため精度の限界がある。 リランカーは、クエリと候補文書のペアを直接モデルへ入力して関連度を計算するクロスエンコーダ方式を用いることで初期検索より高精度なランキングを実現するが、全文書に適用するには計算コストが高いため、初期検索で絞り込んだ少数の候補にのみ適用する2段階構成が一般的。 Cohere RerankやBGE Rerankerなど専用に学習されたモデルが広く使われ、RAGパイプラインにおいて最終的にLLMへ渡す文書の質を高める重要な工程として組み込まれる。
背景
ベクトル検索(バイエンコーダ方式)は、クエリと文書を別々にベクトル化してから類似度を計算するため高速だが、両者の間の細かい相互作用を捉えにくく、上位候補の精密な順位付けには限界がある。 リランカーは、この精度の限界を補うため、計算コストの高いクロスエンコーダ方式を上位候補だけに絞って適用する2段階検索の考え方から生まれた。
アーキテクチャ
クエリと候補文書のペアを1つの入力としてTransformerエンコーダへ与え、関連度スコアを直接出力するクロスエンコーダ構成を取ることが多い。 初期検索(ベクトル検索やBM25等)で取得した上位数十〜数百件の候補にのみリランカーを適用し、計算コストを抑えながら精度を高める。
ワークフロー
初期検索(セマンティック検索・キーワード検索・ハイブリッド検索等)で上位候補を取得 → クエリと各候補のペアをリランカーへ入力 → 関連度スコアを算出 → スコア順に並べ替え、上位を最終結果として採用。
利点
- 初期検索単体よりも高精度な関連度評価・順位付けができる
- 初期検索とリランキングを分離することで、全体の検索速度と精度のバランスを取れる
欠点
- クエリと候補のペアごとに推論を要するため、全文書に適用するには計算コストが高い
- 初期検索で正しい候補が上位に含まれていなければ、リランキングでも救えない
比較
関連用語
よくある質問
リランカーは必須?
必須ではないが、初期検索だけでは上位候補の精度が不十分な場合に、追加の計算コストと引き換えに検索品質を高める手段としてRAGパイプラインに組み込まれることが多い。
参考文献
- DocumentationCohere: Rerank
- GitHubsentence-transformers Cross-Encoders