バイエンコーダ (Bi-encoder)
クエリと文書をそれぞれ独立にベクトルへ変換し、内積やコサイン類似度で比べるニューラルネットワーク構造。高速(文書ベクトルはオフラインで事前計算できる)だが、クロスエンコーダより精度は劣る。
現代のベクトル検索とRAGの土台で、sentence-transformers、OpenAIのtext-embedding-3、BGE、Cohere Embed、Voyageなどがこれにあたる。学習は正例と負例のペアを使う対照学習で行い、埋め込みの次元数は通常384〜1536だ。100万件の文書を一度インデックスしておけば、検索時はクエリのエンコード(5〜10ミリ秒)とベクトル検索だけで済む。
クロスエンコーダとは役割が違う。バイエンコーダは検索(リトリーバル)向け、クロスエンコーダは再ランキング向けに最適化されている。定番の組み合わせは、広く拾う段階(上位100件)にバイエンコーダ、絞り込みの段階(上位10件)にクロスエンコーダを使うハイブリッド方式だ。