【べくとるでーたべーす】

ベクトルデータベース とは?

💡 「意味的に似たもの」を瞬時に探し出す特殊なデータベース
📌 このページのポイント
ベクトルデータベース — 類似検索の仕組み データ登録 テキスト/画像 などのデータ Embedding ベクトル変換 ベクトルDB [0.12, 0.85, 0.33, ...] を格納 類似検索(クエリ) Q ベクトル空間 検索結果(類似度順) 1位: 猫の写真 (類似度 0.95) 2位: 子猫の動画 (類似度 0.88) 3位: ペットの記事 (類似度 0.72) ※ Pinecone, Milvus, Weaviate などが代表的なベクトルDB
ベクトルDBによる類似検索の仕組み
ひよこ ひよこ

ベクトルデータベースって、普通のデータベースと何が違うの?

ペンギン先生 ペンギン先生

普通のデータベースは「名前が"田中"のユーザー」みたいに完全一致や条件で検索するんだ。ベクトルデータベースは「この質問と意味的に似た文書を持ってきて」という「意味の近さ」で検索できる。「銀行に行った」という文章に対して「金融機関を訪問した」という文書を見つけてくれるんだよ。

ひよこ ひよこ

どうやって「似ている」を判断するの?

ペンギン先生 ペンギン先生

コサイン類似度や内積などの計算でベクトル間の距離・角度を求めるんだ。事前にすべての文書をベクトルに変換して保存しておいて、クエリが来たらそのベクトルに近いものを探す。ただデータが数百万件あると全部計算するのは無理だから、近似探索アルゴリズム(ANNアルゴリズム)を使って速度と精度のバランスを取るんだよ。

ひよこ ひよこ

RAGと関係あるの?

ペンギン先生 ペンギン先生

RAGの「検索」部分を担うのがベクトルデータベースなんだ。社内文書を全部ベクトル化してベクトルデータベースに保存しておいて、質問が来たらその質問に意味的に近い文書を検索してAIに渡す、という流れで使われるよ。

ひよこ ひよこ

普通のSQLデータベースベクトル検索機能を追加するのとは違うの?

ペンギン先生 ペンギン先生

これは実用上とても重要な選択の問題なんだ。pgvectorPostgreSQLの拡張)のように既存RDBにベクトル検索機能を追加するのも広く使われている。専用ベクトルデータベースはインデックス構造やシャーディングベクトル専用に最適化されていて大規模データで速い。一方pgvectorなら既存のSQLベクトル検索を同じDBでできるシンプルさがある。「どちらが最適か」は規模・予算・既存インフラによって異なっていて、まだ業界全体でベストプラクティスが固まっていないんだよ。

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「ベクトルデータベース」って出てきたら「意味が似たデータを素早く見つけられる特殊なデータベース」と思えればだいたいOK!
📖 おまけ:英語の意味
「Vector Database」 = ベクトルデータベース
💬 通常のデータベースが「完全一致・範囲検索」を得意とするのに対し、ベクトルデータベースは「近さ(類似度)による検索」を得意とするよ
← 用語集にもどる