このページでは、AlloyDB AI ベクトル検索戦略と、各戦略を使用するタイミングについて説明します。デフォルトでは、AlloyDB は k 最近傍探索(KNN)を使用して、クエリに類似したベクトルを検索します。ベクトル インデックスは、近似最近傍(ANN)と呼ばれる検索戦略を実装します。ベクトル インデックスを作成するときに、AlloyDB AI は ANN を使用します。これにより、KNN よりも優れたパフォーマンスが得られます。ベクトル インデックスを選択する場合は、クエリ レイテンシと再現率のバランスを取る必要があります。
再現率は、特定のクエリに関連するすべてのアイテムを検索がどれだけ効果的に取得できるかを測定します。たとえば、100 個のエンベディングがあり、それぞれがデータベース内のエンティティを表しているとします。ターゲット ベクトルを使用してエンベディングをクエリし、結果を 10 件に制限します。KNN ベクトル検索は、ブルート フォース計算方法を使用して正確に最も近い 10 個のベクトルを検索し、100% の再現率を実現します。ベクトル検索インデックスが作成または選択されていない場合、AlloyDB AI はデフォルトでこの方法を使用します。AlloyDB for PostgreSQL でベクトル インデックスを作成する場合は、通常 ANN が使用されます。ANN は、高速な取得を容易にするために類似性に基づいてベクトルをパーティショニングする場合があります。その結果、ANN を使用すると、前述の例で返された 10 個のベクトルが、距離が最も近い 10 個のベクトルと完全に一致しない場合があります。取得された 10 個のベクトルのうち、クエリベクトルに空間的に最も近いベクトルが 8 個のみの場合、再現率は 80% です。
クエリ レイテンシは、検索結果が生成される速さを定義します。たとえば、レイテンシは、クエリを送信した後にベクトルを返す検索に要した時間に基づいて計算されます。
検索戦略を選択する
AlloyDB でベクトル検索を実行する場合は、次のいずれかの検索戦略を選択します。
検索戦略 | 説明 | ユースケース |
K 最近傍法(KNN) | 指定されたクエリデータポイントの k 最近傍データポイントを見つけるアルゴリズム。インデックスを作成せずにベクトル検索を実行すると、デフォルトで KNN 検索が実行されます。 |
|
近似最近傍探索(ANN) | 最も近いデータポイントを近似的に見つけ出すアルゴリズム。ANN は、既存の顧客データポイントを類似性に基づいて小さなグループに分割します。 |
|
ベクトル検索クエリのパフォーマンスを最適化するには、ベクトル インデックスを作成することをおすすめします。ANN インデックスが類似性検索にどのように使用されるかについては、ScaNN を使用してインデックスとクエリベクトルを作成するをご覧ください。