Inverted File Flatベクトル索引のオンライン再構築
IVF (Inverted File Flat)ベクトル索引の作成後に発生した新しいDML操作(挿入、更新または削除)によってもたらされたデータ分散変化が、結果の精度に大きな影響を与える可能性があります。これらの変更には、持続的な取得精度を確保するための慎重なメンテナンス戦略が必要です。
データ変更によるIVF索引の品質への影響を調べる前に、IVF索引がどのように構築されているかを簡単に思い出してみましょう。このプロセスでは、まず、実表からベクトルのサンプル・セットがクラスタ化されます。これらのベクトルはCENTROIDSとして定義され、基にあるCentroids表に格納されます。その後、実表がスキャンされ、残りすべてのベクトルもクラスタ化されその重心にマップされます。ベクトル割当ては、Centroidsパーティション表に格納されます。
IVF索引の有効性は、その索引の作成中に行われた選択によって大きく異なります。IVF索引の作成中に指定されたパラメータによって、その索引でそのデータがどの程度適切にパーティション化されるかが決まり、最終的に、それで高品質な最近傍検索をどの程度効率的にサポートできるかが決まります。たとえば、米国の都市を表すデータセットを考えてみます。 索引の作成時に設定されたパラメータに基づいて、次の図に示すように、データが複数のパーティションに分割されます:
IVF索引の作成後、挿入、更新、削除などの作成後のDML操作によって、基礎となるデータ分散が大幅に変化する可能性があります。これにより、パーティションの偏りが生じることが多くなります。つまり、一部の近傍パーティションが不均等に大きくなり、他のパーティションは小さいままになります。索引の作成時に使用される重心は静的なままであるため、進化するデータセットを正確に表せなくなる可能性があります。この不整合により、新しく追加されたベクトルが誤ったパーティションに分類され、想起率および索引の全体的な効果が低下する可能性があります。
"Redwood City"および"Gaithersburg"という検索問合せベクトルに対応する類似性検索について考えてみます。"Redwood City"に対応する上位3件の一致は、San Francisco、MontereyおよびSacramentoです。"Gaithersburg"に対応する上位3件の一致は、Philadelphia、TrentonおよびAnnapolisです。これらの検索結果は、上の図に示した元の索引からのものです。
"Redwood City"に対応する検索結果は問合せに一致しますが、"Gaithersburg"に対応する検索結果は問合せを正確に表していません。主な理由の1つは、(表に示されている)DML更新が重心パーティション表に対して行われ、新しいデータが索引で正確に表される場合も表されない場合もあることです。また、クラスタ・サイズが大きいため、取得時間が長くなる可能性があります。
最適な精度を維持するには、データの進化に伴ってこれらの問題に対処する適切な索引の再編成を実装することが不可欠です。
索引の再編成は、グローバルIVF索引再編成またはローカルIVF索引再編成のどちらかをトリガーすることで実現されます。完全再構築は複数のフェーズで実行されます。静的再構築フェーズ中にジャーナル表に加えられた変更は、キャッチアップ・フェーズを通して索引に適用されます。ローカルIVF索引再編成では、索引全体ではなく、選択したパーティションのみを再構築できます。詳細は、「Inverted File Flatベクトル索引のオンライン再構築」を参照してください。
索引の再編成後、同じ米国の都市の索引には、追加された新しいデータを表すクラスタがより多く含まれるようになります。また、"Gaithersburg"に対応する検索では、Frederick、Washington DCおよびArlingtonが上位3件の結果として返されるようになりました。これは、索引の再編成前の結果と比較してより正確です。次のプロットは、新しいクラスタを表しています。また、再編成後のクラスタのサイズが均一であることにも注意してください。
親トピック: 近傍パーティション・ベクトル索引



