【バイエンコーダー】

バイエンコーダー とは?

最終更新:
💡 質問と文書を別々に数値に変えて、近さを比べる

クエリと文書などの入力を別々にベクトル化し、ベクトル同士の類似度で比較する方式。文書のベクトルを事前に計算して再利用でき、検索の候補を探す用途などに使われる。

📌 このページのポイント
別々にベクトル化し、類似度で比較 質問 「送料はいくら?」 文書 「送料の案内」 エンコーダー エンコーダー 質問のベクトル 文書のベクトル ベクトル同士の類似度で候補を探す コサイン類似度・内積など 文書は保存して再利用できる 速さ・精度は索引やモデル、設定による
文書ベクトルは事前に計算できる。検索時には質問のベクトル化と候補探索を行う。
ひよこ ひよこ
バイエンコーダーは、何を比べるの?
ペンギン先生 ペンギン先生
クエリ(検索の質問)と文書を別々にベクトルへ変えて、その類似度を比べるよ。コサイン類似度や内積など、モデルや検索の設計に合う計算を使うんだ。
ひよこ ひよこ
クロスエンコーダーとは、どう違うの?
ペンギン先生 ペンギン先生
クロスエンコーダーは質問と文書の組を一緒に処理し、関連度などのスコアを出すよ。バイエンコーダーは各入力から独立にベクトルを作るので、文書の表現を別の質問でも再利用できるんだ。
ひよこ ひよこ
別々に処理すると、検索が速くなる?
ペンギン先生 ペンギン先生
文書を事前にベクトル化して索引へ保存できるよ。検索時には質問のベクトル化と候補の探索が必要だけれど、文書を毎回モデルへ通さずに済む。文書やモデルを更新した場合は、保存した表現も見直すんだ。
ひよこ ひよこ
100万件でも必ず一瞬で探せる?
ペンギン先生 ペンギン先生
速さは索引の方式や機器、データなどによるよ。近似近傍探索なら大量の候補を効率よく探せる一方、近い文書を見逃す場合もある。速さと精度を、実際の検索データで確かめるんだ。
ひよこ ひよこ
RAGでは必ずクロスエンコーダーも使う?
ペンギン先生 ペンギン先生
必須ではないよ。検索した候補をクロスエンコーダーで並べ直す構成はあるけれど、候補数や再評価の必要性は用途による。どのモデルが常に高精度と決めず、検索結果の質と処理時間を評価して選ぶんだ。
ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「バイエンコーダー」って出てきたら「入力を別々にベクトル化して比較する方式」と思えばだいたいOK!
📖 おまけ:英語の意味
「Bi-Encoder」 = 2つの入力を別々に符号化する方式
💬 Biは2つを表すよ。ここではクエリと文書などを別々に処理すること。同じモデルで両方を処理する実装もあり、必ず異なる2つのモデルを用意するという意味ではないんだ。

参考資料

← 用語集にもどる