AI・機械学習
中級

テキスト埋め込み(Embedding)(テキストウメコミ)

テキスト埋め込み(Embedding)とは、単語・文・文書などのテキストデータを固定長の実数ベクトルに変換する手法で、意味的に近いテキスト同士がベクトル空間上で近くに配置されるため、検索・分類・クラスタリングなど多様なNLPタスクの基盤技術として利用される。

0 回閲覧
0 いいね

テキスト埋め込み(Embedding)は、自然言語処理(NLP)において最も重要な基盤技術の1つである。人間が理解するテキストをコンピュータが処理可能な数値ベクトルに変換し、テキスト間の意味的な類似度を数学的に計算可能にする。2013年のWord2Vecの登場以降、BERT(2018年)、Sentence-BERT(2019年)、そして2023〜2026年のLLMベース埋め込みモデルへと急速に進化してきた。

埋め込みの基本概念

埋め込みとは、高次元の離散的なテキストデータを低次元の連続的なベクトル空間にマッピングする操作である。

  • トークン埋め込み: 個々のトークン(単語やサブワード)を固定長ベクトルに変換。次元数は通常256〜4096
  • 文埋め込み: 文全体を1つの固定長ベクトルに変換。Sentence-BERTやE5が代表的
  • 文書埋め込み: 数千トークン規模の文書全体を1つのベクトルに圧縮。検索や分類に使用
  • マルチモーダル埋め込み: テキストと画像を同一ベクトル空間に配置。CLIP(OpenAI, 2021)が先駆け

埋め込みの次元数と性能の関係

モデル次元数パラメータ数MTEB平均スコア用途
Word2Vec100〜300--単語類似度(古典)
GloVe50〜300--単語類似度(古典)
BERT-base768110M56.3文分類・固有表現抽出
Sentence-BERT768110M61.5文類似度・検索
E5-large-v21024335M66.3汎用検索・分類
text-embedding-3-large(OpenAI)3072非公開69.1商用API検索
Cohere embed-v41024非公開71.8商用API検索
BGE-M3(BAAI)1024568M68.2多言語検索
Jina Embeddings v31024570M69.8多言語・マルチタスク
NV-Embed-v2(NVIDIA)40967.8B72.3高精度検索(大規模)

埋め込みモデルの世代分類

第1世代: 静的埋め込み(2013〜2017)

Word2Vec、GloVe、FastTextなど。各単語に1つの固定ベクトルを割り当てる。文脈を考慮しないため「bank」が「銀行」と「川岸」で同じベクトルになる問題(多義語問題)がある。

第2世代: 文脈付き埋め込み(2018〜2021)

ELMo、BERT、RoBERTaなど。トランスフォーマーアーキテクチャにより、文脈に応じて同じ単語でも異なるベクトルを生成する。ただしBERTの[CLS]トークンは文類似度タスクに直接使うと性能が低い(Sentence-BERTの論文で指摘)。

第3世代: 対照学習ベース(2019〜2024)

Sentence-BERT、SimCSE、E5、BGE、GTEなど。対照学習(contrastive learning)により、意味的に近い文ペアのベクトルを近づけ、遠い文ペアを離す学習を行う。MTEB(Massive Text Embedding Benchmark)で評価。

第4世代: LLMベース埋め込み(2024〜現在)

NV-Embed-v2、SFR-Embedding、LLM2Vecなど。70億パラメータ超のLLMを埋め込みモデルとして利用。instruction-following能力を活かし、タスク指示付きの埋め込みが可能。

主要な応用分野

  • セマンティック検索: ユーザークエリと文書の埋め込みをコサイン類似度で比較。キーワード一致不要で意味的に関連する結果を返す
  • RAG(Retrieval-Augmented Generation): LLMに外部知識を注入するため、関連文書を埋め込み検索で取得する
  • テキスト分類: 埋め込みベクトルをSVM/ロジスティック回帰/ニューラルネットの入力にして分類
  • クラスタリング: 文書群を埋め込みベクトル化し、k-means/HDBSCANで自動分類
  • 重複検知: ニュース記事やFAQの重複を埋め込みの近さで検出
  • 推薦システム: ユーザーの過去の行動履歴とアイテム説明を同一空間に埋め込み、類似度ベースで推薦

よくある質問(FAQ)

Q1: 埋め込みモデルの次元数は大きいほど良いですか? A: 一般的に次元数が大きいほど表現力が高いが、ストレージコストと検索速度のトレードオフがある。768次元で十分な精度が得られるケースが多く、3072次元は大規模な商用検索システム向け。OpenAIのtext-embedding-3-largeは次元削減オプション(256/1024等)も提供しており、精度とコストのバランスを調整可能。

Q2: 日本語テキストにはどの埋め込みモデルが適していますか? A: 多言語対応のBGE-M3(BAAI)、multilingual-e5-large-instruct、またはOpenAI text-embedding-3-largeが高精度。日本語特化ではGLuCoSE(東北大学)やcl-nagoya/sup-simcse-ja-baseも選択肢になる。

Q3: 埋め込みとファインチューニングの違いは何ですか? A: 埋め込みはテキストをベクトルに変換する推論時の操作。ファインチューニングは埋め込みモデル自体を特定ドメインのデータで追加学習し、そのドメインでの埋め込み品質を向上させる訓練時の操作。

まとめ

  • テキスト埋め込みは自然言語を固定長ベクトルに変換するNLPの基盤技術
  • Word2Vec(2013)から始まり、BERT→Sentence-BERT→LLMベースへ4世代の進化
  • 検索・RAG・分類・クラスタリングなど多様な応用がある
  • 2025〜2026年はLLMベースの高精度埋め込み(NV-Embed-v2等)と多言語対応が主流トレンド