ベクトル・データベースとは。

Jeffrey Erickson | コンテンツ・ストラテジスト | 2024年10月29日

あまり知られていないベクトル・データ型が、生成AIを実現する重要な要素として最近注目されています。しかし、ベクトル(およびそれらを保存、分析できるデータベース)は、長年にわたり、注目されないままでした。これらは、都市計画や、輸送ロジスティクス、環境分析のための地理空間マッピングと分析に活用されていました。最近では、ベクトルは、小売製品の推奨エンジンや、音楽・動画のストリーミング・サイトにも使用されています。

生成AIは、これらのユースケースに基づいて構築され、検索拡張生成(RAG)を含む関連テクノロジーとともに、ベクトルおよびベクトル・データベースを使用して新しいイノベーションへの扉を開きます。

ベクトルとは。

ベクトルは、オブジェクトの特徴を数式で表現する手法で、オブジェクトが単語、文、ドキュメント、イメージ、動画またはオーディオ・ファイルのいずれであるかを表します。このような非構造化コンテンツの比較や検索はコンピュータにとって困難であるため、ベクトルが必要になります。一方、ベクトルの比較や検索ははるかに簡単で、十分に理解されている数学に基づいています。

ベクトルは、その基となるデータ・オブジェクトとともに、またはデータ・オブジェクトへのリンクとともにデータベースに保存されます。数学的に互いに近いベクトルは、類似の特徴を持つオブジェクトを記述する傾向があるため、それらをすばやく比較または検索し、同じようなオブジェクトを返すことができます。特定の特徴のみが識別されるクエリ・ベクトルを形成することもできます。検索では、クエリ・ベクトルで指定された特徴に似た特徴を持つオブジェクトが返されます。

ベクトル・データベースとは。

ベクトル・データベースは、埋込みベクトルをネイティブに格納・管理し、ドキュメント、イメージ、動画、オーディオなど、記述した非構造化データを処理できる任意のデータベースです。

生成AIのベクトル検索の重要性により、テクノロジー業界は多くの専門的なスタンドアロン・ベクトル・データベースを生成し、企業はデータ・インフラストラクチャに追加できます。一方、Oracle Databaseやオープン・ソースのMySQLデータベースなど、人気が確立された製品は、他の多くのデータ型とともにネイティブにベクトル・データ型が組み込まれています。これにより、ビジネス・データとセマンティク・データの両方のデータ型がシングル・データベースで利用できるようになるため、両方のデータの組み合わせに対する検索がより高速かつ正確になります。また、このアプローチでは、ビジネスのプライマリ・データベースに加えて、別の特殊なベクトル・データベースを使用するときに発生するデータの整合性の問題を回避できます。


動画: ベクトル・データベースとは。ビジネス・ニーズにどのように対応するのか。



ベクトル・インデックスとベクトル・データベース

ベクトル・インデックスとベクトル・データベースはどちらも、ベクトル(ドキュメント、イメージ、動画またはオーディオ・ファイルなど、オブジェクトの特徴を表す数値のセット)を効率的に格納および取得するように設計されています。ただし、特性やユースケースは異なります。ベクトル・インデックスは、主に「最近傍検索」に使用されます。この検索では、特定のクエリ・ベクトルに最も近いベクトルを見つけることが目的です。インデックスは、推奨エンジンなど、迅速かつ正確な類似性検索を必要とするアプリケーションに適しています。一方、ベクトル・データベースは、組織が取得および分析のためにベクトルを格納する場所です。エンタープライズ・クラスのベクトル・データベースは、メタデータ・ストレージ、データのバージョニング、その他のシステムとの統合など、「最近傍検索」以外にも便利な機能を提供します。

主な違い

ベクトル・インデックスとベクトル・データベースの主な違いは、ベクトル・インデックスには、テキスト、イメージ、オーディオ・ファイルなどの非構造化データの属性に関する情報が格納されることです。この情報は、ベクトルと呼ばれる数値のセットで表されます。ベクトル・インデックスは、このデータを保持し、データベースがオブジェクトをすばやく識別して照合できるように索引付けします。

