最終更新日:2026年8月26日
gk nlp
まず結論
One-hotとEmbeddingは、単語などの離散的な対象をどうベクトル化するかの違いです。
- One-hot:該当要素だけ1、他は0の高次元・疎な表現
- Embedding:学習によって得られる低次元・密な実数ベクトル
G検定では、「1か0」か「学習された実数ベクトル」かで切ると分かりやすいです。
直感的な説明
One-hotは出席番号のようなものです。
番号が違うことは分かりますが、番号だけから「犬と猫は近い」といった関係は分かりません。
Embeddingは、学習によって作られる座標のようなものです。
学習目的に応じて、似た使われ方をする単語が近いベクトルになることがあります。
定義・仕組み
One-hot
語彙数が10,000なら、基本的に10,000次元のベクトルを使います。
犬 → [1, 0, 0, ...]
猫 → [0, 1, 0, ...]
特徴は次のとおりです。
- 高次元になりやすい
- ほとんどが0なので疎(スパース)
- 単語間の類似関係をベクトル自体には持たない
Embedding
Embeddingでは、各単語IDに対応する低次元の実数ベクトルを持ちます。
犬 → [0.21, -0.14, 0.82, ...]
猫 → [0.24, -0.10, 0.79, ...]
このベクトルは、タスクの学習中に更新したり、Word2Vecなどで事前学習したものを利用したりできます。
重要なのは、Embeddingだから自動的に完全な意味を持つわけではなく、学習データと目的に依存することです。
いつ使う?(得意・不得意)
One-hot
- カテゴリを単純に区別したい
- 表現を分かりやすく保ちたい
ただし、語彙が大きいと次元数も大きくなります。
Embedding
- ニューラルネットワークへ単語IDを入力したい
- 低次元の密な表現を使いたい
- 単語間の関係を学習に利用したい
Embedding層の仕組みはEmbedding層で確認できます。
G検定ひっかけポイント
One-hotは類似度を表現できる
基本的には誤りです。
異なる単語は別々の軸に置かれるため、意味的な近さを直接表しません。
Embeddingは必ず固定値
誤りです。
ニューラルネットワークのEmbedding層では、通常は学習可能なパラメータとして更新できます。事前学習済みベクトルを固定して使う設定もあるため、「常に更新される」と断定するのも避けます。
Embeddingは単語の出現回数
誤りです。出現回数中心の表現はBoW、頻度と珍しさの重み付けはTF-IDFです。
判断基準
- 「該当位置だけ1」→ One-hot
- 「語彙数と同程度の高次元」→ One-hot
- 「低次元の実数ベクトル」→ Embedding
- 「学習可能なベクトル表」→ Embedding層
まとめ(試験直前用)
- One-hot=高次元・疎・1か0
- Embedding=低次元・密・実数ベクトル
- Embeddingは学習や事前学習で得られる
- 「類似性を直接持つか」で違いを見る
- One-hotは識別、Embeddingは学習可能な表現と切る