一言で
埋め込みは、文章・単語・品物などのデータを、いくつもの数を並べたもの(ベクトル)で表したものです。似たもの同士ほど数の並びが近くなるように作られるため、どれとどれが似ているかを計算で比べられます。
このページで分かること
- 埋め込みが何を指すか(出典ごとの説明)
- 数の並びの「近さ」で似ているかを測る考え方と、その限り
- 何に使われているか(検索・おすすめ・RAG など)
先に知っておく言葉
- ベクトル:数をいくつか並べたもの。Google の用語集では、機械学習のベクトルはふつう小数を並べたもので、並ぶ数の個数を「次元」と呼ぶ
- ニューラルネットワーク:計算の単位を層に並べてつないだモデル。中で掛け合わせる数(重み)を学習で決める(→ 別ページ「ニューラルネットワークとは」)
- Transformer:文章などを扱うモデルの作りの1つ(→ 別ページ「Transformer と注意(アテンション)」)
- RAG:外の資料を探してから答えを作らせる仕組み(→ 別ページ「RAG(検索拡張生成)」)
出典ごとの説明
- OpenAI(ChatGPT の会社)の説明:データ(たとえば文章)をベクトルで表したもので、中身や意味の一部を保つことを狙ったもの。何らかの点で似ているデータは、関係の無いデータよりも埋め込みが近くなる傾向がある、としている。OpenAI は、文章を入れると埋め込みのベクトルを返すモデルを出している
- Google の機械学習の講座(Machine Learning Crash Course):埋め込み空間の中でデータを表したベクトルで、おおまかに言えば、もとのデータの次元の多い空間を次元の少ない空間へ移して求める、と説明している。似たものは埋め込み空間の中で近くに置かれ、2つの間の距離は計算で求められて、相対的な似ている度合いと読める、としている
- Google の機械学習の用語集:広く言えば、ニューラルネットワークの中の層から取り出した小数の並びで、その層への入力を表すもの。数はでたらめではなく、学習によって決まる。似たものほど似た数の並びになる。一方で、同じデータで学習し直しても、数は毎回変わる、としている
似ている度合いの測り方について、講座は、2つの間の距離は計算で求められ、相対的な似ている度合いと読める、と書いています。用語集の「埋め込み空間」の項は、2つの埋め込みの内積(掛け合わせて足した値)を似ている度合いの尺度としています。
なぜ埋め込みを使うのか
Google の講座は、5,000品の料理から似た料理を勧めるアプリを例にしています。品目ごとに1か所だけ1を立てる表し方(ワンホット)では、1品が5,000個の数の並びになります。講座はこの表し方の困る点として、次を挙げています。
- 並びが長いぶん、ニューラルネットワークの重みが大量に要り、学習に要るデータ・計算・メモリーが増える。手元の機器で動かすのも難しくなる
- どの品目どうしが似ているかという関係を表せない(講座の要約では、ホットドッグはサラダよりシャワルマに近い、という例)
埋め込みは、データを次元の少ない密な並びにすることで、この2つに対処するもの、と講座は説明しています。
数の並びは何を表しているのか
講座は、料理を「サンドイッチらしさ」「デザートらしさ」「汁気」という3つの軸に置いてみせる例で説明しています(Google の講座のたとえ)。ただし、これは人が分かるように作った例で、実際の埋め込みについては次のように書いています。
- 次元は3よりずっと多いが、もとのデータよりは少ない。単語の埋め込みでは256・512・1024がよく使われる
- 1つ1つの次元が「デザートらしさ」のように分かりやすいことはまれで、意味を推し量れるときもあるが、いつもではない
- 埋め込みはふつう目的ごとに違う。たとえば、菜食かどうかを分けるモデルと、時間帯で料理を勧めるモデルとでは、同じ料理でも近さが変わる
単語ごとの埋め込みと、文脈で変わる埋め込み
単語の埋め込みの例として、講座は word2vec を挙げています。2013年1月に Google の Mikolov 氏らが出した論文は、ごく大きな文章のデータから単語を連続した数のベクトルで表す、2つのモデルの作りを提案したものです。この論文では、16億語のデータから質の高い単語のベクトルを1日足らずで学習できた、としています。同じ論文は、単語をベクトルで表す考え方そのものには長い歴史がある、とも書いています。
講座によると、word2vec はおおむねほかのモデルに取って代わられた古い例で、1つの単語に1つのベクトルしか持ちません(静的な埋め込み)。そのため、色と果物の2つの意味を持つ「orange」のような単語を、1つの点でしか表せないという限りがあります。これに対して作られたのが、周りの単語の情報も取り込み、文ごとに違うベクトルになる「文脈に応じた埋め込み」です。講座は、Transformer のモデルが入力の文から作る埋め込みも、これに当たるとしています。
何に使われるか
- OpenAI の説明:検索、似たもの同士のまとめ分け、おすすめ、ふだんと違うものの見つけ出し、分類などに役立つ、としている
- RAG の論文(2020年):Wikipedia の記事を100語ずつに区切った2,100万の文書それぞれの埋め込みを計算し、問いに関係する文書を速く探すための索引を作っている(→ 別ページ「RAG(検索拡張生成)」)
関連する言葉
- ニューラルネットワーク・Transformer と注意(アテンション)・RAG(検索拡張生成)・トークン(→ この欄の別ページ)
出典
- OpenAI「Key concepts」の Embeddings の項 developers.openai.com ↗
- Google for Developers「Machine Learning Crash Course」の Embeddings(Introduction) developers.google.com ↗
- Google for Developers「Machine Learning Crash Course」の Embeddings: Embedding space and static embeddings developers.google.com ↗
- Google for Developers「Machine Learning Crash Course」の Embeddings: Obtaining embeddings developers.google.com ↗
- Google for Developers「Machine Learning Glossary」の embedding vector・embedding space・vector の項 developers.google.com ↗
- T. Mikolov ほか「Efficient Estimation of Word Representations in Vector Space」arXiv 2013年1月 arxiv.org ↗
- P. Lewis ほか「Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks」arXiv 2020年5月 arxiv.org ↗
確認メモ:2026年10月1日に、上の出典の原文を開いて確かめました。OpenAI は Embeddings の項を、Google の講座は埋め込みの単元の3つのページ(はじめに・埋め込み空間と静的な埋め込み・埋め込みの作り方)を、用語集は embedding vector・embedding space・vector の項を読みました。Mikolov 氏らの論文は、講座が詳しい説明の行き先として挙げているもので、要旨と序論を読みました(論文の中には「embedding」という言葉は出てきません)。RAG の論文は、実験の節で文書の埋め込みを作っている所を読みました。似ている度合いを、講座は距離で、用語集の埋め込み空間の項は内積で説明しています。「関係を表せない」点とホットドッグの例は、講座のページの冒頭にある要約の欄(Page Summary)から取りました。「256・512・1024」は、講座が別の本を引いて示している数字です。講座の図にある具体的な座標の数字や、埋め込みを作る手順の細かい計算(主成分分析など)は載せていません。AIログのニュースでは、この言葉はまだ出てきていないため、「ニュースでの出方」の節は置いていません。「内積」「ワンホット」の言い換えは、ふつうの意味を一言で添えたものです。