ベクトル・データベースには、これらのインデックスとそれらが記述するオブジェクトが格納されます。ただし、データベースがベクトル・インデックスとデータ・オブジェクトを配置する方法は異なります。Oracle Databaseなどのベクトル対応データベースは、データ・オブジェクトの記憶域と、データおよびベクトルの検索方法を分離します。これにより、メタデータや最新のビジネス・データに対するSQLの成熟したクエリ機能を使用しながら、ベクトル検索の速度とコンテキストに基づく適合性を組み合わせることができます。このアプローチは、たとえば、関連する小売製品のベクトル検索でも最新の価格と在庫を同時に提供できることを意味します。

主なポイント

  • ベクトル・データベースは、埋込みベクトルと呼ばれるデータのタイプを使用して、オブジェクトを効率的に格納および操作します。
  • ベクトル埋込みはオブジェクトの特徴を記述し、ベクトル対応データベースはそれらのベクトルを格納し、高速検索を容易にするインデックスを作成します。
  • ベクトルおよびベクトル対応データベースは、新しいものではなく、マッピングやデータ分析などの特殊なユースケースに長い間使用されてきました。
  • 最近では、埋込みベクトルとベクトル・データベースは、類似製品の検索、生体認証パターン認識、異常の検出、推奨エンジンなどに使用されています。
  • 企業は現在、ベクトル検索、生成AI、検索拡張生成テクノロジーを組み合わせて、ドキュメントやコミュニケーションの倉庫から選択したアイテムを共有して、生成AIからより関連性の高い結果を得ています。その結果、RAGによって提供される追加データに基づいて、より正確で状況に適した迅速な応答が得られます。

ベクトル・データベースの説明

企業は、生成AIモデルを微調整にコストと労力をかける代わりに、LLMが出力を生成するために使用するデータをキュレートしています。最新の企業情報を含むベクトル・データベースを使用しています。検索拡張生成(RAG)と呼ばれるこのアーキテクチャ・アプローチによって、大量の一般データでトレーニングされたLLMは、ベクトル・データベース内で検出されたプライベート・データを活用して、より優れた応答を生成します。

たとえば、LLMを活用したチャットボットが、一般的なメッセージではなく小売業者の顧客レコードやEメール通信にアクセスできれば、「注文した商品は出荷されましたか」などの問い合わせに対して、より有用でパーソナライズされた回答を提供できます。

RAGは、ベクトル・データベースのどのドキュメントがその出力を通知したかを引用して、生成AIモデルの信頼性と正確性を向上させることもできます。

ベクトル・データベースが重要な理由。

当然のことながら、ベクトルの保存と分析に最適化されたデータベースの使用が増加しています。かつては主にマッピングとデータ分析に使用されていたベクトル・データベースは、主要な小売業者や音楽や動画ストリーミング・プロバイダーが一般的に使用する推奨エンジン、仮想アシスタント、生体認証パターン認識、異常検出などの重要な基盤技術となっています。現在では、ベクトル・データベースは新たに画期的な用途を見出しました。それは、生成AIモデルの出力に情報を提供するためにアクセスできる大量の非構造化データを格納することです。

MySQLやOracle Databaseなどの確立されたデータベースでは、ベクトル・データをネイティブ・データ型として、JSON、グラフ、空間、リレーショナルなどのその他の組織のデータとともに組み込む傾向が高まっています。この統合により、生成AI操作のためにデータを別のデータベースに移動する必要がなくなり、プロセスが簡素化され、貴重なデータが信頼できるリポジトリに残ります。

生成AIのユースケースの増加により、ベクトル・データ型の管理が追加された既存のNoSQLリレーショナル・データベースに加えて、市場には多くの新しいベクトル・データベースが登場しています。

ベクトル・データベースの仕組み。

ベクトル・データベースは、データをベクトルとして格納・処理することにより機能します。ベクトル・データベースは、多次元空間におけるオブジェクトの特徴を数学的に表現したものです。これにより、イメージ、オーディオ、動画、センサー・データなどの複雑なデータ型を効率的に格納および問い合わせできるため、ベクトルは推奨システム、自然言語処理、イメージ認識などのユースケースに最適です。

