目次
コンピュータは本質的にテキストを理解できない。「猫」と「ネコ」が同じ動物を指すことも、「王様」と「王女様」の関係も、生のテキストデータからは見えない。この壁を乗り越えるために開発されたのが「埋め込み(Embeddings)」という概念だ。単語や文章を数値のベクトルとして表現することで、意味的な関係を数学的に扱えるようにする——これが埋め込みの本質である。
ワンホットエンコーディングの限界
埋め込みの重要性を理解するために、まず素朴なアプローチの限界から考えよう。
最も単純なテキストの数値化は「ワンホットエンコーディング」だ。語彙(辞書)に含まれる単語の数を次元数とするベクトルを用意し、対象の単語に対応する次元だけ1、残りは0にする。
日本語の語彙が10万語あれば、各単語は10万次元のベクトルになる。「猫」は特定の一次元だけが1のベクトル、「犬」は別の一次元だけが1のベクトルだ。
この表現には致命的な問題がある。「猫」と「犬」のベクトルの内積は0だ。「猫」と「ライオン」の内積も0。「猫」と「自動車」の内積も同じく0。すべての単語が等距離にあり、意味的な関係がまったく表現できない。
分散表現とは
埋め込みは「分散表現(Distributed Representation)」と呼ばれる考え方に基づく。単語の意味を特定の次元に集中させるのではなく、数百次元のベクトル空間に分散させて表現する。
埋め込みベクトルでは、「猫」と「犬」は近い位置にあり、「自動車」は遠い位置にある。この「近さ」が意味的な類似性を反映する。コサイン類似度(ベクトルのなす角のコサイン)などの指標で類似性を定量的に評価できる。
コサイン類似度は-1から1の値をとり、1に近いほど意味的に近い、-1に近いほど対義的、0は無関係であることを示す。
Word2Vec:埋め込みの革命
現代の埋め込み技術の原点は、Word2Vecだ。2013年に発表されたこの手法は、「単語の意味はその文脈から定まる」という言語学の仮説(分布仮説)を機械学習で実現した。
Word2Vecには2つの学習アーキテクチャがある。
CBOW(Continuous Bag of Words): 周辺の単語から中央の単語を予測するタスクで学習する。「昨日、公園で__を散歩させた」という文脈から「犬」を予測するようなものだ。
Skip-gram: 中央の単語から周辺の単語を予測する。「犬」という単語から「公園」「散歩」などの周辺語を予測する。
どちらも、この予測タスクを大量のテキストコーパスで学習することで副産物として高品質な埋め込みを獲得する。大量の文章を読み込むことで、同じ文脈に現れやすい単語は近いベクトルを持つようになる。
Word2Vecで最も有名な発見は「王 - 男 + 女 = 女王」という関係性だ。埋め込み空間でベクトル演算を行うと、意味的な関係がアナロジーとして表れることが示された。これは、ベクトル空間に意味的な構造が生まれていることの証拠だ。
GloVe:共起行列からの学習
Word2Vecと並んで影響力を持ったのがGloVe(Global Vectors for Word Representation)だ。テキスト全体での単語の共起統計を用いて埋め込みを学習する。
Word2Vecが局所的な文脈(スライディングウィンドウ内の共起)を使うのに対し、GloVeはコーパス全体の統計を活用する。両者は異なるアプローチだが、品質は概ね同等で、タスクによってどちらが優れるかは異なる。
Transformerによる文脈依存埋め込み
Word2VecとGloVeには共通の限界がある。各単語に固定の埋め込みベクトルが割り当てられる点だ。「銀行に預金する」の「銀行」と「川の銀行(堤防)」は同じベクトルで表現されてしまう。多義語の問題を解決できない。
この問題を根本的に解決したのがBERT(2018年)に代表されるTransformerベースの文脈依存埋め込みだ。
Transformerは入力文全体を見ながら、各単語のベクトルを動的に計算する。Self-Attentionメカニズムにより、「銀行」という単語のベクトルは、周辺に「預金」や「金利」があるか「川」や「堤防」があるかによって異なる値になる。
同じ「銀行」という単語でも、文脈に応じて異なるベクトルが生成される——これが文脈依存埋め込みの本質だ。
埋め込みの次元数と品質
埋め込みの次元数(ベクトルの長さ)は品質に影響する。
Word2Vecでは100〜300次元が一般的だった。BERTの埋め込みは768次元、GPT-3では12,288次元に達する。次元数が増えると表現能力が上がるが、計算コストも増加し、少量のデータでの学習が困難になる(次元の呪い)。
適切な次元数はタスクとデータ量に依存するが、一般的なテキスト分類であれば256〜768次元で十分な場合が多い。
RAGでの埋め込み活用
現代のAIシステムでは、埋め込みはRAG(Retrieval-Augmented Generation)の中核技術として重要な役割を担う。
RAGでは、まず大量のドキュメントを埋め込みベクトルに変換してベクトルデータベースに保存する。ユーザーの質問も埋め込みに変換し、コサイン類似度などを使って最も関連性の高いドキュメントを検索する。見つかったドキュメントをLLMのコンテキストに含めて回答を生成する。
この仕組みにより、LLMの知識外の情報(社内ドキュメント、最新情報など)に基づいた回答が可能になる。埋め込みの品質が高いほど、関連ドキュメントの検索精度が上がり、最終的な回答品質が向上する。
埋め込みの比較と選択
実際のシステム構築では、どの埋め込みモデルを選ぶかが重要な設計決定だ。
汎用的なタスクには、広範なデータで事前学習された大規模モデルの埋め込みが有効だ。ドメイン特化の場合(医療・法律・金融など)は、そのドメインのテキストでファインチューニングされた埋め込みモデルが優れた性能を発揮することが多い。
多言語対応が必要な場合は、多言語埋め込みモデルを使う。同じ意味の英語と日本語の文が近いベクトルで表現されるため、言語をまたいだ検索が可能になる。
埋め込みの品質評価には、意味的類似度ベンチマーク(STSなど)や、下流タスク(分類、検索など)での性能指標を用いる。
まとめ
埋め込みは、テキストを数値の意味空間にマッピングする技術だ。ワンホットエンコーディングの限界を克服し、Word2Vecの登場で意味的な関係を数学的に扱えるようになった。さらにTransformerによる文脈依存埋め込みは、多義語の問題を解決し、現代のNLPシステムの基盤となった。
RAGをはじめとする現代のAIシステムにおいて、埋め込みは「意味的な検索」を実現する核心技術だ。LLMが直接答えられない知識を外部から引き出す仕組みの鍵が埋め込みにある。テキストを数値ベクトルに変換するという操作の背後にある原理を理解することは、AIシステムの設計・評価・改善に取り組む上で不可欠な基礎知識である。
免責事項 — 掲載情報は執筆時点のものです。料金・機能は変更される場合があります。最新情報は各公式サイトをご確認ください。