埋め込み(エンベディング)とは
埋め込みは、文章や画像の意味を数の並び(ベクトル)で表したものです。言葉が違っても意味の近いものを探せるので、サイト内の検索や、AI が資料を探して答えるしくみの土台になっています。
この記事でわかること
- AI の分野でいう「埋め込み」が何かを説明できる
- 埋め込みで「意味の近さ」を計算できる理由がわかる
- 埋め込みの主な使い道と、キーワード検索との違いを知る
目次
埋め込み(エンベディング、英語で embedding)は、文章や画像などの意味を、数の並び(ベクトル)で表したものです。意味の近い文章どうしは、近い数の並びになるように作られています。
埋め込みは、言葉が一致しなくても意味で探せる検索や、AI が手元の資料を探して答えるしくみの土台です。画面には出てこない技術ですが、何をしているかを知っておくと、AI を使った検索やチャットのしくみを選ぶときや、うまく当たらない理由を考えるときの手がかりになります。
- 質問の文章「体験レッスンはいくら?」
- 埋め込みモデル意味を数の並びに変える
- ベクトル[0.12, -0.48, 0.91, …]
- 近いものを探す「料金について」の FAQ
埋め込みは何を表しているのか
コンピューターは、文章の意味をそのまま比べることができません。たとえば「体験レッスンはいくら?」と「料金について」は、同じ文字をほとんど含んでいないので、文字を比べるだけでは関係があるとわかりません。そこで、意味を数で表して、数どうしを比べられるようにします。これが埋め込みの考え方です。
イメージをつかむために、料理教室に届く質問とよくある質問(FAQ)を、手作りの 3 つの物差しで点数にしてみます。
| 文章 | お金の話 | 日程の話 | 場所の話 |
|---|---|---|---|
| 体験レッスンはいくら?(届いた質問) | 0.9 | 0.2 | 0.0 |
| 料金について(FAQ) | 1.0 | 0.0 | 0.0 |
| 次の開講日はいつですか(FAQ) | 0.1 | 1.0 | 0.1 |
| 教室へのアクセス(FAQ) | 0.0 | 0.1 | 1.0 |
「体験レッスンはいくら?」は、[0.9, 0.2, 0.0] という 3 つの数の並びになりました。これが、とても小さな埋め込みです。並びを見比べると、この質問は「教室へのアクセス」よりも「料金について」に近いことがわかります。
実際の埋め込みは、3 つではなく、数百から千を超える数でできています(たとえば 768 個や 1,536 個)。物差しも人が決めるのではなく、モデルが大量の文章から自動で作ります。そのため、1 つ 1 つの数が何を表しているのかは、人には読み取れません。それでも、並び全体としては文章の意味をよく表しています。
「意味が近い」はどうやって計算するのか
数の並びは、向きと長さを持つ矢印(ベクトル)として考えることができます。意味の近い文章の矢印は、ほぼ同じ向きを指します。
近さを測る方法としてよく使われるのが「コサイン類似度」です。2 本の矢印の向きがどれだけそろっているかを、-1 から 1 の数で表します。1 に近いほど同じ向き、つまり意味が近いということです。ほかに、矢印の先どうしの距離で測る方法もあります。
先ほどの表の数でコサイン類似度を計算すると、次のようになります。
| 届いた質問と比べる FAQ | コサイン類似度 |
|---|---|
| 料金について | 約 0.98 |
| 次の開講日はいつですか | 約 0.31 |
| 教室へのアクセス | 約 0.02 |
いちばん近いのは「料金について」なので、この FAQ を答えの候補にできます。
では、なぜ意味の近さが数の近さになるのでしょうか。埋め込みのモデルは、大量の文章を使って、同じような場面で使われる文章や、言い換えの関係にある文章が近い数の並びになるように学習しています。「いくら」「料金」「受講料」「費用」が似た文脈でよく使われることを学んでいるので、言葉が違っても近くに置かれるのです。
埋め込みはどうやって作られるのか
埋め込みは、「埋め込みモデル」と呼ばれる専用の AI モデルに文章を渡して作ります。文章を渡すと、決まった数の数字の並びが返ってきます。
検索に使うときは、たとえば次の流れになります。
- 探される側の文書(FAQ や記事など)を、ほどよい長さに区切る。
- 区切った文章ごとに埋め込みを作り、保存しておく。
- 質問が来たら、質問の文章も同じモデルで埋め込みにする。
- 保存した埋め込みの中から、質問の埋め込みに近いものを探す。
ここで大事なのは、文書と質問に同じモデルを使うことです。モデルが違うと数の並びの作り方も違うので、比べても意味がありません。モデルを変えたときは、保存しておいた埋め込みを作り直します。
文書を区切るのは、1 回に埋め込みにできる文章の長さに上限があるうえ、1 つの埋め込みにいろいろな話題を詰め込むと、何の話なのかがぼやけてしまうからです。反対に、短く区切りすぎると前後の文脈が抜けて、かえって当たりにくくなることもあります。
たくさんの埋め込みを保存して、近いものを速く探すための入れ物は「ベクトルデータベース」と呼ばれます。
キーワード検索とはどう違うのか
これまでのサイト内検索の多くは、入力した言葉が文書に含まれているかで探す「キーワード検索」です。埋め込みを使う「意味の検索」とは、得意なことが違います。
| キーワード検索 | 埋め込みによる意味の検索 | |
|---|---|---|
| 比べるもの | 言葉が一致するか | 意味が近いか |
| 得意なこと | 型番・商品名・エラーの番号など、決まった言葉 | 言い換え・話し言葉・あいまいな質問 |
| 苦手なこと | 「いくら」と「料金」のような言い換え | 番号や固有名詞のような、細かい一致 |
たとえば、教室のサイトで「休みたい」と探したとき、FAQ の見出しが「欠席と振替について」だと、キーワード検索では見つからないことがあります。意味の検索なら、近い話として拾える見込みがあります。一方で、「B-12 コースの日程」のように決まった名前で探すときは、キーワード検索のほうが確実です。
そこで、両方の検索を同時に行い、結果を合わせて並べる「ハイブリッド検索」もよく使われています。
埋め込みは何に使われているのか
- サイト内の検索:お客さまが自分の言葉で入力しても、関係するページを出す。
- 問い合わせの振り分け:届いた問い合わせを「料金」「日程」「不具合」などに分ける。
- 返信の下書きの手がかり:問い合わせフォームに書かれた内容から、近い FAQ を探して返信の参考にする。
- 似たものの発見:内容の重なった記事や、よく似た質問のくり返しを見つける。
- AI が資料を読んで答えるしくみ:質問に関係する資料を探して、大規模言語モデル(LLM)に渡す。
文章だけでなく、画像や音声の埋め込みもあります。写真から見た目の似た商品を探す、といった使い方です。
最後の使い方は RAG(検索拡張生成)と呼ばれ、埋め込みが「探す」、LLM が「読んで答える」という分担になります。LLM のしくみは「大規模言語モデル(LLM)とは」、全体の流れは「RAG(検索拡張生成)とは」で説明しています。
使うときに気をつけること
- 近いことは、正しいことではありません。意味の検索は、答えになる文書がなくても、いちばん近いものを返します。点数に下限を設けたり、見つからないときの案内を用意したりしておきます。
- モデルによって得意な言語や分野が違います。日本語の文書を扱うなら、日本語や多言語に対応したモデルを選び、実際の質問と文書で試して確かめます。
- 文書を直したら、埋め込みも作り直します。FAQ を書き換えても、古い埋め込みのままでは古い内容で探されてしまいます。
- 埋め込みも、元の文章と同じように大切に扱います。ただの数の並びに見えますが、短い文章なら埋め込みから元の文章の多くを復元できたという研究もあります。個人情報を含む文章の埋め込みは、元の文章と同じ扱いで管理します。
埋め込みのしくみをもう少しくわしく知りたい人は、Google の機械学習集中講座の「エンベディング」が参考になります。
mukumo では埋め込みをどう使っていますか
mukumo(ムクモ)の AI アシスタントの muku(ムク)は、mukumo の使い方・設定・料金などを聞かれると、まずヘルプセンターの記事を探します。探すのには Cloudflare AI Search を使い、埋め込みで意味の近い記事を探す検索と、言葉の一致で探すキーワード検索を組み合わせています。そのため、記事と違う言い方で聞いても、関係する記事が見つかりやすくなっています。
答えは、見つかった記事に書いてあることだけで作り、文字の返事では根拠にした記事へのリンクを添えます。見つからないときは短い言葉に言い換えてもう一度探し、それでもなければ、ヘルプに書いていないことをそのまま伝えます。
よくある質問
埋め込みとベクトルは同じものですか
ベクトルは、数の並びを指す数学の言葉です。埋め込みは、文章や画像の意味を表すように作られたベクトルのことで、ベクトルの一種といえます。
日本語の質問で、英語の文書を探せますか
多言語に対応した埋め込みモデルなら、言語が違っても意味の近い文書を探せるものがあります。どのくらい正確かはモデルと言語の組み合わせで変わるので、実際の質問と文書で試して確かめてください。
埋め込みを使うのに、自分で AI を学習させる必要はありますか
多くの場合、必要ありません。公開されている埋め込みモデルや、クラウドのサービスが用意しているモデルをそのまま使うのが一般的です。自分の分野に合わせて調整する方法もありますが、まずは既製のモデルで試すのが手軽です。
埋め込みを作ったり探したりするのに、費用はかかりますか
クラウドのサービスを使う場合、埋め込みにする文章の量や、探した回数、保存した量に応じて料金がかかるのが一般的です。文書を直したときに、変わった部分だけ作り直すと費用を抑えられます。