操作は次のいくつかのステップで行われます。

  • ベクトル化。ベクトルは、非構造化データの内容や特徴を表現するために作成できます。この非構造化データベースは、データベース表に格納されたテキスト形式、またはファイル・システムに格納されたドキュメント形式にすることができます。
  • インデックス作成ベクトル・データベースは、ベクトル・インデックスを使用してベクトルを階層的に編成し、効率的な検索と取得を可能にします。
  • クエリ。ベクトル・データを問い合わせるには、ベクトル・データベースはクエリ・ベクトルを使用してベクトル演算を実行します。ベクトルが数学的に近いほど、ベクトルが表すオブジェクトは類似しているといえます。通常、このプロセスでは、最も類似した5つのアイテムなどの小さな結果セットが返されます。
  • 後処理。ベクトル・データベースは、クエリ・ベクトルの最近傍を取得した後、オプションで結果セットの行を再ランク付けできます。再ランク付けはベクトルクエリと比較するとコストのかかる操作ですが、既存のベクトルクエリの結果に対しより適切な順序を提供できます。
このダイアグラムは、ベクトル・データベースがストリーミング・サービスでsci-fiバフに適したムービーを推奨するのにどのように役立つかを示しています。

ベクトル・データベースのタイプ

ベクトル・データベースは、列型などの記憶域構造によって、またはインメモリ・データベースなどの実装に基づいて、さまざまなタイプに分類できます。各タイプにはそれぞれの利点があり、どのタイプを選択するかは、特定の要件とユースケースに基づいて決定する必要があります。

  • カラム型データベース

    カラム型データベースは、データを列に格納し、ディスク上でグループ化します。この配置により、分析には通常、表の列からのデータのフィルタリングと結合が含まれるため、データ分析が高速化されます。データベースでは、レコードを行形式で格納することもできます。これは、レコードの単一アイテムを更新しているトランザクションに役立ちます。ただし、データ分析では、カラム型データベースを使用すると、アナリストは数千または数百万件のレコードのすべての列を非常に迅速にスキャンできます。

  • ドキュメント・ストア

    ドキュメント・ストア・データベース(ドキュメント指向型データベース)は、ドキュメント指向の情報を管理、取得、格納するプログラムおよびデータ・ストレージ・システムです。ドキュメント・データベースは、JSONのようなドキュメントにデータを柔軟に格納します。このドキュメントは、多様で動的なデータ構造に適しています。これらは、表を使用して固定スキーマでデータを編成するリレーショナル・データベースとは異なります。

  • グラフ・データベース

    グラフ分析は、データ・ポイントをノードとして、関係をエッジとして使用して、グラフ形式でデータを分析するプロセスです。データをこのように見ると、これまで明らかになっていなかったつながりや関係を発見するのに役立ちます。グラフ分析には、グラフ形式をサポートできるデータベースが必要です。これは、専用のグラフ・データベースである場合もあれば、グラフを含む複数のデータ・モデルをサポートする統合データベースである場合もあります。

  • インメモリ・データベース

    インメモリ・データベースは、ストレージ・ディスクではなく、アプリケーションのメモリ層にデータを格納し、操作します。このタイプの構造は、分析クエリを高速化するために、列ストア機能やベクトル化されたクエリ・プランと組み合わせられることがよくあります。このタイプのデータ・ストアは、グローバルな通信や、リアルタイム・データに基づいて意思決定を行う必要がある企業での非常に高速な処理をサポートするのに適しています。

  • キー/値ストア

    キー/値ストア(キー値データベースとも呼ばれる)は、オンライン・ストア内のアイテムなど、頻繁に変更されるデータをすばやく格納して問い合わせる方法です。キー/値ストアはNoSQLタイプのデータベースで、キー値を使用して特定のレコードを問い合わせまたは更新のために特定します。

  • 空間データベース

    空間データベースは、空間データを格納・管理します。空間データは、空間内のオブジェクトの物理的な場所およびジオメトリ・プロパティに関する情報を表します。これは、インデックス作成手法およびクエリ操作によって行われます。空間データベースは、オンライン・マッピング、分析、出荷ロジスティクス業務に使用されます。

  • 時系列データベース

    時系列データベースは、タイムスタンプ付きデータを効率的に格納および分析するために使用され、各データ・ポイントは特定のタイムスタンプまたは時間間隔に関連付けられます。これらのデータベースは、一般的にログ分析や財務に依存するITモニタリング・システムで使用されます。

  • LLM用ベクトル・データベース

    ベクトル・データベースは、ローカル組織またはビジネスから提供される最新情報へのアクセスを提供して、商用またはオープン・ソースの大規模言語モデルを強化します。これにより、LLMの出力の関連性が高まり、その組織に関係する人々にとってパーソナライズされたものになります。

