ベクトル データベースとは、とは、ベクトル エンベディング、またはテキスト、画像、音声などの非構造化データの数値表現を保存、インデックス付け、クエリできるデータベースです。
Google Cloud は、AlloyDB for PostgreSQL、Spanner、BigQuery などのマネージド サービスにこれらのエンタープライズ グレードの機能を直接統合しており、個別のインフラストラクチャを管理することなくインテリジェントなアプリケーションを構築できます。
ベクトル エンベディングは、データの数値表現であり、通常は浮動小数点数の配列として定義され、テキスト、画像、音声などの複雑な非構造化データを、ML モデルが処理できる形式に変換します。
このデータをベクトル空間にマッピングすることで、エンベディングはセマンティックな意味を捉えます。類似するアイテムは互いに近くに配置され、類似しないアイテムは互いに離れて配置されます。この空間的関係により、システムはキーワードの一致だけでなく、コンテキストと意味に基づいてデータポイント間の関連性を識別することが可能になります。
ベクトル エンベディングのみをサポートする特殊なデータベースもあれば、ベクトル エンベディングに加えて、さまざまなデータやクエリの種類をサポートするデータベースもあります。これは、現実世界の豊富なデータに基づいて生成 AI アプリケーションを構築するうえで非常に重要です。ベクトル エンベディングを使用したセマンティック クエリのメリットが明らかになるにつれて、ほとんどのデータベースでベクトルがサポートされるようになり、将来的には、すべてのデータベースがベクトル データベースになると Google は考えています。
Vertex AI のベクトル検索が高パフォーマンスの生成 AI アプリケーションの構築にどのように役立つかを確認します。Vertex AI のベクトル検索は、Google Research が開発したスケーラブルで効率的なベクトル検索技術であるスケーラブルな最近傍探索(ScaNN)をベースにしており、大規模なデータセットやリアルタイム検索の要件を処理するのに最適です。ベクトル検索とエンベディングの詳細については、以下の動画をご覧ください。また、実際に使用を開始するには、クイックスタート ガイドをご覧ください。
大量のベクトルを効率的にクエリするには、従来のテキスト フィールドや数値フィールドとは異なる、特殊なインデックス作成と検索戦略が必要です。ベクトルには単一の論理的順序がないため、ベクトル データベースは以下のメカニズムを使用してデータを取得します。
ベクトル エンベディングは、複雑なデータのセマンティックな意味を捉えます。効率的なインデックス作成と検索を提供するベクトル データベースと組み合わせることで、デベロッパーは幅広いインテリジェント アプリケーションやデータ処理ツールを構築できます。
ベクトル データベースを使用すると、デベロッパーはコラボレーション フィルタリングを超えるパーソナライズ システムを構築できます。ユーザーの行動とプロダクトの属性をベクトルとして表現することで、アプリケーションで類似アイテムを特定したり、ユーザーの好みに合ったコンテンツをリアルタイムでマッチングさせたりできます。このアーキテクチャは、e コマースのプロダクト提案、コンテンツ フィード、メディア ストリーミングの推奨事項をサポートしています。
従来のキーワード検索とは異なり、ベクトル データベースでは、ユーザーの意図を理解するセマンティック検索アプリケーションを利用できます。デベロッパーは、ユーザーが正確なフレーズではなくコンセプトに基づいてクエリを実行できる検索エクスペリエンスを構築できます。さらに、ベクトルでは同一空間で異なるデータ型を表現できるため、マルチモーダル検索ツールを構築することも可能です。これにより、ユーザーはテキストによる説明文で画像を検索したり、入力した画像から関連文書を見つけたりすることが可能となります。
ベクトル データベースは、大規模なデータセット内の不規則なパターンを特定するのに役立ちます。「正常」な動作やトランザクションを表すベクトル空間を確立することで、デベロッパーは確立されたクラスタから大きく逸れた外れ値をプログラムで検出できます。この機能は、金融詐欺検出システム、ネットワーク セキュリティ モニタリング ツール、IT インフラストラクチャの健全性チェックを構築するうえで重要です。
データ エンジニアリングのワークフローでは、ベクトル データベースを使用して、異なるデータセットの消去や統合を行えます。顧客レコードや商品リストのエンべディングを比較することで、テキストがわずかに異なる場合(「Main St.」と「Main Street」など)でも、システムは重複するエントリを識別できます。これにより、組織はデータの単一かつ正確なビューを維持できます。
AlloyDB for PostgreSQL は、PostgreSQL の互換性と Google のスケーラブルなインフラストラクチャを組み合わせたものです。標準の pgvector 拡張機能によるベクトル エンベディングの組み込みサポートが含まれており、Google の ScaNN インデックスで強化されています。これによりベクトルクエリを高速化し、「インライン フィルタリング」を可能にしています。これはベクトル類似性とメタデータ フィルタを同時に評価することでハイブリッド検索の最適化を図り、パフォーマンスを向上させるものです。
例: 不動産のハイブリッド検索
物件検索アプリで、ユーザーが「雰囲気」(「自然光が差し込むミッドセンチュリー モダン」など)に基づいて住宅を探します。また、「3 ベッドルーム」、「80 万ドル以下」、「学区 A 内」などの条件を守る必要があります。
Google Cloud は、ベクトル検索機能をコア データベース サービスに直接統合し、既存のデータとワークフローを活用して生成 AI を運用化できるよう支援します。
Spanner は、Google のグローバル分散データベースであり、トランザクション アプリケーションのベクトル検索をサポートしています。正確な最近傍アルゴリズムと近似最近傍アルゴリズムを使用して、高可用性でスケーラブルなベクトル検索を提供可能です。これにより、グローバル アプリケーションにおいて、厳格な整合性と信頼性を維持しながら、リアルタイムのレコメンデーションやセマンティック検索などの機能を実装できます。
例: e コマース向けのリアルタイムのレコメンデーション
グローバルな e コマース プラットフォームが、ユーザーの曖昧な検索(「雨の日のハイキングに最適なブーツ」など)に対応し、商品の在庫状況を即座に確認できるレコメンデーション エンジンを構築したいと考えています。
BigQuery では、データ ウェアハウスからデータを移動することなく、大規模なデータセットに対してベクトル分析を実行できます。VECTOR_SEARCH 関数を使用すると、標準の SQL を使用して類似性検索を実行できます。これは、分析ユースケースに特に有用です。たとえば、行動に基づく顧客のクラスタリングや、数十億行のデータにわたる類似の製品トレンドの特定などに利用できます。
例: 大規模なサイバーセキュリティ脅威検出
セキュリティ チームは、悪意のあるアクティビティを特定するために、ペタバイト規模のサーバーログを分析する必要があります。攻撃者は、完全一致キーワード検索を回避するために、コードをわずかに変更することがよくあります。