Inverted File Flatベクトル索引の理解
Inverted File Flat索引は、近傍パーティションまたはクラスタを使用して検索領域を絞り込むことによって検索効率を向上させるように設計された手法です。
次の図は、2D空間表現を使用して実行された近似検索でパーティションまたはクラスタがどのように作成されるかを示しています。ただし、これははるかに高い次元空間に一般化することができます。
×印は、この空間のベクトル・データ・ポイントを表しています。
小さい普通の円として示されている新しいデータ・ポイントは、k
パーティションの重心を識別するために追加されています。ここで、重心の数(k
)は、データセットのサイズ(n
)によって決まります。通常、k
はn
の平方根に設定されます。ただし、索引の作成時にNEIGHBOR PARTITIONS
パラメータを指定することで調整できます。
各重心は、対応するパーティションの平均ベクトル(重心)を表します。
重心は、最も近い重心から各ベクトルへの合計距離を最小限にすることを目標とする、ベクトルのトレーニング・パスによって計算されます。
重心によって、ベクトル空間がk
パーティションに分割されます。この分割は概念的には、重心から円を拡大し、それらが接したときに拡大をやめ、個別のパーティションが形成されるということができます。
周辺部にあるものを除き、各ベクトルは重心に関連付けられた特定のパーティション内に収まります。
問合せベクトルvq
の場合、検索アルゴリズムでは最も近いi
の重心が識別されます。ここで、i
はデフォルトでk
の平方根に設定されますが、NEIGHBOR PARTITION PROBES
パラメータを設定することで特定の問合せに対して調整できます。この調整により、検索速度と精度のトレードオフが可能になります。
このパラメータの数値が大きいほど、精度が高くなります。この例では、i
は2に設定され、識別された2つのパーティションはパーティション番号1および3です。
i
個のパーティションが判別されると、それらが完全にスキャンされ、この例では最も近い上位5件のベクトルが識別されます。この数値5は、k
と異なる数値にすることでき、問合せでこの数値を指定します。次の図では、パーティション番号1および3にあるvq
に最も近い5つのベクトルが強調表示されています。
この方法では、検索がパーティションのサブセットに制限されているため、近似検索が構成されて処理が速くなりますが、検査されないパーティションのより近いベクトルが欠落する可能性があります。この例は、近似検索では正確にはvq
に最も近いベクトルが選択されない可能性があり、検索の効率と正確性の間に固有のトレードオフがあることを示しています。
ただし、vq
から正確に最も近い5つのベクトルは、近似検索で見つかったベクトルではありません。パーティション番号4のベクトルの1つが、パーティション番号3で取得されたベクトルの1つよりもvq
に近いことがわかります。
ベクトル索引検索を使用すると、必ずしも完全検索とはならず、近似検索と呼ばれる理由がこれでわかります。この例では、近似検索の精度は80%です。完全検索のベクトルの結果の5件のうち取得されたのは4件のみであるためです。
Oracle AI Vector Searchを使用して、ベクトル索引を使用して近似検索問合せを実行する場合は、近似検索を実行するターゲット精度を指定できます。
IVF近似検索の場合、ターゲット精度のパーセント値を指定して、検索の精査に使用されるパーティションの数に影響を与えることができます。これは、アルゴリズムによって自動的に計算されます。値が100の場合は、完全検索が実行される傾向がありますが、システムでは引き続き索引が使用され、完全検索は実行されません。オプティマイザでは、問合せの述語がある場合は索引を使用する方が高速になる可能性があるため、引き続き索引を使用することが選択されることがあります。ターゲット精度のパーセンテージ値を指定するかわりに、NEIGHBOR PARTITION PROBES
パラメータを指定して、検索によって精査されるパーティションの最大数を指定できます。その数値が大きいほど、精度が高くなります。
ノート:
- 近似検索問合せでターゲット精度を指定しない場合、索引の作成時に設定された精度が継承されます。索引の作成時に、作成する索引のタイプに応じて、パーセンテージ値またはパラメータ値を使用してターゲット精度を指定できることがわかります。
- 索引検索では、索引の作成時の設定と異なるターゲット精度を指定できます。IVF索引の場合、
NEIGHBOR PARTITION PROBES
パラメータを使用してより重心にあるパーティションを精査し、より正確な結果を取得できます。索引の作成時に指定するターゲット精度によって、索引作成のパラメータが決まり、ベクトル索引検索のデフォルトの精度値としても機能します。
親トピック: 近傍パーティション・ベクトル索引について