ベクトル・データベースの活用が向いているユーザー。

ベクトル・データベースは、小売業や物流業界、自律型車両を操縦するシステムなど、大量の空間データやジオメトリ・データを扱うさまざまなアプリケーションや組織で使用されています。現在、高度なAIと機械学習を探求する企業もベクトル・データベースを採用しています。たとえば、生成AIモデルは、ローカルで最新のデータを使用して出力を改善するためにベクトル・データベースに依存します。

その他の具体的なユースケースには、次のものがあります。

  • 金融企業は、いくつかの方法でベクトルを使用します。たとえば、ポートフォリオ分析では、ベクトルはクライアントのポートフォリオの側面を表すことができます。また、経時的なアカウント・パフォーマンスの追跡にも使用できます。
  • 医療研究者は、研究と臨床試験をサポートするためにベクトル・データベースを使用します。患者の人口統計、場所、治療結果に関連するデータを保存・分析します。これによって研究者は治療の有効性に対するさまざまな要因の影響を評価できます。
  • オンライン小売業者は、ベクトル・データベースを使用して過去の購入や閲覧習慣を参照し、顧客が好むと思われる製品を推奨します。
  • 出荷ロジスティクスの会社は、ベクトル・データベースを使用して場所や距離に関する情報を格納し、移動中のオブジェクトを正確にマッピングおよび追跡できます。
  • ストリーミング・サービスでは、ベクトルを使用して推奨エンジンを実行し、ジャンル、リード・アクター、リリース日、レビューなどの多くの要因に基づいて推奨事項を提示できます。

ベクトル・データベースの使用方法。

ベクトル・データベースのユースケースは、それらに依存する組織やアプリケーションと同じくらい多様です。リアルタイムのデータ分析、財務システム、推奨エンジンに加えて、ベクトル・データベースは、画像認識や自然言語処理などのタスクに一般的に必要な複雑なデータ構造を処理するように最適化されています。

データを効率的に格納および処理し、ベクトル・データベースにより、企業は、次のような幅広いアプリケーションに複雑なデータ構造を活用できます。

  • 推奨システムベクター埋込みは、購入者や閲覧者が興味を持ちそうな類似の製品やエンターテインメントのオプションをすばやく見つけるために使用されます。
  • 検索エンジン検索エンジンはベクトル・データベースを使用して、ベクトル埋込みでクエリやドキュメントをインデックス化し、類似の検索結果や類似ドキュメントをすばやく見つけることができます。
  • パーソナライズ。これらのシステムでは、人口統計情報と過去の選択肢をベクトル検索のガイドとして使用し、特定のユーザーに対して一致する可能性のある製品またはサービスを特定します。
  • 異常検出ベクトル・データベースを使用すると、非常に大きなデータセットでも、異常なベクトルを効率的に検索できます。これは、セキュリティ・チームがデータ侵害の試みを見つけ、クレジット・カード会社が不正取引を停止するのに役立ちます。
  • ゲノミクスとバイオインフォマティクスベクトルとベクトル・データベースはパターン・マッチングおよび異常検出に適しているため、研究者が大量の遺伝データを比較するために遺伝子配列を照合するのに役立ちます。これは、病気の予測や新薬の発見などの分野に役立ちます。
  • 医療・医療研究。医療機関は、ベクトル・データベースを使用して、医療記録、人口統計データ、研究結果、さらには遺伝情報などの患者ケアに関連する情報を格納・管理しています。臨床試験では、試験場、患者の人口統計、治療結果、有害事象に関連する地理空間データを分析して、治療の有効性を判断できます。
  • 画像および動画検索。画像および動画の取得操作では、類似性検索とセマンティック検索にベクトル・データベースが使用され、膨大なオプション・カタログの中から画像や動画をすばやく特定します。

ベクトル・データベースの利点

ベクトル・データベースには、高速類似性検索を含む多くの利点があります。効率的な最近傍検索に最適化されており、大規模なデータセットでも類似アイテムをすばやく取得できます。このため、非構造化データのリアルタイム処理と分析を必要とするアプリケーションや業界、新しい生成AIのユースケースに最適です。

