アーカイブ / RAG
SIEVE:検索条件に応じて複数の索引を使い分ける絞り込み付きベクトル検索
SIEVE
概要
- SIEVEは過去の検索条件と頻度を使い、メモリ予算内で複数のHNSW部分索引を選んで構築する。
- 検索時には目標再現率に応じて索引と探索量を選び、該当項目の全件比較とも推定時間を比べる。
- 著者らは検索速度で最大8.06倍を報告するが、確認できた本文の範囲では、その値に対応する詳細な測定条件は確認できない。
補足:編集した模式図で仕組みを確認する
VISUAL EXPLAINER
図でつかむ、SIEVEの仕組み
- 01属性付きベクトルと検索履歴
- 02部分索引を選んで構築
- 03検索方法を選択
- 04条件に合う類似結果
原論文の説明をもとにした模式図です。処理の細部は省略しています。
研究の背景
SIEVEは、意味が近い項目を探しながら、タグや価格帯などの必須条件にも合う結果を返す「絞り込み付きベクトル検索」を扱う。ベクトルは、項目の特徴を数値の並びで表したものだ。
グラフ型の索引は、近い項目へつながりをたどって探す。条件に合う項目がまばらだと、目的の項目へ少ない移動回数で到達しにくい。動画の「子ども向け」タグのような条件を守りながら、検索時間を抑えることが課題となる。
手法
構築時には、項目のベクトルと属性、過去の検索条件と頻度、目標再現率、メモリ予算を入力する。再現率は、正解となる上位の類似項目をどれだけ見つけたかを示す割合である。SIEVEは条件に合う項目からHNSW部分索引の候補を作り、索引サイズ・検索時間・再現率を見積もって選定する。全件用の索引も保持する。
例えば「子ども向け」動画の検索では、質問のベクトルとタグ条件を受け取り、その条件を扱える索引と探索量を選ぶ。部分索引に条件外の項目が含まれる場合は、結果にも条件を適用する。条件に合う全件を直接比較する方法の推定時間とも比べ、速いと見込む方法で類似動画を返す。
新規性
SIEVEの提案は、条件に合う点だけをたどるよう一つのグラフを変える代わりに、異なる条件を扱う部分索引を複数作ることにある。一つの部分索引は、構築時に使った条件より狭い条件の検索にも利用できる。
著者らが新規性として挙げるのは、索引サイズ・検索時間・再現率の関係を見積もるモデルと、そのモデルを使った索引の構築・検索時の選択である。過去の検索頻度を考慮し、メモリ予算内で効果が見込める索引を選ぶ。
従来手法との違い
全件用のHNSW索引で多めに候補を探し、後から条件に合わない結果を除く方法では、該当項目が少ないほど探索量が増え得る。HNSWは、近いベクトル同士のつながりをたどる多層の索引である。
本文は、条件に合う点を探索するACORNと、属性を共有する点の結び付きを作るFilteredVamanaも論じる。SIEVEは条件別の部分索引を用意し、検索時に索引探索と、該当する全件との類似度を直接計算する方法の推定時間を比べる。
実験結果
著者らは、条件に該当する項目の割合や条件の形式が異なるデータで評価し、既存索引に対して検索速度は最大8.06倍、索引構築時間は比較対象の最小1%、メモリ使用量は標準的なHNSWグラフの2.15倍未満と報告する。これらは指標ごとの報告値である。
確認できた本文の範囲では、各数値に対応するデータセット名、比較対象、目標再現率、測定条件を示す評価表は確認できない。各値が同じ条件で同時に得られたとは読み取れず、導入先での速度やメモリ量を予測する数値としては扱えない。
応用の可能性
編集上の応用案 · 論文が実証した用途とは区別しています。
編集上の応用案:社内文書から、閲覧権限と文書種別の条件を満たす類似文書を探す。入力は文書と質問のベクトル、文書ごとの権限・種別の属性、検索条件とし、出力は条件に合う類似文書の一覧とする。
必要な元データは文書と過去の検索条件・頻度で、必要なラベルは文書ごとの権限・種別である。SIEVEの索引選定にセンサーは不要だが、文書をベクトルにする手段は別途要る。権限や文書の更新を索引へ反映する運用は、導入先で設計・検証する。
応用先の候補からNauhに相談できます。
導入時の検証
導入時の検証案 · 対象データでの再評価が必要です。
導入時の検証案:権限と種別の属性を確認した文書を集め、既存の方法で文書と質問のベクトルを用意する。過去の検索条件と頻度からSIEVEの索引候補を選び、全件用HNSW索引で探索して条件を適用する方法を比較基準にする。
必要な元データは文書、ベクトル、検索履歴で、ラベルは文書の属性と正解比較用の条件付き上位結果である。センサーは不要。目標再現率を固定し、検索時間、実測再現率、索引のメモリ量と構築時間を測る。条件の頻度や属性を変え、索引の再選定・更新が必要になる範囲を確かめる。
限界と課題
著者らは、将来の検索条件の分布が過去の履歴に従うと仮定する。また、属性や条件の形式が索引選定の質に影響し得ると述べる。最適化の対象は平均再現率であり、個々の問い合わせで目標値を保証するものではない。
編集上の検証事項は、条件の頻度が変わった際の検索時間と再現率、属性更新後の索引維持費用、推定時間と実測時間のずれである。閲覧権限に使うなら、検索結果の全件が権限条件を満たすことも別途確認する必要がある。
出典
元のタイトル・要旨を確認する(英語)
SIEVE: Effective Filtered Vector Search with Collection of Indexes
Many real-world tasks such as recommending videos with the kids tag can be reduced to finding most similar vectors associated with hard predicates. This task, filtered vector search, is challenging as prior state-of-the-art graph-based (unfiltered) similarity search techniques quickly degenerate when hard constraints are considered. That is, effective graph-based filtered similarity search relies on sufficient connectivity for reaching the most similar items within just a few hops. To consider predicates, recent works propose modifying graph traversal to visit only the items that may satisfy predicates. However, they fail to offer the just-a-few-hops property for a wide range of predicates: they must restrict predicates significantly or lose efficiency if only a small fraction of items satisfy predicates. We propose an opposite approach: instead of constraining traversal, we build many indexes each serving different predicate forms. For effective construction, we devise a three-dimensional analytical model capturing relationships among index size, search time, and recall, with which we follow a workload-aware approach to pack as many useful indexes as possible into a collection. At query time, the analytical model is employed yet again to discern the one that offers the fastest search at a given recall. We show superior performance and support on datasets with varying selectivities and forms: our approach achieves up to 8.06x speedup while having as low as 1% build time versus other indexes, with less than 2.15x memory of a standard HNSW graph and modest knowledge of past workloads.
論文本体の取得範囲に基づく解説。AIが作成した未校閲の記事です。性能の数値は著者の評価条件に依存します。応用例と検証計画は編集上の提案です。解説更新:2026-10-01




