埋め込み(エンベディング)とは

この記事の結論

  • 埋め込み(エンベディング)とは、文章や画像の意味を、似たもの同士が近くに並ぶ数値の列(ベクトル)に変換したものです。
  • 2つの埋め込みがどれだけ似ているかは、ベクトルの向きの近さを表すコサイン類似度などで測ります。言葉が一致していなくても、中身が近い文章を見つけられます。
  • 比べてよいのは、同じ埋め込みモデルで作ったベクトル同士だけです。モデルを替えたら、保存済みのデータも作り直します(2026-09-26 時点の情報)。

うめこみ/Embedding

文章や画像の意味を、似たもの同士が近くに並ぶ数値の列(ベクトル)に変換したものです。

最終更新: 2026-09-26

01

埋め込み(エンベディング)とは(意味と読み方)

埋め込み(エンベディング)とは、文章や画像の意味を、似たもの同士が近くに並ぶ数値の列(ベクトル)に変換したものです。読みは「うめこみ」、英語の embedding をそのまま「エンベディング」とも呼びます。変換する処理そのものや、変換を行うモデルを指して使うこともあります。

埋め込みの講座(Google for Developers)は、埋め込みを「まばらなデータを低い次元で表したもの」と定義し、似たものが近くに置かれる点を特徴として挙げています。講座の例では、ホットドッグとシャワルマ(中東の肉料理)はサラダよりも互いに近い位置に来ます。

02

文章がベクトルになる仕組み

  • 素朴な方法の限界:語彙の数だけ枠を用意し、該当する語の位置だけを1にする表し方(one-hot)では、「犬」と「猫」も「犬」と「机」も同じだけ離れていて、意味の近さが表せません。前述の講座は、この表し方だと入力が巨大になり、必要な重みや計算、メモリが膨らむことも問題として挙げています。
  • 学習で位置を決める:大量の文章で「同じような文脈に出てくる語は近くに置く」ように数値を調整すると、意味の近さが距離に表れるようになります。2013年の論文 Efficient Estimation of Word Representations in Vector Space(いわゆる word2vec)は、16億語の文章から語のベクトルを1日かからずに学習できる方法を示しました。
  • 文章まるごとを1本のベクトルに:検索や分類では、語ではなく文や段落単位の埋め込みを使います。Sentence-BERT の論文(2019年)は、文ごとに埋め込みを先に計算しておき、コサイン類似度で比べる方式を示しました。1万文の中で最も似た組を探すのに、元の BERT では約65時間かかるところを約5秒に縮めたと報告しています。

ベクトルの長さ(次元数)はモデルごとに決まっています。たとえば埋め込みAPIのガイド(Google AI for Developers)のモデルは128〜3072次元に対応し、768・1536・3072次元を推奨しています。

03

埋め込み同士の似ている度合いを測る

よく使われるのがコサイン類似度です。2本のベクトルがなす角度の余弦(コサイン)で、向きがそろっているほど1に近づき、直角に交わると0になります。前述のガイドも、コサイン類似度は長さではなく向きに注目するので、意味の近さをよく反映すると説明しています。

2次元の計算例で見ます。a = (1, 0) と b = (0.8, 0.6) の内積は0.8、どちらも長さは1なので、コサイン類似度は0.8です。c = (0, 1) と a では内積が0になり、類似度も0です。

コードで書くと dot(a, b) / (norm(a) * norm(b)) の1行です。長さを1にそろえた(正規化した)ベクトル同士なら、内積だけで同じ値になります。大量のベクトルから近いものを速く探す仕組みは、ベクトルデータベースの項目で扱っています。

04

AI開発での埋め込みの使いどころ

  • 意味で探す検索:社内文書や過去のやり取りを段落ごとに埋め込みにして保存し、質問文の埋め込みと近い順に取り出します。これを生成の材料に使うのがRAGです。
  • 重複の検出:似た内容の問い合わせや不具合報告を、類似度がしきい値を超えたものとしてまとめられます。しきい値は、実データで何件か確かめてから決めます。
  • 分類とクラスタリング:埋め込みを特徴量にして、少ない教師データで分類器を作ったり、似た文章をグループに分けたりできます。
  • 質問用と文書用を分ける:前述のガイドには、検索の質問側と文書側で異なる用途の指定(RETRIEVAL_QUERY と RETRIEVAL_DOCUMENT)をする機能があります。短い質問と長い文書を同じ扱いにしないための工夫です。
05

埋め込みのよくある誤解

  • 誤解:埋め込みモデルも文章を書いてくれる → 実際:埋め込みモデルが返すのは数値の列だけです。文章を生成するモデルとは役割が別で、多くの場合は組み合わせて使います。
  • 誤解:類似度が高ければ内容が正しい → 実際:測っているのは話題や意味の近さで、事実として正しいかどうかではありません。「年休は20日」と「年休は10日」は、ほぼ同じ向きのベクトルになりえます。
  • 誤解:別のモデルで作った埋め込みとも比べられる → 実際:数値の空間はモデルごとに別物です。次元数が同じでも、比べた結果に意味はありません。
  • 誤解:次元数は大きいほどよい → 実際:次元が増えると保存容量と検索の計算も増えます。用途に対して十分な精度が出る範囲で、小さい次元を選ぶ判断もあります。
06

埋め込みを扱うときの注意点

  • モデル名と次元数を一緒に保存する:後でモデルを替えるとき、どのデータを作り直すべきかが分かります。
  • 次元を切り詰めたら正規化を確かめる:前述のガイドでは、既定より小さい次元で出力した場合に、自分で長さを1にそろえる必要があるモデルがあると説明されています。
  • 埋め込みにしても元の情報は消えない前提で扱う:個人情報を含む文章を埋め込みにする場合も、元の文章と同じ扱いで保管と削除のルールを決めておきます。
07

関連用語

08

関連記事

09

埋め込みの出典・参考資料

10

埋め込み(エンベディング)についてよくある質問

Q1. 埋め込み(エンベディング)とは何ですか?
文章や画像の意味を、似たもの同士が近くに並ぶ数値の列(ベクトル)に変換したものです。言葉が違っても中身の近い文章を探す、似た問い合わせをまとめる、といった処理に使います。

Q2. コサイン類似度とは何ですか?
2本のベクトルがどれだけ同じ向きを向いているかを表す値です。向きがそろっているほど1に近づき、直角に交わる向きなら0になります。長さの違いを無視できるので、埋め込み同士の比較によく使われます。

Q3. 埋め込みとベクトルデータベースはどう違いますか?
埋め込みは文章を数値の列に変えたもの、ベクトルデータベースはその数値の列を保存して近いものを速く探すための入れ物です。埋め込みを作るのはモデル、探すのはデータベースという分担です。

Q4. 埋め込みモデルを替えたら何をすればよいですか?
保存してある埋め込みをすべて新しいモデルで作り直します。モデルが違うとベクトルの空間が別物になり、古い埋め込みと新しい質問文を比べても正しい結果が出ないためです。