メタデータフィルタとは
Metadata Filter / メタデータフィルタリング
文書に付随するメタデータの条件でベクトル検索の対象を絞り込む仕組み
ひとことで言うと
日付や種類などの付加情報を条件にして、検索対象を絞り込む仕組み。
概要
メタデータフィルタとは、ベクトル検索する際に、文書に付随するメタデータ(作成日・カテゴリ・著者・アクセス権限等)の条件を指定して検索対象をあらかじめ絞り込む仕組み。 埋め込みベクトルの類似度だけでは「最新の文書に限定する」「特定のカテゴリだけを対象にする」「特定ユーザーが閲覧権限を持つ文書だけを返す」といった要件を満たせないため、多くのベクトルデータベースがベクトル類似度検索とメタデータによる条件絞り込みを組み合わせて実行できる機能を提供している。 アクセス権限に基づくフィルタリングは、本来閲覧権限のないユーザーへ文書内容がLLMの回答を通じて漏れることを防ぐセキュリティ上の要件としても重要。
背景
埋め込みベクトルは文書の意味的な内容を表現するが、日付やアクセス権限といった構造化された属性情報までは表現しない。 実運用のRAGシステムでは、意味的な関連性に加えてこうした構造化属性による絞り込みが必要になる場面が多く、メタデータフィルタはこの需要へ応えるために整備された。
アーキテクチャ
各ベクトルに、文書ID・カテゴリ・作成日・アクセス権限といったメタデータをキーと値のペアで付与して格納する。 検索時には、メタデータに対する条件式(等号・範囲・所属集合等)を指定し、その条件を満たすベクトルの集合内でのみ類似度を計算する(プレフィルタリング)か、類似度検索の結果に事後的に条件を適用する(ポストフィルタリング)。
利点
- 意味的な類似度だけでは表現できない、日付やアクセス権限等の構造化条件を検索に組み込める
- マルチテナントのアプリケーションで、テナントやユーザーごとに検索範囲を分離できる
欠点
- フィルタ条件を厳しくしすぎると候補数が少なくなりすぎ、十分な検索結果を得にくくなる
- プレフィルタリングの実装によっては、フィルタ処理がボトルネックとなり検索速度に影響することがある
比較
- ベクトルデータベース — メタデータフィルタは、多くのベクトルデータベースが提供するベクトル類似度検索を補完する機能
- ハイブリッド検索 — メタデータフィルタは構造化属性による絞り込み、ハイブリッド検索は検索アルゴリズム自体の組み合わせという点で目的が異なる
関連用語
よくある質問
参考文献
- DocumentationPinecone: Metadata Filtering