埋め込み(エンベディング)とベクトル検索
文章の意味を数値ベクトルで表し、意味の近さで検索する技術の基礎
埋め込み(エンベディング、Embedding)とは、文章や単語などを、意味を反映した数値の並び(ベクトル)に変換する技術です。意味の近い文章どうしは近いベクトルになるため、キーワードが一致しなくても「内容が似ているもの」を探せます。この性質を使った検索がベクトル検索で、RAGの中核を担います。
埋め込みのイメージ
埋め込みモデルに文章を入力すると、多数の数値からなるベクトルが返ってきます。埋め込みモデルは文章を生成する大規模言語モデル(LLM)とは別の専用モデルとして提供されることが多いです。このベクトルを「意味の空間の中の座標」と考えるとわかりやすいでしょう。
- 「有給休暇の申請方法」と「休みを取るときの手続き」→ 近い位置
- 「有給休暇の申請方法」と「サーバーの再起動手順」→ 遠い位置
OpenAIのドキュメントでも、埋め込みは浮動小数点数のリストであり、ベクトル間の距離が近いほど関連性が高いと説明されています。
近さの測り方
ベクトルどうしの近さを測る方法として、コサイン類似度がよく使われます。2つのベクトルの向きがどれだけ揃っているかを表す指標です。OpenAIのドキュメントでは、同社の埋め込みは長さ1に正規化されているため、コサイン類似度とユークリッド距離で順位が同じになると説明されています。
ベクトル検索の流れ
- 検索対象の文書を適度な長さに分割する
- 各断片を埋め込みモデルでベクトルに変換し、保存する(ベクトルデータベースなど)
- 検索時は、質問文も同じモデルでベクトルに変換する
- 質問のベクトルに近い断片を上位から取り出す
重要:保存時と検索時には同じ埋め込みモデルを使う必要があります。モデルを変えたら、保存済みのベクトルも作り直しが必要です。
キーワード検索との違い
- キーワード検索:単語が一致するものを探す。型番、人名、コードなど正確な一致に強い。
- ベクトル検索:意味が近いものを探す。言い換えや表記ゆれに強い。
実務では両方を組み合わせる「ハイブリッド検索」もよく使われます。
主な用途
- 社内文書の検索、FAQの自動回答(RAG)
- 似た問い合わせ・レビューのグループ分け(クラスタリング)
- 商品や記事のレコメンド
- 重複データや異常なデータの発見
注意点
- 日本語の扱い:埋め込みモデルによって日本語の得意・不得意があります。実際の自社データで検索精度を試してから選びましょう。
- 分割の仕方が精度を左右する:短すぎると文脈が失われ、長すぎると焦点がぼやけます。
- 権限管理:ベクトル化しても元の文章の内容は保存されているのと同じです。機密情報の扱いは元データと同じ基準で管理してください。
- 埋め込みの作成にもAPI料金がかかる場合があります(APIと料金の考え方(トークン課金)参照)。
参考リンク
編集: AI Play 編集部 最終更新: 2026-10-25