Vector database — ベクトルデータベース

From Systems analysis wiki
Jump to navigation Jump to search

ベクトルデータベース(Vector Database)は、非構造化データの高次元数値表現(ベクトル)を扱うために最適化された、専門的なストレージおよび検索システムです[1]。大規模言語モデル(LLM)の文脈では、効率的なセマンティック検索を可能にし、特にRAGアーキテクチャにおいて現代の人工知能システムの重要な構成要素となっています。

従来のリレーショナルデータベースが正確な一致を目的とするのとは異なり、ベクトルデータベースは高次元空間内で意味的に類似したオブジェクトを見つけ出す近似最近傍探索(Approximate Nearest Neighbor, ANN)に特化しています[2]

ベクトルデータベースの基礎

Embeddings - ベクトル表現

ベクトル表現embeddings)とは、テキスト、画像、音声などのデータをベクトル形式の数値表現に変換したものです。その重要な原則は、意味的に類似したオブジェクト(例:似た意味を持つ単語)が、このベクトル空間内で互いに近くに配置されることです[3]

現代のテキスト埋め込みは、トランスフォーマーアーキテクチャをベースにしたモデルを使用して生成されます。これらのモデルは、自己注意機構(self-attention)を用いて文脈を理解します。このような表現の次元数は、ほとんどの現代的なモデルで256から1024次元以上になります[4]

類似度メトリクス

ベクトル間の「距離」や類似度を測定するために、さまざまなメトリクスが使用されます:

  • コサイン類似度cosine similarity): 2つのベクトル間の角度のコサインを測定します。ベクトルの大きさではなく方向を考慮するため、特にテキスト埋め込みに効果的です[5]
  • ユークリッド距離(L2): 空間における2点間の標準的な直線距離です。
  • 内積dot product): コサイン類似度に似ていますが、正規化されていません[6]

インデックス作成アルゴリズム

高次元空間での高速検索には、専門のANNアルゴリズムが使用されます。

HNSW (Hierarchical Navigable Small World) - 階層的ナビゲーブルスモールワールド

HNSWアルゴリズムは、「スモールワールド」の概念と多層の階層的グラフ構造を利用します。上位層は空間内を高速に移動するための長いリンク(粗い検索)を持ち、下位層は正確な近傍を見つけるための短いリンクを持ちます。HNSWは対数的な時間計算量O(log N)を示し、現代のほとんどのベクトルデータベースで推奨される選択肢となっています[7]

IVF (Inverted File) - 転置ファイル

IVFアルゴリズムは、k-meansクラスタリングを用いて空間をクラスターに分割します。検索は最も近い少数のクラスター内に限定して行われるため、プロセスが大幅に高速化されます。クラスターの数は通常、データセット内のベクトル総数をNとして√Nに設定されます[8]

LSH (Locality-Sensitive Hashing) - 局所性鋭敏型ハッシュ法

LSHアルゴリズムは、近接するベクトルに対して高い確率で同じハッシュ値を生成するハッシュ関数のファミリーを使用します。これにより、類似したオブジェクトを迅速にグループ化できます[9]

代表的なベクトルデータベース

  • Pinecone: serverlessアーキテクチャを持つ、フルマネージドのクラウドベクトルデータベース。
  • Qdrant: 高度なフィルタリングとACID準拠のトランザクションをサポートする、Rustで書かれた高性能データベース。
  • Milvus: クラウドネイティブアーキテクチャを持つ、スケーラブルなオープンソースデータベース。GPUアクセラレーション対応のインデックスを含む、多数のインデックスタイプをサポート。
  • Weaviate: GraphQL APIとナレッジグラフをサポートする、オープンソースのベクトルデータベース。
  • Chroma: 迅速なプロトタイピングと実験に最適化された、軽量なオープンソースデータベース。
  • FAISS: Metaが開発したライブラリ。本格的なデータベースではありませんが、静的データに対して高性能なインデックス作成アルゴリズムを提供します。

LLMとの応用:RAGアーキテクチャ

