用語集

ベクトル検索

NLP、ビジュアル検索、推薦システムなどのデータ検索における意味的類似性を可能にするベクトル検索が、AIにどのような革命をもたらすかをご覧ください!

Ultralytics HUB で
を使ってYOLO モデルをシンプルにトレーニングする。

さらに詳しく

ベクトル検索は、人工知能(AI)や機械学習(ML)で使われる強力な技法で、単にキーワードが一致するだけでなく、意味的に類似したアイテムを見つけることができる。ベクトル検索は、テキスト文書、画像、オーディオクリップ、ユーザープロファイルなどのデータポイントを、エンベッドと呼ばれる数値ベクトルで表現することで動作します。これらの埋め込みは、データの根本的な意味や特徴を捉えている。次にベクトル検索は、高次元空間において、与えられたクエリ・ベクトルに「最も近い」データセット内のベクトルを、通常コサイン類似度やユークリッド距離のような距離メトリクスを用いて見つける。これにより、従来の手法と比較して、よりニュアンスや文脈を考慮した検索が可能になる。

ベクター検索の仕組み

このプロセスには通常、いくつかの重要なステップが含まれる:

  1. 埋め込み生成:テキスト用のBERTや画像用のVision Transformers(ViT)など、事前に訓練されたディープラーニング(DL)モデルを用いて、データを高次元ベクトル(埋め込み)に変換する。これらのモデルは膨大なデータセットで訓練され、意味のある表現を学習する。例えば Ultralytics YOLOモデルは、主に物体検出で知られているが、視覚検索タスクに適応できる可能性のある特徴ベクトルも生成する。
  2. インデックス作成:生成されたベクトルは、専用のベクトルデータベースに格納され、インデックスが付けられる。これらのデータベースは、HNSW(Hierarchical Navigable Small World)やScaNN(Scalable Nearest Neighbors)のような近似最近傍(ANN)アルゴリズムを使用して、高次元データを効率的にクエリできるように最適化されている。ANN技術は、わずかな精度を大幅な速度向上と引き替えにすることで、大規模データセットでもベクトル検索を実現可能にしている。
  3. クエリ:検索クエリが作成されると(例えば、テキストフレーズや画像)、まず同じ埋め込みモデルを使用して同じベクトル形式に変換される。
  4. 類似度の計算:ベクトルデータベースは、選択された距離メトリック(例えば、余弦類似度、ユークリッド距離、ドット積)に基づいて、クエリベクトルに最も類似したベクトルを見つけるためにインデックスを検索します。
  5. 検索:最も近いベクトルに対応するアイテムが検索結果として返される。

キーコンセプトとテクノロジー

  • ベクトル埋め込み:意味的な意味を捉える数値表現。ImageNetのような大規模なデータセットで学習する
  • ベクターデータベース: PineconeWeaviateMilvusChroma DBなどのシステムは、ベクターの保存とクエリのために設計されています。
  • 類似度メトリクス:ベクトル間の「近さ」を測定するために使用される数学関数(コサイン類似度、ユークリッド距離など)。
  • 近似最近傍(ANN): 近似最近傍を効率的に見つけるアルゴリズム。Faiss (Facebook AI Similarity Search)のようなライブラリが実装を提供している。
  • 次元削減: PCA(主成分分析)のようなテクニックは、ベクトルの次元を減らすために使われることがある。

実世界での応用

ベクトル検索は幅広いインテリジェントなアプリケーションを可能にする:

  • セマンティック検索検索エンジン(Google 検索のような)や社内のナレッジベースを活用し、キーワード以外のクエリの意図を理解すること。例えば、"ヘルシーな夕食のアイデア "を検索すると、たとえそれらの単語が文書に含まれていなくても、サラダ、グリルチキン、キヌアボウルのレシピが返されるかもしれない。
  • レコメンデーションシステム Netflixや Spotifyのようなプラットフォームは、ベクトル表現の類似性に基づいて、ユーザーが以前に「いいね!」を押したり、交流したことのあるアイテム(映画、曲、商品)に似たものを見つけるために、ベクトル検索を使用する。
  • 画像認識と検索:視覚的に類似した画像を検索したり(逆画像検索)、電子商取引のために写真内の商品を特定する。これはコンピュータビジョン(CV)の中核となる応用分野です。
  • 異常検知ベクトルが正常なデータベクトルのクラスターから離れている異常なデータポイント(不正取引、ネットワーク侵入など)を特定する。
  • 自然言語処理(NLP) 質問応答、重複検出、トピックやセンチメントに基づくテキストデータのクラスタリングなどのアプリケーションを強化します。
  • 検索補強型生成(RAG) 大規模言語モデル(LLM)で使用され、応答を生成する前に知識ベースから関連するコンテキストを検索し、事実の正確さを向上させ、幻覚を減らす。

ベクトル検索とキーワード検索

主な違いは、類似性の判定方法にある:

  • キーワード検索:転置インデックスなどのテクニックを使って、単語や語句を正確にマッチさせる。同義語、文脈、言葉のバリエーションに苦労します。
  • ベクトル検索:ベクトル埋め込みに取り込まれた意味的類似性に基づいてマッチングする。キーワードが完全に一致しなくても、根本的な意図やコンセプトを理解することで、関連する結果を見つけることができる。

ベクトル検索は、よりニュアンスのある結果を提供する一方で、エンベッディングの生成とインデキシングに多大な計算リソースを必要とし、多くの場合、モデルとデータセット管理のためのUltralytics HUBのようなプラットフォームを通じて効率的に管理される。最新のシステムでは、キーワード検索とベクトル検索の両方を組み合わせて(ハイブリッド検索)、それぞれのアプローチの長所を活用することがよくあります。モデルデプロイメントや パフォーマンスメトリクスのような関連概念がこれらのシステムにどのように適用されるかを理解するために、様々なチュートリアルやガイドを調べることができます。

すべて読む