【クロスエンコーダー】

クロスエンコーダー とは?

公開:
💡 二人を並べて相性を丁寧に採点する審査員
📌 このページのポイント
クロスエンコーダー vs バイエンコーダー クロスエンコーダー クエリ 文書 クエリ + 文書 (一緒に入力) BERT等 Transformer スコア 0.92 ✗ 遅い(文書ごとに都度計算) ✓ 高精度(深い相互作用を計算) ✓ rerankerに最適 2段階方式(定石) ①バイエンコーダー 数百件に絞り込み ②クロスエンコーダー 上位N件を出力
クロスエンコーダーのイメージ:クエリと文書を一緒に処理して高精度なスコアを出す
ひよこ ひよこ
クロスエンコーダーって何をするものなの?
ペンギン先生 ペンギン先生
「この質問とこの文書はどれくらいマッチするか?」を0〜1のスコアで採点するモデルだよ。質問文と文書を一緒に受け取って、1つのスコアを返すんだ。
ひよこ ひよこ
バイエンコーダーと何が違うの?
ペンギン先生 ペンギン先生
バイエンコーダーは質問と文書を別々にベクトル化してコサイン類似度で比べるんだけど、クロスエンコーダーは両方を同時に入力して深い相互作用を計算するんだよ。そのぶん精度が高いんだ。
ひよこ ひよこ
じゃあクロスエンコーダーだけ使えばいいんじゃないの?
ペンギン先生 ペンギン先生
問題は速度なんだよ。文書が100万件あったら、クエリと100万通りのペアを全部計算しないといけない。バイエンコーダーは事前にベクトルを保存しておけるから、検索は高速なんだ。
ひよこ ひよこ
なるほど、遅いから全件には使えないんだね。じゃあどう使うの?
ペンギン先生 ペンギン先生
定石は「2段階方式」だよ。まずバイエンコーダーで数百件に絞り込んで、その候補だけをクロスエンコーダーで精密に再ランキング(reranking)するんだ。速さと精度を両立できるんだよ。
ひよこ ひよこ
RAGのどこで使われるの?
ペンギン先生 ペンギン先生
検索して取得した文書を「本当に質問に合っているか」で並び替えるrerankerとして使われることが多いよ。LLMへ渡す文書の質が上がるから、最終的な回答精度もぐっと良くなるんだ。
ひよこ ひよこ
精度重視の場面で活躍するんだね!
ペンギン先生 ペンギン先生
そうだよ。コスト(計算時間)と精度のトレードオフで選ぶ感じだね。速さを取るならバイエンコーダー単体、精度を取るなら2段階でクロスエンコーダーを組み合わせる、というのが現在の主流なんだ。
ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「クロスエンコーダー」って出てきたら「高精度だが遅い精密審査役」と思えばだいたいOK!
📖 おまけ:英語の意味
「Cross-Encoder」 = 交差エンコーダー
💬 クエリと文書を「交差させて」同時に処理することが名前の由来で、BERTのようなTransformerでクエリと文書をセパレータで連結して入力するんだよ。
← 用語集にもどる