Retrieval-Augmented Generation (RAG)は、ベクトル検索を通じて外部の知識ベースでLLMを補強するアーキテクチャです。RAGシステムは、主に2つのコンポーネントで構成されます[10]

  1. レトリーバー(Retriever): ユーザーのクエリに基づいて関連情報を見つけるためにベクトルデータベースを使用する検索コンポーネント。
  2. ジェネレーター(Generator): 元のクエリとレトリーバーが見つけた情報を使用して回答を生成するLLM。

RAGの効果的な運用のために、ハイブリッド検索が利用されます。これは、セマンティック検索(ベクトル検索)とレキシカル検索(キーワード検索、例:BM25)を組み合わせたもので、より正確で関連性の高い結果を提供します。

トレンドと将来の発展

ベクトルデータベース市場は爆発的な成長を遂げており、2023年の19.8億ドルから2029年には71.3億ドルに達すると予測されています(CAGR 23.7%)[11]。主な発展の方向性は以下の通りです:

  • マルチモーダルシステム: 単一のベクトル空間でテキスト、画像、音声、動画を同時に検索する機能のサポート。
  • 自動最適化: MLを利用して、最適なインデックスとパラメータを自動的に選択。
  • エッジコンピューティング: モバイルおよびIoTデバイス向けのコンパクトなソリューションの開発。
  • 量子コンピューティング: 類似性検索の指数関数的な高速化の可能性。
  • ニューロモーフィックチップ: 検索実行時の超低消費電力を実現するため、脳の働きを模倣。

関連リンク

参考文献

  • Malkov, Y.A.; Yashunin, D.A. (2016). Efficient and Robust Approximate Nearest Neighbor Search Using Hierarchical Navigable Small World Graphs. arXiv:1603.09320.
  • Johnson, J.; Douze, M.; Jégou, H. (2017). Billion-Scale Similarity Search with GPUs. arXiv:1702.08734.
  • Datar, M. et al. (2004). Locality-Sensitive Hashing Scheme Based on p-Stable Distributions. SoCG 2004 paper.
  • Guo, N. et al. (2020). ScaNN: Efficient Vector Similarity Search at Scale. In: Proc. ACM SIGKDD 2020, pp. 1571-1580. DOI:10.1145/3394486.3403339.
  • Lewis, P. et al. (2020). Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks. arXiv:2005.11401.
  • Wang, X. et al. (2021). Milvus: A Purpose-Built Vector Data Management System. In: SIGMOD 2021. DOI:10.1145/3448016.3457550.
  • Lee, J. et al. (2022). OOD-DiskANN: Efficient and Scalable Graph ANNS for Out-of-Distribution Queries. arXiv:2211.12850.
  • Fan, D. et al. (2023). Survey of Vector Database Management Systems. arXiv:2310.14021.
  • Ren, R. et al. (2024). Survey of Filtered Approximate Nearest Neighbor Search over Vector-Scalar Hybrid Data. arXiv:2505.06501.
  • Zhao, H. et al. (2024). Starling: An I/O-Efficient Disk-Resident Graph Index Framework for High-Dimensional Vector Similarity Search. arXiv:2401.02116.
  • Liu, Y. et al. (2025). Memory-Efficient Similarity Search at Billion-Scale: A Taxonomy and Analysis of Vector Compression Techniques. ResearchGate preprint.

脚注

  1. “What Is a Vector Database?”. CloudRaft. [1]
  2. “What is a Vector Database?”. Qdrant Blog. [2]
  3. “What Are Vector Embeddings?”. LakeFS. [3]
  4. “What are embeddings?”. Zilliz. [4]
  5. Sahoo, A., Maiti, J. “A Comparative Study of Similarity Metrics for Textual Embeddings”. arXiv:2501.01234. [5]
  6. “Vector search and dense vector fields”. Elastic. [6]
  7. Malkov, Y. A., Yashunin, D. A. “Efficient and robust approximate nearest neighbor search using Hierarchical Navigable Small World graphs”. arXiv:1603.09320. [7]
  8. “The index IVF”. FAISS Wiki. [8]
  9. Datar, M., et al. “Locality-Sensitive Hashing Scheme Based on p-Stable Distributions”. Symposium on Computational Geometry. [9]
  10. Lewis, P., et al. “Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks”. arXiv:2005.11401. [10]
  11. “Vector Database Global Market Report 2024”. The Business Research Company. [11]