バイエンコーダとは

バイエンコーダとは、問い合わせと文書を「別々に」ベクトル化してから、ベクトル同士の近さで関連度を測る方式のことです。高速で大量に処理できるため、ベクトルデータベースセマンティック検索を支える土台になっています。

なぜ大量の検索を速くこなせるのか

バイエンコーダの強みは、文書側のベクトルを、問い合わせが来る前にあらかじめ計算して保存しておける点です。検索のときは問い合わせだけをベクトルに変換し、保存済みのベクトルと近さを比べるだけで済みます。事前に計算した文書のベクトルは、ベクトルデータベースにまとめて蓄えておきます。そのため、何百万件もの文書からでも意味の近いものを高速に取り出せるのです。

クロスエンコーダとの使い分け

問い合わせと文書を別々に見るぶん、両者のかみ合わせまで読み取るクロスエンコーダには精度でやや劣ります。そこで実務ではバイエンコーダで候補を広く速く拾い、最後にクロスエンコーダで精密に並べ替えるという二段構えがよく使われます。バイエンコーダは「速く広く拾う」第一段を担う役どころです。

Topic正体は「双子(シャム)」の二本立て

バイエンコーダのもとになった代表的な手法は、論文の題名で「シャム(双子)ネットワーク」と呼ばれています。同じ作りのエンコーダを二本用意し、問い合わせと文書をそれぞれ別の塔で処理する姿が、双子になぞらえられました。この「別々にベクトル化して保存できる」構造こそが、意味で探す検索を実用的な速さに引き上げた立役者です。

バイエンコーダに関するよくある質問

なぜ大量の検索を速くこなせるのですか?
文書側のベクトルを、問い合わせが来る前にあらかじめ計算してベクトルデータベースに保存しておけるためです。検索時は問い合わせだけをベクトルに変え、保存済みと近さを比べるだけで済むので、何百万件からでも意味の近いものを高速に取り出せます。
クロスエンコーダとはどう使い分けるのですか?
バイエンコーダは問い合わせと文書を別々に見るぶん、両者のかみ合わせまで読むクロスエンコーダには精度でやや劣ります。そこで実務では、バイエンコーダで候補を広く速く拾い、最後にクロスエンコーダで精密に並べ替える二段構えがよく使われます。
「バイ(双)」という名前の由来は?
もとになった代表的な手法は、論文の題名で「シャム(双子)ネットワーク」と呼ばれます。同じ作りのエンコーダを二本用意し、問い合わせと文書をそれぞれ別の塔で処理する姿が双子になぞらえられました。この「別々にベクトル化して保存できる」構造が、意味で探す検索を実用的な速さに引き上げました。