Embedding
埋め込み
うめこみ
Definition
An embedding is a numeric vector representation of text or images where semantically similar items are placed closer together. It is widely used for search, clustering, and classification.
「猫」と「ネコ」は表記が違いますが意味は同じです。一方、「バンク」は文脈によって「銀行」にも「堤防」にもなります。埋め込み(Embedding)とは、テキストや画像を数値ベクトルに変換し、意味の近さを数学的な距離として表現する技術です。
なぜベクトルに変換するのか
コンピュータは「猫」と「犬」が似た概念であることを、文字列の比較だけでは理解できません。しかし、これらを数百次元の数値ベクトル(例: [0.23, -0.15, 0.87, ...])に変換すると、意味が近い単語はベクトル空間上で近くに、遠い単語は遠くに配置されます。この性質により、「意味の類似度」を数値として計算できるようになります。
どう作られるか
埋め込みモデルは、大量のテキストデータから「どの単語がどの文脈で一緒に使われるか」を学習します。たとえば「王」「女王」「王子」は似た文脈で登場するため、近いベクトルになります。最新の埋め込みモデル(OpenAIのtext-embedding-3、GoogleのGecko、CohereのEmbed v3など)は、単語だけでなく文章全体の意味をベクトル化でき、数千次元の精密な表現が可能です。
RAGの検索エンジンとして
埋め込みの最も重要な応用がRAG(検索拡張生成)の検索部分です。社内ドキュメントをあらかじめ埋め込みベクトルに変換してデータベース(ベクトルストア)に格納しておきます。ユーザーが質問すると、その質問もベクトルに変換し、コサイン類似度などの指標で最も近いドキュメントを検索します。キーワードの完全一致ではなく意味レベルで検索できるため、「売上の推移」と「収益のトレンド」のような表現の違いを吸収できます。
セマンティック検索と分類
RAG以外にも、埋め込みは幅広く活用されています。ECサイトの類似商品レコメンド、カスタマーサポートの類似質問検索、ニュース記事のクラスタリング、スパムメールの検出など、「似ているものを見つける」タスク全般で威力を発揮します。画像の埋め込みを使えば、テキストで画像を検索したり、類似画像を見つけることも可能です。
選び方と注意点
埋め込みモデルを選ぶ際のポイントは、対応言語、ベクトルの次元数、処理速度、コストのバランスです。次元数が大きいほど表現力は高まりますが、ストレージと検索コストも増えます。また、日本語の精度は英語に比べてモデル間の差が大きいため、日本語での検索精度を事前にテストすることが重要です。OpenAIのtext-embedding-3-smallは、コストと精度のバランスが良く、日本語にも対応しているため、最初の選択肢として広く使われています。