本文へスキップ

埋め込み(Embedding)

この記事は7で読めます

ざっくり言うと

埋め込み(Embedding)とは、文章・画像・音声などを数値の並びに置き換える方法です。この数値の並びを、ベクトルと呼びます。

ベクトル同士を比べると、埋め込みモデルが学習した「関連の近さ」を計算で出せます。

「解約したい」と「退会の手順」。使っている言葉は違うのに、指している中身は同じですよね。

こういう言い換えをまたいで探せる検索に、Embeddingはよく使われます。社内の資料をもとに生成AIへ答えさせるRAG(検索拡張生成)でも、土台になる部品のひとつです。

イメージ

ここで大事なのは、この地図が世界共通の正解ではないことです。近さが何を表すかは、モデルの学習のしかたと用途によって変わります。あくまで、そのモデルが作った1枚の地図だと考えてください。

ふつうの地図なら、縦と横の2つの数字で場所が決まります。Embeddingはもっと多くの数字を使い、いくつ使うかはモデルごとに決まっています。

数字の数は、保存する容量、計算にかかる量、検索の質のバランスで決まります。数字が多いほど必ず質が上がる、というわけではありません

正確には

Embeddingを、公式はどう説明しているのでしょうか。言葉の選び方は違っても、指している中身は近いものです。

Google 機械学習教材

すき間だらけで巨大になってしまう表現を、もっと少ない数字が詰まったベクトルに置き換えるものと説明しています。これによって、もの同士の意味のつながりを表せるようになります。単語やカテゴリを扱うときが、その典型的な使いどころです。

OpenAI APIガイド

テキストの埋め込みを、小数を含む数字の並び(浮動小数点数のベクトル)としています。ベクトル同士の距離を測れば、文章と文章の関連の強さが分かるという説明です。

使いみちとして、次のような場面が挙げられています。

  • 検索
  • 似たもの同士のグループ分け(クラスタリング)
  • おすすめの表示
  • 分類
  • いつもと違うものの検知(異常検知)

ほかにもいろいろな使われ方があります。

ベクトルにできるのは、文章だけ?

文章だけではありません。Google Cloudのマルチモーダル埋め込みは、テキスト・画像・文書・音声・動画を入力として扱えます。ただし、どの種類を入れられるか、種類の違うデータを同じ地図の上で比べられるかは、モデルごとに違います。

対象ベクトルにすると、何ができる?
文章(単語・文・段落)意味の近い文章を探す、文書の仕分け、要約どうしの似ぐあいの比較
画像似た構図や被写体の画像を探す、画像の仕分け
音声似た声や曲調を探す、音声認識の下ごしらえ
コード動きが似ているプログラムを探す、不具合の近くを探す

置き換える作業そのものは、学習済みのEmbeddingモデルが引き受けます。クラウドのAPIへ送ってベクトルを受け取る方法もあれば、手元のパソコンやサーバーでモデルを動かす方法もあります。

「近さ」は、どうやって測る?

ベクトル同士の近さを測る代表的な方法が、コサイン類似度です。OpenAIは、自社のテキスト埋め込みにこの方法をすすめています。どの測り方がよいかはモデルによって違うので、実際に使うときは、そのモデルの説明に従ってください。

コサイン類似度は、地図の中心から見て2つの言葉が同じ方角にあるかを測るもの、と考えると分かりやすいです。

気をつけたいのは、出てきたスコアが「同じ意味である確率」ではないことです。Google Cloudも、類似度を目盛りの合った確率(校正済みの確率)としては扱わず、検索では順位を使う方法を案内しています。何点以上なら合格という線引きは、自分のデータで試しながら決めることになります。

使う場面

どこで使われている?

なかでも近年は、社内の情報を生成AIに答えさせるRAG(Retrieval-Augmented Generation)の中核部品として注目されています。流れはざっくり3ステップです。

  • 社内の文書を、地図の上に置く
  • 質問も、同じ地図に置く
  • 近いものを取り出して、生成AIへ渡す

シンプルな仕組みですよね。

注意点

関連用語

やってみよう

よくある質問

Q. 埋め込み(Embedding)とは何ですか?
A. 文章・画像・音声などを数値の並びに置き換える方法です。この並びをベクトルと呼び、ベクトル同士を比べると、埋め込みモデルが学習した関連の近さを計算で出せます。
Q. 埋め込みは、どんなところで使われていますか?
A. 社内資料の検索やRAG、商品のおすすめ表示、似た画像の検索などです。解約と退会のように使う言葉が違っても、指している中身が同じものをまとめて探せます。
Q. キーワード検索とはどう違うのですか?
A. 同じ言葉を探すのが得意なのがキーワード検索、似た意味を探すのが得意なのが埋め込みです。言葉は近いのに答えには使えない文書も拾うので、検索結果は中身まで読んで確かめてください。
Q. 使うときに気をつけることは何ですか?
A. モデルごとに数値の割り当て方が違うため、提供元の違うベクトルを混ぜると距離の計算に意味がなくなります。意味が近いことと内容が正しいことも別なので、引いてきた文書の日付と本文は自分で確かめます。

公開: 更新: ✓ 公式情報と照合:

参考ソース

判断クイズ

意味で探す検索を入れるとき、つまずく場所を先に見つけられますか?

3問です。答えるとその場で解説が出ます。全問終えたら、「回答を記録する」で学習の記録に残せます。

1. 社内文書はOpenAIのEmbeddingでベクトル化済み。追加分をGoogleのEmbeddingで作ってよいですか?
2. 社内検索で、質問にとても近い文書が上位に出ました。そのまま回答に使えますか?
3. 「解約したい」で検索して「退会の手順」を出したいときは?

全問に答えると、回答を記録できます。

残るのは「答えたかどうか」だけで、正解数は保存されません。この端末の中だけに残り、別の端末には引き継がれません。

この教科書は無料で全文公開しています。仕事で使えるところまで進みたい方は、実習と資料がそろった生徒プランをどうぞ。

生徒プランを見る(14日間無料)

あわせて読みたい