ベクトル検索

Vector Search

ベクトル検索とは

ベクトル検索(Vector Search)とは、テキストや画像などのデータを高次元のベクトル(数値の配列)に変換し、ベクトル間の類似度を計算することで意味的に関連するデータを検索する技術です。AIエージェントのメモリやRAGの基盤技術として欠かせません。

表:ベクトル検索の要点まとめ
ひとことで言うと文章を数値化して、意味が近いものを探す検索方法。
キーワード検索との違い言い換えや表記ゆれがあっても、意味が近ければ見つけられる。
注意点固有名詞や型番の完全一致には弱い。キーワード検索との併用が有効。

ベクトル検索の仕組み

まず埋め込みモデル(Embedding Model)を使ってテキストをベクトルに変換します。例えば「犬が走る」と「イヌが駆ける」は異なる文字列ですが、意味が近いため類似したベクトルに変換されます。検索時はクエリもベクトルに変換し、コサイン類似度やユークリッド距離などの指標で最も近いベクトルを持つデータを取得します。

図:ベクトル検索のしくみ
1文書をベクトル化意味を数値の並びに
▶
2DBに索引化高速に探せる形で保存
▶
3質問もベクトル化同じモデルで変換
▶
4距離が近い順に意味の近さで並べる
▶
5上位N件を返す回答の材料にする

ベクトルデータベース

大量のベクトルデータを効率的に管理・検索するために、専用のベクトルデータベースが使用されます。Pinecone、Chroma、Weaviate、Milvus、Qdrant、pgvector(PostgreSQL拡張)などが代表的です。HNSW(Hierarchical Navigable Small World)などの近似最近傍探索アルゴリズムにより高速な検索を実現しています。

エージェントでの活用

AIエージェントはベクトル検索を活用して、長期メモリからの関連情報の呼び出し、ナレッジベースからの知識検索、類似した過去のタスク実行履歴の参照などを行います。ベクトル検索の品質がエージェントの応答精度に直接影響するため、適切な埋め込みモデルの選択とインデックス設計が重要です。