定義

ベクトル検索とは?

ベクトル検索は機械学習(ML)を活用して、テキストや画像などの非構造化データから意味とコンテキストを取り込み、数値表現に変換します。セマンティック検索で頻繁に使用されるベクトル検索は、近似近傍(ANN)アルゴリズムを使用して類似データを検索します。ベクトル検索は、従来のキーワード検索に比べてより高速で、より関連性の高い結果を生成できます。

Video thumbnail

ベクトル検索が重要な理由

何かを検索する際に、その名前がわからないということがよくあります。その機能は知っているし、説明ならできる場合もありますが、キーワードがないまま検索することになります。

ベクトル検索を使用すると、この制約を克服して意味内容から検索できます。つまり、類似性検索に基づいてクエリに対する回答をすばやく返すことができるのです。これは、ベクトル埋め込みが、テキストだけではなく、動画、画像、音声などの非構造化データを取り込むためです。つまり、コンテクストに基づいてクエリに対する回答をすばやく返すことができるのです。これは、ベクトル埋め込みによって同義語と関連性、つまり検索の背後にある本質的な意味が捉えられるためです。ベクトル検索にフィルタリングとアグリゲーションを組み合わせ、ハイブリッド検索を実装して従来のスコアリングと組み合わせて関連性を最適化することにより、検索エクスペリエンスを強化できます。

Video thumbnail

ベクトル検索エンジンの仕組み

ベクトルデータベース、セマンティック、またはコサイン検索とも呼ばれるベクトル検索エンジンは、特定の(ベクトル化された)クエリに対して最近傍を検出します。

従来の検索がキーワードの指定、語彙の類似性、単語の出現頻度に依存するのに対し、ベクトル検索エンジンでは埋め込み空間における距離を使用して類似性を表現します。関連データを見つけることは、クエリの最近傍を検索するということになります。

  • ベクトル埋め込み

    ベクトル埋め込みは、高次元(高密度)のベクトルに格納されたデータと関連するコンテキストを数値で表現したものです。一般的に、埋め込みを生成するモデルは、関連性と正確性の高い結果を生成するために、数百万件の例を使用して学習させることができます。場合によっては、ドキュメントの主な特徴を表すために収集または操作した数値データを埋め込みとして使用することもできます。必要なのは効率的に検索を実行する機能です。

  • 類似性スコア

    ベクトル検索エンジンの中心には、データやドキュメントが似ているならばそのベクトルも似ているという考え方があります。ベクトル埋め込みでクエリとドキュメントの両方にインデックスを作成することで、よく似たドキュメントをクエリの最近傍として検出できます。

  • ANNアルゴリズム

    k近傍(kNN)アルゴリズムなどの従来型最近傍アルゴリズムは、実行に時間がかかり、計算資源を使い尽くしてしまいます。ANNでは、高次元埋め込み空間で大規模かつ効率的な検索を実行できる代わりに、完璧な正解率という点でトレードオフが生じます。

ベクトル検索のユースケース

ベクトル検索は、次世代の検索エクスペリエンスを強化するだけでなく、さまざまな新しい可能性を切り開くものです。

  • セマンティック検索

    ベクトル検索は、セマンティック検索や類似性検索に威力を発揮します。意味とコンテキストが埋め込み内に取り込まれるため、ベクトル検索ではキーワードの完全一致を必要とせずにユーザーの意味する内容を検索できます。テキストデータ(ドキュメント)、画像、音声の処理が可能です。クエリに類似または関連する製品を簡単かつ迅速に見つけることができます。

  • 提案機能

    埋め込みを生成するモデルは、埋め込み空間にある類似ドキュメントとそのベクトルを認識するようになります。たとえば、アプリケーションは、自分と同じものを購入した他人が気に入っている映画や商品をユーザーに推奨することができます。ただし、埋め込みが人気や好感度といった何らかの尺度を対象メトリックとして導き出されたものであることを確認してください。

    提案機能によって複数の目標を達成することができるように、ベクトル距離を他のメトリックと組み合わせることができます。たとえば、製品の推奨度は満足度スコアや収益の可能性で順位付けします。

  • 質問と回答

    ドキュメントをテキスト埋め込みに変換することで、最新の自然言語処理(NLP)と組み合わせ、質問に対する全文回答を提供することができます。このアプローチにより、ユーザーは長いマニュアルを調べる必要がなくなり、チームはより迅速に回答を提供できるようになります。

    "質問と回答"変換器モデルは、ドキュメントのナレッジベースと現在の質問の両方について、テキストの埋め込み表現を取得し、最も近い一致を"回答"として返すことができます。

ベクトル検索で拡がる可能性

セマンティック検索だけではもったいない

  • 非構造化データの参照

    あらゆる非構造化データを検索できます。テキスト、画像、音声、センサー測定値の埋め込みを作成することができます。

  • メタデータによるフィルタリング

    ベクトル検索の結果はメタデータで絞り込むことができます。近似最近傍(ANN)検索に合わせてフィルターを適用することで、速度を犠牲にすることなく再現率を維持しましょう。

  • 検索結果を再順位付け

    ベクトルの類似性は、他のデータを使用して再順位付け可能な類似性スコアとして解釈することができます。これには、ベクトル検索データベース内に既にある静的フィールドや、機械学習モデルの適用による新たなプロパティも含まれます。

  • ハイブリッドスコアリング

    さらに最適化するために、ベクトルの類似性とBM25Fスコアを組み合わせます。これはハイブリッドスコアリングと呼ばれます。これにより、BM25Fを実装しながら、ベクトルの類似性によって画像を順位付けできるようになり、テキストの順位付けの精度が向上します。

導入方法

Elasticで容易になるベクトル検索とNLP

ベクトル検索を実装してNLPモデルを適用するために、山を動かすような労力を払う必要はありません。Elasticsearch Relevance Engine™(ESRE)を使用すると、生成的AIおよび大規模言語モデル(LLM)とともに使用できるAI検索アプリケーションを構築するためのツールキットが得られます。

ESREを使えば、革新的な検索アプリケーションの構築、埋め込みの生成、ベクトルの保存と検索、ElasticのLearned Sparse Encoderを使ったセマンティック検索の実装が可能になります。Elasticsearchをベクトルデータベースとして使用する方法の詳細をご確認ください。

Video thumbnail
  • 設定不要のセマンティック検索

    Elastic Learned Sparse Encoderは、すぐに使えてドメイン適応が不要な、高関連性セマンティック検索を提供します。検索アプリを設定する際にワンクリックで利用できます。このモデルは、教育プロセス中に学習した関連キーワードと関連性スコアを使用してクエリを拡張するため、同義語を構成する必要がなく、高密度ベクトル埋め込みとは違って、容易に解釈できます。

  • 大規模言語モデル

    (公開の教育用データだけでなく)プライベートデータを使用してビジネス固有の情報でLLMを教育できます。Elasticsearchを使用して、お好みのLLMと統合されたAPIやプラグインで生成的AIにアクセスできます。

  • テキスト埋め込み、その他 

    Elasticでデータにセンチメントやその他のカテゴリーを割り当てる方法について説明します。固有表現抽出(NER)を適用し、追加のメタデータによって検索エクスペリエンスを向上できます。