Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Retriever と Reranker、結局どうする?

Retriever と Reranker、結局どうする?

Avatar for hkazuakey

hkazuakey

July 30, 2026

Other Decks in Technology

Transcript

  1. Agenda 1. なぜ Vector Search なのか 2. Retriever / Reranker

    と実装 ◦ Bi-Encoder / SPLADE / ColBERT / Hybrid / Cross-Encoder 3. 評価と⽇本語 ESCI データセットでの実験 4. まとめ‧指針
  2. ⾃⼰紹介 • • • 検索基盤の設計・開発に 20年以上従事 エンタープライズサーチから toC 検索サービスまで幅広く経験 ◦

    Infoseek Japan、楽天、FAST、Basis Technology、メル カリで検索基盤を開発 ◦ クーガーでは AI(NLP/CV)チームをリード 現在は IVRy で Agentic Search の検索基盤開発に従事 平賀 ⼀昭 Principal Search Engineer / 株式会社IVRy 3
  3. WHY VECTOR SEARCH なぜ Vector Search なのか BM25(語彙⼀致)の限界 • 同義語‧表記ゆれ‧⾔い換えを取りこぼ

    語彙⼀致 vs 意味の⼀致 す 「意味は近いが単語が違う」⽂書がヒッ トしない クエリ: 「保湿 化粧⽔」 • Vector 検索の発想 • • • テキスト → 埋め込みベクトル(意味を 数値化) 学習時と整合した類似度(内積‧コ サインなど)で近い⽂書を探す ANN(近似最近傍)で⼤規模でも⾼速 BM25 : “保湿” “化粧⽔” を含む⽂書 → 語彙の重なりに依存するため、“うるおい ロー ション”を⾼く評価しにくい Vector : “うるおい ローション” もヒット → 表記が異なっても、学習した意味表現が近けれ ばヒット 4
  4. RANKING SPECTRUM 検索‧ランキング⽅式の広がり Lexical Feature-based Representation Late interaction Full interaction

    BM25 LambdaMART Bi-encoder ColBERT Cross-Encoder 語彙‧統計量 BM25‧CTR‧Freshne ss / Recency 1 vector / doc token vectors query‒doc 同時⼊⼒ ANNで⼤規模検索 MaxSimで照合 候補を⾼精度にリラン キング ⾼速な候補⽣成 ⼈⼿による特徴量を統 合 相互作⽤ 粗い‧安い • • 細かい‧重い LambdaMART は⼈⼿で設計した特徴量で学習する LTR であり、「Interaction(相互作⽤)の粒度」とは別軸だが⽅式の広 がりを⽰すため併記 「どう学習させるか」 (Pointwise / Pairwise / Listwise) は別軸 5
  5. TRAINING OBJECTIVE 補⾜:学習⽬的の3分類 (Learning to Rank) Pointwise Pairwise 単位:1⽂書 単位:⽂書ペア

    各(クエリ, ⽂書)を独⽴に採点。 関連度を回帰 / 分類で予測し、順 位は直接最適化しない。 例:関連度回帰‧分類 Listwise → 「正例を負例より上へ」を学習。2 ⽂書の⼤⼩関係を最適化する。 例:RankNet (LambdaMART の λ もペア単位) 単位:リスト全体 → 候補リスト全体を1単位に、nDCG 等のリスト評価に近い⽬的を最適 化。 例:ListNet / LambdaLoss 右へ⾏くほど「順位そのもの」を直接最適化しやすいが、学習は複雑になる • • ニューラルランキングモデル (Bi-encoder、ColBERT、Cross-Encoder) は loss の設計により Pointwise / Pairwise / Listwise のいずれ でも学習可能 LambdaMART は通常は Listwise LTR として扱われ、BM25 は学習を伴わないランキング関数 6
  6. TRADE-OFF 相互作⽤の粒度とコスト 相互作⽤の細かさ‧精度‧計算コスト ← 安い・粗い 高精度・重い → Two-Tower (Bi-encoder) Late

    Interaction (ColBERT) Cross-Encoder Q-D 相互作⽤ なし(最後に内積のみ) トークン単位(MaxSim) 全トークン間で相互作⽤ doc 事前計算 可(1ベクトル/doc) 可(トークン毎ベクトル) 不可(クエリ毎に計算) 計算コスト 低 中 ⾼ 主な役割 Retriever Retriever / Reranker 候補集合の Reranker ColBERT は multi-vector index を⽤いた全体検索では Retriever、候補集合へのスコアリングでは Reranker として動作 する 7
  7. RETRIEVER Two-Tower (Bi-encoder) Query Encoder Document Encoder 内積 / コサイン類似度

    • クエリと⽂書を独⽴の Tower でエンコード • 類似度は最後に内積 / コサインを取るだけ • ⽂書ベクトルは事前計算 → ANN で⾼速検索 • ⻑所:安い‧スケールする‧実装が容易 • 短所:語順や細かい語彙⼀致に弱い(1ベクトル に圧縮) doc 側は事前計算 → クエリ時は1回だけエンコード • 補⾜:語彙次元で表す学習型 Sparse (SPLADE) も 同系統 8
  8. RETRIEVER Learned Sparse Retrieval (SPLADE) • • 学習型スパース検索 (learned sparse

    retrieval):クエリ / ⽂書を 「語彙次元の疎ベクトル」へ。各語に学習した重み+語彙拡張(出 現しない関連語にも重み) Dense との違い:密ベクトルではなく“語彙×重み” → 既存の転置 索引 (Lucene/ES/Solr) でそのまま検索できる クエリ「保湿 化粧⽔」の疎表現 保湿 化粧⽔ • ⻑所:転置索引インフラを流⽤でき運⽤が容易‧説明可能 / 同義語 の取りこぼしを補える うるおい • 実測:first-stage 最良コスパは BM25+Sparse (後述の実験結果より) ローション • 注意:語彙拡張で転置リストが伸びレイテンシ増(正則化 λ‧重み 枝刈りで制御) 乳液 • 位置づけ:Lexical と Dense の中間。Solr/ES 資産を活⽤ スキンケア グレー=語彙拡張(元クエリに無い関連語) 9
  9. RETRIEVER Late Interaction (ColBERT) • ⽂書を「トークン毎のベクトル集合」で表現し、事前計算‧圧縮して保 存 • MaxSim:クエリの各トークンについて、⽂書内で最も類似する語のス コアだけを残して合計

    • 表現⼒は Bi-encoder より⾼い(語レベルの⼀致) • Retriever にもなれるが専⽤ index (PLAID) が必要 / インデックスが⼤き い • 実運⽤の注意:今回の実装では PLAID index の再ロード時に不安定さを 確認 “Late” = Query と Document を独⽴にエンコードした後で初めて両者の相互作⽤ (Interaction)を⾏うことを指す MaxSim のイメージ うるおい 保湿 ローション 化粧⽔ 美容 各クエリトークンと⽂書内トークンとの最⼤類 似度スコアの総和 10
  10. EXAMPLE MaxSim の計算例 クエリ:「保湿 化粧⽔」 ⽂書:「うるおい ローション で しっとり」 うるおい

    ローション しっとり → max MaxSim スコア 保湿 0.82 0.20 0.55 0.82 0.82 + 0.78 化粧⽔ 0.15 0.78 0.22 0.78 = 1.60 • 各クエリ語が「⽂書内で⼀番近い語」とマッチ → 表記が違っても拾える • 内積1回の Bi-encoder より情報量が多い (語×語の対応が⾒える) • その分、計算とインデックスは重くなる (トークン毎にベクトルを保持) ※ 数値‧分かち書きは説明⽤。実際は⽂脈化されたサブワード表現を使⽤。 11
  11. RETRIEVER Hybrid Retrieval BM25 順位 RRF 融合 Dense 順位 •

    語彙⼀致(BM25) と 意味(Dense) は相補的 • 順位で合算 → スコアのスケール差に頑健 • k=60 等、⼿堅い初期値から ◦ 最適値はデータ依存 ◦ 他にはスコア正規化+加重和 / 学習型融合 RRF(d) = Σ 1 / (k + rankᵢ(d)) 順位さえあれば任意の検索器を混ぜられる Gordon V. Cormack, Charles L A Clarke, and Stefan Buettcher. 2009. Reciprocal rank fusion outperforms condorcet and individual rank learning methods. In Proceedings of the 32nd international ACM SIGIR conference on Research and development in information retrieval (SIGIR '09). Association for Computing Machinery, New York, NY, USA, 758‒759. https://doi.org/10.1145/1571941.1572114 12
  12. EXAMPLE RRF の計算例 k = 60 とする。各⽂書の RRF スコア =

    Σ 1 / (60 + 順位) 文書 A BM25: 1位 Dense: 30位 1/61 + 1/90 0.0275 文書 B BM25: 圏外 Dense: 2位 0 + 1/62 0.0161 文書 C BM25: 5位 Dense: 4位 1/65 + 1/64 最上位 0.0310 ※「圏外」= 各検索器の top-k 候補に含まれない • 両⽅で「そこそこ上位」の⽂書が最も強い (⽂書 C) • ⽚⽅だけ1位でも、もう⽚⽅が低いと⽂書 C に負けうる (⽂書 A) • 順位だけを使う → モデル間のスケール差を気にしなくてよい 13
  13. RERANKER Cross-Encoder CROSS-ENCODER INTERNALS [CLS] 保湿 化粧⽔ [SEP] うるおい ローション

    [SEP] ⼊⼒ (query + doc を連結) Transformer / Self-Attention 全トークンが相互作⽤ (Q ↔ D) [CLS] 表現 → Relevance score = 0.93 (数値は例) 関連度を直接出⼒ 特徴 • ⾼精度:語順‧否定‧細かな対応を共同で判断 • 重い:⽂書表現が query ごとに変わり、doc だけを事 前計算できない なぜ大規模 Retriever に向かないか • スコアに (query, doc) の両方が必要 • 文書を事前にベクトル化できない • クエリ毎に全候補を再計算 → 全文書適用は計算量大 → 通常は Retriever で絞った後、候補数百件の並べ替えに 使う 14
  14. RERANKER / FEATURE-BASED LTR LambdaMART Features Boosted Trees Ranking score

    BM25 / title match CTR / freshness / ⼈気度 / business rules Tree₁ + Tree₂ + … ⾮線形な条件分岐を学習 Σ treeₖ(x) → 候補を並べ替え • • • • Lambda weight:順位を⼊れ替えた際の nDCG 変化が⼤きい⽂書ペアを重視(勾配はペア単 位だが最適化⽬的は nDCG=実質 Listwise LTR) ⻑所:⾼速‧成熟‧説明しやすい 課題:特徴量とログ品質に依存 位置づけ:Cross-Encoder や LLM reranker と並ぶ Reranker の選択肢の⼀つ 15
  15. IMPLEMENTATION ANN インデックス 主要アルゴリズム HNSW まとめると • • 近傍ノードをたどるグラフ探索 ANN

    の中でも⾼ Recall‧低レイテンシ(ただしメモリ使⽤ 量は多め) ef_search: 探索幅(Recall ↔ レイテンシ) M: ノード接続数(Recall ↔ メモリ) • • • • クラスタを絞って探索(nprobe) PQ圧縮で⾼いメモリ効率 インデックス構築前に学習が必要 Recall ↔ 速度‧圧縮率のトレードオフ • • HNSW:メモリ上のグラフ探索 IVF-PQ:クラスタ絞り込み+圧縮 DiskANN:SSD上のグラフ探索 IVF-PQ ◦ ◦ DiskANN / ScaNN • • ScaNN:クラスタ絞り込み+量⼦化 IVF:探索するクラスタを絞ることによる取りこぼし PQ:ベクトル圧縮による距離計算誤差 DiskANN (Microsoft) ◦ SSD常駐のグラフ探索で超⼤規模データに対応 ◦ メモリ効率と⾼Recallを両⽴ ◦ 更新よりも検索中⼼の⽤途向き ScaNN (Google) ◦ クラスタリングと量⼦化で候補を⾼速に絞り込み ◦ SIMD最適化による⾼速な距離計算 ◦ Recall ↔ レイテンシの調整幅が広い 16
  16. IMPLEMENTATION 埋め込みモデルの選定と改善 選定 改善 • 検索性能(MTEB‧MIRACL‧独⾃評価) • ファインチューニング(対照学習) • ⽇本語性能(多⾔語汎⽤

    vs ⽇本語特化) • In-batch Negatives + Hard Negatives(BM25‧近傍検 • 最⼤系列⻑(⻑⽂対応) • 埋め込み次元(メモリ‧速度‧ストレージ) • 蒸留(Knowledge Distillation) • ライセンス‧推論コスト‧多⾔語対応 • Cross-Encoder の関連度を Bi-encoder / ColBERT に蒸留 • ドメイン適応 • 継続事前学習(Continued Pre-training) • 擬似クエリ‧擬似ペア⽣成 • • 索) 多くの RAG では 512 〜 1024 トークン程度でチャンク化するため「最⼤系列⻑」はチャンクサイズによって重要度が変わる 会話RAG‧⻑⽂要約‧Agentic Searchでは重要度が⾼い 17
  17. 実験のモチベーションと期待 1. Revisiting Text Ranking in Deep Research から、⽇本語データでの Two-Tower,

    Late Interaction, Cross-encoder の⽐較を⾏いたいと考え た 2. JaColBERTv2.5 を Retriever / Reranker として利⽤可能かを確認したい と考えた Chuan Meng, Litu Ou, Sean MacAvaney, and Jeff Dalton. 2026. Revisiting Text Ranking in Deep Research. In Proceedings of the 49th International ACM SIGIR Conference on Research and Development in Information Retrieval (SIGIR '26). Association for Computing Machinery, New York, NY, USA, 3006–3016. https://doi.org/10.1145/3805712.3808557 18
  18. METRICS 評価指標の全体像 ⼆値関連度 (関連 / ⾮関連) Precision@k 上位 k 件のうち関連⽂書の割合

    関連数(上位k) / k 段階的関連度 (Graded) nDCG@k 関連度に段階 (⼤/中/⼩) がある場合に好適 Recall@k MRR MAP • • 全関連⽂書のうち上位 k で拾えた割合 順位割引 × 段階的な利得を評価 関連数(上位k) / 全関連数 最初の正解の逆順位の平均 (1件正解‧QA向き) mean( 1 / 最初の正解順位 ) 順位を考慮した平均精度の平均 (総合指標) mean( Average Precision ) Retriever は Recall@k(候補の網羅性=後段の上限) Reranker は nDCG‧MRR‧MAP(並び順の質) 19
  19. METRICS nDCG@10 の読み⽅ • 検索は「順位」が命 → 上位ほど価値が⾼い指標が要る 直感 • DCG:上位のヒットほど重く、下位は

    log で割り引く 正解を 1位 に出す > 10位 に出す • nDCG:理想順位 (iDCG) で割って 0〜1 に正規化 → ク エリ間で⽐較可能 • @10:ランキング上位10件に評価範囲を限定 0.40 → 0.50 相対 +25% スコアは 0〜1 (1.0 = 理想順位と⼀致) オンライン効果は A/B テストで確認 20
  20. EVALUATION DATA 検索評価データセットの選択肢 汎⽤‧ゼロショット 埋め込みモデル総合 Web / パッセージ BEIR MTEB

    / JMTEB MS MARCO / TREC DL 18データセット横断でドメイン頑 健性を⾒る ⽇本語は JMTEB (6タスク‧24デー タ) ⼤規模‧英語中⼼の定番 多⾔語 (⽇本語含む) ⽇本語 QA / Web IR 商品検索 今回 MIRACL / Mr.TyDi JQaRA / JaCWIR ESCI / WANDS ⾔語横断で retriever を⽐較 ⽇本語の reranking 評価に便利 EC 商品検索の関連性評価 (段階ラ ベル → nDCG 向き) • • ESCI (Amazon)=⽇本語を含む多⾔語‧⼤規模、ラベルは E/S/C/I WANDS (Wayfair‧ECIR 2022)=約43k商品/480クエリ‧3段階(Exact/Partial/Irrelevant)‧英語のみ • • ドメイン / ⾔語 / ラベル (⼆値 vs 段階) / タスク (Retrieval vs Rerank) 今回は商品検索デモと整合し、⽇本語+段階ラベルの ESCI を採⽤ ◦ 公開ベンチは⾃社データと乖離しがち → 最終判断は⾃社の評価セットで実施した⽅が良い 21
  21. RESULTS 1/2 ESCI ⽇本語データでの実験結果 First-stage(リランクなし)の指標別⽐較 ESCI ⽇本語 ‧ 4,667 queries

    × 339k docs ‧ Recall@5 / MRR@10 / nDCG@10 • • • Lexical ensemble (BM25+Sparse) が3指標すべてで最良 本実験では Recall@5, MRR は E のみの⼆値 nDCG は Graded の割当 なお Recall@5 の上限は ≈0.35(平均~14 relevant/query)。相対 ⽐較で判断する 22
  22. RESULTS 2/2 Cross-Encoder vs ColBERT と レイテンシ Cross-Encoder / ColBERT

    Reranker の⽐較 End-to-End レイテンシ(秒) 23
  23. 実験からの所感 • • • JaColBERTv2.5 を Retriever として実装した際に期待通りに動かない不具合に遭 遇 ◦

    Retriever としての評価は保留(in-process では動作) JaColBERTv2.5 による Reranker でさえもアプリケーションによってはレイテン シがネックとなり得る ◦ コストとレイテンシを考えると BM25 + Sparse + RRF あるいは結果の多様性 を狙い BM25 + Dense + RRF もあり得るか? Cross-encoder で depth 30 ならと⾔いつつも、それ以上の件数が必要であった り、ページングが必要なアプリケーションでの利⽤は難しい ◦ Agentic Search での利⽤なら可能性が? 24
  24. TAKEAWAYS 使い分けの指針 & まとめ 1 2 3 Retriever → Reranker

    の役割分担が基本 相互作⽤の粒度とコストのトレードオフ 最終品質の上限は候補集合の Recall Reranker より先に「良い候補」を 本実験では Cross-Encoder が最⾼ nDCG (0.5034) 全条件で ColBERT を上回った 実装ステップ まず Lexical + Dense + RRF をベースラインに • • 精度が必要なら候補数を絞って Cross-Encoder で再 ランキング • depth 30 前後がコスパ良 (品質ほぼ飽和) Recall‧レイテンシ‧コストのSLAで選ぶ (ANN‧量 ⼦化‧索引更新) • なお Cross-Encoder リランクの上位群(Hybrid BM25+Dense 0.5034 / Sparse+Dense 0.5013 / BM25+Sparse 0.5003)は 0.5003〜0.5034(最⼤差 約0.003)となり、実質的にはタイとみな してよい 少ないチューニングで強い 実運⽤の定番 品質は埋め込みの学習 (ハードネガティブ‧蒸留) で 伸ばす 25