IT·テック

ワンホットエンコーディング

並んだ電球のうち、自分が選んだ項目の電球だけを「ピカッ」と1つ点灯させてコンピュータに教える信号機のようなものです。

  • 約4分
  • 図 1点
  • 2026-10-12 検証

定義

ワンホットエンコーディング(One-Hot Encoding)とは、文字や単語などの項目をコンピュータが計算できるように、0と1だけでできた数値データに変換する方法です。全項目の数だけ桁を用意し、該当するたった1つの桁だけに1を入れ、残りはすべて0で埋めて表現します。

なぜコンピュータには0と1の桁が必要なのでしょうか?

コンピュータは「りんご」「バナナ」「ぶどう」といった人間の言葉を直接理解できません。計算できるのは、0や1といった数値データだけです。そのため、文字の情報をAIやプログラムに入力するには、必ず数値に変換する作業が必要になります。

このとき、一番シンプルにりんごを1、バナナを2、ぶどうを3と番号を振ってしまうと、思わぬ問題が生じます。コンピュータは数字の大きさや順序をそのまま受け取るため、「バナナ(2)はりんご(1)の2倍大きい」とか、「りんご(1)とぶどう(3)を足すとバナナ(2)の2倍になる」といったおかしな数学的関係を勝手に作り出して計算してしまうのです。

こうした誤りを防ぐために生まれたのがワンホットエンコーディングです。単語ごとに専用の指定席を1つずつ配り、該当する席のランプだけを点灯(1)させます。こうすると、りんごは[1, 0, 0]、バナナは[0, 1, 0]、ぶどうは[0, 0, 1]となり、すべての単語が対等な距離を持つようになります。

もう少し正確に言うと:順序のないカテゴリカルデータ

もう少し正確に言うと、ワンホットエンコーディングは順序や大小の比較が必要ない「カテゴリカルデータ(分類項目)」を扱う際に使われます。データサイエンスの世界では、血液型(A型、B型、O型、AB型)や居住地域(東京、大阪、福岡)のように、項目同士に優劣や順番がない情報を扱う場面が非常に多いためです。

もし服のサイズのように「S(1)、M(2)、L(3)」といった順序や大きさに意味があるデータなら、連番を付けても問題ありません。しかし、血液型や単語には大きさも順序もないため、各項目を独立した次元の座標として切り離してあげる必要があります。

ワンホットエンコーディングを適用すると、異なる項目を表すデータベクトル(数値の並び)同士のなす角度が直角(90度)になります。数学的には異なる項目間の内積が0になり、項目同士の間に順序や大小といった不自然な関係を作らせない仕組みになっているのです。

致命的な弱点と「埋め込み」の登場

ワンホットエンコーディングは直感的でわかりやすい反面、扱う単語の数が増えると致命的な限界に直面します。もし辞書に載っている10万個の単語をすべてワンホットエンコーディングに変換すると、単語1つを表現するためだけに10万桁もの数字の列が必要になります。しかもそのうち99,999桁は無駄な0で埋め尽くされ、メモリや計算資源を浪費してしまうのです。

さらに大きな問題は、単語同士の意味のつながりをまったく表現できない点です。「王」と「女王」、「子犬」と「犬」は人間から見ればとても近い意味ですが、ワンホットエンコーディングの世界では「王」と「冷蔵庫」の距離と同じくらい、まったく対等で無関係なものとして扱われてしまいます。

こうしたスパース性(0が多すぎる問題)や意味の断絶を克服するため、現代のAIでは主に単語埋め込み(Embedding/エンベディング)という技術が使われています。0と1だけで表す代わりに、単語の意味を数十〜数千個の連続した小数にギュッと圧縮して空間に配置する方法です。

よくある誤解

誤解

AIモデルは、すべての文字データを常にワンホットエンコーディングだけで処理している。

事実

ワンホットエンコーディングは最も基礎的な変換手法の1つに過ぎません。現代の大規模言語モデル(LLM)や自然言語処理AIは、単語同士の意味やつながりを多次元の数値に落とし込む「埋め込み(Embedding)」技術を中核として利用しています。

日常で出会う場面

  1. 地下鉄の路線案内で、1号線、2号線、3号線をそれぞれ [1, 0, 0]、[0, 1, 0]、[0, 0, 1] と表すことで、番号の大小による不適切な計算を防ぎます。

  2. ネット通販サイトで、ユーザーが選んだ決済方法(クレジットカード、銀行振込、コード決済など)をAIレコメンドシステムに入力する際に使われます。

つまり ひとことで

ワンホットエンコーディングとは、コンピュータが単語同士を勝手に大小比較しないよう、たった1つの桁だけに1を立てて項目を公平に表現する手法です。

作成 2026-08-29 更新 2026-10-12 検証 2026-10-12