その他にも、次のような利点があります。

  • 費用対効果。ベクトル・データベース、特にPostGIS、ベクトル拡張を使用したMySQL、ネイティブ・ベクトル・ストアを使用したマルチモデル・データベースなどのオープン・ソース・オプションは、地理空間分析および生成AIモデルに対してコスト効果の高いソリューションを提供します。
  • 効率的なストレージ。ベクトル・データベースにおける空間インデックス作成手法で、ベクトル化されたデータを効率的に格納、編成ができます。
  • 迅速な検索結果。ベクトル・データベースは、オブジェクトの多数の属性に基づいてデータを迅速に取得できるように索引付けされています。関係と近接性に注目し、これらを使用して検索をすばやく実行することによってこれを実現しています。
  • 機械学習との統合。ベクトル・データベースは、機械学習フレームワークやアルゴリズムと統合するように設計されており、予測モデル、異常検出、クラスタリング、その他の機械学習ベースの分析の開発を促進します。
  • パーソナライズ。ベクトル・データベースを使用すると、小売業者、音楽ストリーミング・サービス、さらにはヘルスケア・ビジネスでも、サービスをカスタマイズして、個人の好みやニーズに合ったものをすばやく見つけることができます。
  • リアルタイム分析。ベクトル・データベースは、迅速なクエリ応答時間と効率的なデータ処理を実現するために、インメモリ操作をサポートできます。これにより、日々の意思決定のためにリアルタイム分析を実行できます。
  • 開発の複雑さを軽減。ベクトル・データベースは、データ管理とアプリケーション開発の複雑さを抽象化するAPI、ライブラリ、クエリ言語を提供できます。これにより、アプリケーション開発プロセスにかかる時間が大幅に短縮され、コストが削減されます。
  • スケーラビリティ。ベクトル・データベースは、数百万、あるいは数十億のベクトル・オブジェクトを効率的に管理・処理でき、適切なインフラストラクチャによって、需要に応じて迅速に拡張できます。
  • 高い汎用性。ベクトル・データベースは、オーディオ録音、テキスト・ドキュメント、イメージなど、幅広い非構造化データをサポートしています。この汎用性により、多くのユースケースやアプリケーションに対応できます。

オラクルはお客様のベクトル要件をどのようにサポートしますか。

生成AIを使用する場合でも、ベクトルを活用するほぼすべての処理においても、Oracleはサポートを提供できます。

世界で最も人気のあるエンタープライズ・データベースであるOracle Databaseは、ベクトルを含むすべてのビジネス・データのためのシングル・データ・プラットフォームを提供します。さまざまなデータベースを監督および同期する必要なく、会社のデータに対する類似性検索の機能を簡単に活用できます。AIベクトル検索では、構造化データと非構造化データの両方に対して、そのセマンティクスや意味、値を理解して検索を実行できます。

リレーショナル・データやJSONドキュメント、グラフ、地理空間データ、テキスト、ベクトルを1つのデータベースに組み合わせることにより、アプリケーションの新機能を迅速に構築できます。Oracle DatabaseのAIベクトル検索は、任意のGenAIサービスとともにRAGパイプラインでも使用できます。また、OracleのHeatWave MySQLデータベース・サービスは、ベクトル検索やその他のユースケースをサポートするためにベクトルをネイティブに処理します。たとえば、Oracle Cloud Infrastructure(OCI)のRAGサービスと組み合わせて使用すると、生成AIインターフェイスを独自のドキュメントに持ち込み、組織の運用データのエキスパートであるAIを提供できます。

ベクトル・データベースは、カスタマー・サービスに革命をもたらすチャットボットや医療を変革するアルゴリズムなど、魅力的なAIユースケースにとってきわめて重要です。企業が現在どのようにベクトルの力を活用しているかをご覧ください。

ベクトル・データベースのFAQ

ベクトル・データベースはどのような場合に使用しますか。

ベクトル・データベースは、出荷ロジスティクスや環境調査などの地理空間アプリケーション、小売やオンライン・エンターテインメント・オプションの推奨事項、または最近では個々の組織による生成AIをサポートするデータのプライマリ・ストアハウスなど、さまざまなユースケースに使用できます。

Netflixはベクトル・データベースを使用していますか。

Netflixは、ベクトル・データベースを使用して一般的な推奨エンジンをサポートすると発表しました。カタログ内のすべてのエンターテインメントにベクトル埋込みを適用し、ベクトル・データベースは同様のタイトルのリアルタイム検索を可能にします。