「返金ポリシーを教えて」と「お金を返してもらう方法は?」——この2つの質問は、言葉は違いますが意味は同じですよね。
人間にとっては当たり前のことですが、AIがこれを理解できるのは「エンベディング(Embedding)」という技術のおかげです。
この記事では、AIが「意味」を理解する仕組みであるエンベディングについて、わかりやすく解説します。
エンベディングとは?言葉を「数字」に変換する技術
一言で言うと
エンベディングとは、テキストや画像などのデータを、AIが計算できる「数字の列(ベクトル)」に変換する技術です。
例えば「犬」という単語は、以下のような数字の列に変換されます:
[0.25, -0.14, 0.89, 0.03, -0.67, ...](数百〜数千次元)
この数字の列を「ベクトル」と呼びます。
なぜわざわざ数字に変換するんですか?
コンピュータは「言葉」をそのまま理解できないからです。数字に変換することで、「似ている」「違う」といった比較計算ができるようになります。
似た意味の言葉は「近く」に配置される
エンベディングの最大の特徴は、意味が似ている言葉は、ベクトル空間で「近く」に配置されることです。
| 単語ペア | ベクトル空間での距離 |
|---|---|
| 犬 - ワンちゃん | 非常に近い |
| 犬 - 猫 | やや近い(どちらもペット) |
| 犬 - 車 | 遠い |
「king(王)」と「queen(女王)」は近くに、「king」と「banana(バナナ)」は遠くに配置されます。これにより、AIは「意味の近さ」を計算できるのです。
エンベディングが使われる場面
1. セマンティック検索(意味検索)
従来のキーワード検索は、完全一致でしか結果を返せませんでした。
- 検索:「スマホの返金方法」
- 従来:「返金」「方法」を含むページのみヒット
エンベディングを使ったセマンティック検索では:
- 検索:「スマホの返金方法」
- セマンティック検索:「携帯電話の返品ポリシー」「モバイル端末の払い戻し手順」もヒット
セマンティック検索は、言葉の「意味」を理解するため、表現が違っても関連する結果を見つけられます。
2. RAG(検索拡張生成)
RAGは、AIが外部の知識を参照して回答する技術です。
- 質問をエンベディングに変換
- データベースから意味的に近い文書を検索
- その文書を元にAIが回答を生成
社内文書の検索や、最新情報を反映した回答に活用されています。
3. レコメンデーション(おすすめ機能)
NetflixやSpotifyの「あなたへのおすすめ」も、エンベディングを活用しています。
- ユーザーの視聴履歴をエンベディング化
- 作品もエンベディング化
- 「近い」作品をおすすめとして表示
4. 異常検知
正常なデータのエンベディングと比較して、「遠い」データを異常として検出します。クレジットカードの不正利用検知などに使われています。
エンベディングの仕組み
ステップ1:テキストをトークン化
まず、テキストをトークン(AIが処理する最小単位)に分割します。
「AIは便利です」 → ["AI", "は", "便利", "です"]
ステップ2:各トークンをベクトルに変換
各トークンを、学習済みモデルを使ってベクトルに変換します。
- "AI" →
[0.12, -0.34, 0.56, ...] - "は" →
[0.01, 0.23, -0.11, ...]
ステップ3:文全体のベクトルを計算
文全体を表すベクトル(文エンベディング)を計算します。単純な平均から、高度な重み付けまで様々な方法があります。
ベクトルの次元数って、どれくらいあるんですか?
モデルによりますが、一般的には768次元(BERT)から1536次元(OpenAI)程度です。次元が多いほど細かいニュアンスを捉えられますが、計算コストも上がります。
主要なエンベディングモデル
OpenAI Embeddings
OpenAIが提供するエンベディングモデル。text-embedding-3-smallとtext-embedding-3-largeがあり、APIで簡単に利用できます。
Sentence-BERT
文全体のエンベディングに特化したモデル。オープンソースで、多くの言語に対応しています。
BERT Embeddings
Googleが開発したBERTを使ったエンベディング。文脈を考慮した高品質なベクトルを生成します。
| モデル | 次元数 | 特徴 |
|---|---|---|
| OpenAI text-embedding-3-small | 1536 | 手軽、API利用 |
| OpenAI text-embedding-3-large | 3072 | 高精度 |
| Sentence-BERT | 384-768 | オープンソース |
| BERT (基本) | 768 | 汎用的 |
ベクトルデータベースとの組み合わせ
エンベディングは「ベクトルデータベース」と組み合わせて使われることが多いです。
なぜベクトルデータベースが必要か?
数百万〜数十億のエンベディングを保存し、高速に「最も近いベクトル」を検索するには、専用のデータベースが必要です。
主要なベクトルデータベース
- Pinecone:クラウドベースで使いやすい
- Weaviate:オープンソース、スキーマ定義が柔軟
- Milvus:大規模データに強い
- FAISS(Facebook AI):高速な近似最近傍探索
ベクトルデータベースは、従来のSQLデータベースとは異なる考え方で設計されています。「完全一致」ではなく「類似度」で検索するのが特徴です。
エンベディングの限界と注意点
1. 学習データに依存
エンベディングモデルは学習データに基づいています。学習データに含まれない専門用語や新語は、うまく表現できない可能性があります。
2. 言語による精度差
多くのモデルは英語で最も高い精度を発揮します。日本語などの非英語圏の言語では、精度が落ちることがあります。
3. 文脈の限界
単語レベルのエンベディングでは、文脈による意味の違い(例:「Apple」が会社か果物か)を捉えきれないことがあります。文エンベディングを使うことで改善できます。
専門分野では、汎用モデルをそのまま使うより、ドメイン特化のデータでファインチューニングすることをおすすめします。
まとめ:AIの「意味理解」を支えるエンベディング
エンベディングは、AIが言葉の「意味」を理解するための基盤技術です。
エンベディングの重要ポイント:
- テキストを数字の列(ベクトル)に変換する技術
- 意味が似ている言葉は、ベクトル空間で「近く」に配置される
- セマンティック検索、RAG、レコメンデーションなどに活用
- ベクトルデータベースと組み合わせて大規模データに対応
- 言語やドメインによって精度が異なる
RAGやセマンティック検索の普及により、エンベディングの重要性はますます高まっています。AI活用を検討するなら、ぜひ押さえておきたい概念です。