ワンホットベクトル (G検定)

ワンホットベクトル

1. 定義と概要

ワンホットベクトルとは、語彙数(またはカテゴリ数)と同じ長さを持つベクトルのうち、該当する1つの要素だけが1で、残りすべての要素が0になる表現方法です。

例えば語彙が「犬」「猫」「机」の3語であれば、「犬」=(1, 0, 0)、「猫」=(0, 1, 0)、「机」=(0, 0, 1)のように表されます。単語やカテゴリのような質的なデータを、機械学習アルゴリズムが計算できる数値情報に変換する、もっとも素朴な方法の一つです。

機械学習のアルゴリズムは数値の演算をもとに動くため、文字列のままの単語やカテゴリを直接学習に使うことはできません。かといって各カテゴリに0、1、2…というように単純に番号を振ると、実際には存在しない大小関係や順序を、モデルが誤って読み取ってしまう恐れがあります。

そこで、それぞれのカテゴリを独立した次元に割り当て、該当する箇所だけを1にすることで順序関係を持たせずに数値化する方法が求められました。ワンホットベクトルは、自然言語処理の出発点として長く使われてきた表現方法です。

2. 試験対策ポイント

まず整理したいのは、ワンホットベクトルが持つ疎(スパース、ベクトルの大部分の要素が0で、情報の密度が低い状態)な性質です。語彙数(またはカテゴリ数)とベクトルの次元数が一致し、対応する1要素だけが1で残りがすべて0になるため、1つの要素だけに情報が集中します。

こうした性質を持つ表現方式は局所表現(1つの要素だけが情報を持ち、残りが0になる性質を持つ表現方式の総称)と呼ばれ、ワンホットベクトルはその代表例にあたります。語彙数が増えるほどベクトルの次元数も比例して増加し、大部分の要素が0で埋まる高次元で疎なベクトルになっていきます。

次元数が膨大になると、次元の呪い(データの次元が増えすぎて学習に必要なデータ量が不足する問題)につながり、計算コストやメモリ使用量の増加、過学習のリスクも生じます。

あわせて整理しておきたいのが、単語どうしの意味的な近さを表現できないという限界です。ワンホットベクトルは、どの2つの単語のベクトルどうしでも内積(2つのベクトルの対応する要素どうしをかけ合わせて足し合わせた値)が0になり、直交(2つのベクトルの向きにまったく関連がない状態)します。

あわせて、コサイン類似度(2つのベクトルの向きがどれだけ近いかをマイナス1から1の数値で表す指標)も0になります。そのため、意味の近い単語どうしも遠い単語どうしも、数値上は同じ距離として扱われてしまいます。

多クラス分類のタスクでは、正解ラベル(教師信号)をワンホットベクトルとして表現し、ニューラルネットワークのSoftmax関数(出力を、合計が1になる確率のような数値に変換する関数)による出力と比較する場面でも使われます。両者のズレは交差エントロピー誤差(正解ラベルと予測結果のズレの大きさを数値化する損失関数)として計算され、学習の進み具合を測る指標になります。

3. 関連概念との比較・相違点

分散表現との最大の違いは、ベクトルが疎か密かという点、そして意味を表現できるかどうかという点にあります。軸ごとに並べると、次のように整理できます。

観点 ワンホットベクトル 分散表現
ベクトルの密度 疎。大部分が0で埋まる 密。多くの要素が0以外の値を持つ
意味の表現 単語どうしの意味の近さを表せない 意味の近い単語を空間上の近い位置に置ける
次元数 語彙が増えるほど膨らむ あらかじめ決めた固定の低い次元数

ワンホットベクトルは各次元が独立しているため、単語どうしの関係は数値に表れません。一方の分散表現は、単語の意味情報を各次元に分散させて持たせることで、意味の近さをベクトル空間上の位置として扱えます。

局所表現との関係は、比較というより包含にあたります。1つの要素だけが情報を持ち残りが0になる性質を持つ表現方式は局所表現と総称され、ワンホットベクトルはその代表例に位置づけられます。

ワンホットベクトルと分散表現の対比は、局所表現全体と、意味を複数の次元に分散して持たせる表現方式全体との対比にも重なる関係にあります。

4. ビジネス・実務での活用シナリオ

画像認識の分野では、犬・猫・鳥のような複数クラスを見分ける分類モデルの学習で、正解ラベルをワンホットベクトルとして与え、モデルのSoftmax出力との誤差を交差エントロピー誤差として計算しながら学習を進めます。順序を持たない複数のクラスをどれも同じ重みで平等に扱えることが、この用途の前提になっています。

自然言語処理(人間の言葉をコンピュータに処理させる技術分野)や検索エンジンの分野でも、文書分類や検索の初期段階で単語をワンホットベクトル化し、数値の集合として扱う場面があります。もっとも、意味的な検索精度を高める段階ではWord2Vecのような分散表現への変換が使われることが多く、素朴な数値化と意味をとらえる数値化とで役割が分かれています。

小売やレコメンドの現場では、商品カテゴリや会員ランクのような質的なデータをワンホットベクトルとして数値化し、機械学習モデルへの入力に用います。順序のないカテゴリを公平に扱いたい場面で選ばれる、基本的な数値化の手段です。

5. 要点まとめ

  • ワンホットベクトルは、語彙数(またはカテゴリ数)と同じ長さのベクトルのうち該当する要素だけが1で残りがすべて0になる、単語やカテゴリを数値化する最も素朴な表現方法です。
  • 語彙数が増えるほど次元数が比例して増加して疎なベクトルになり、次元の呪いや計算コスト・メモリ使用量の増大につながります。
  • どの2つの単語のベクトルも直交し意味的な距離を表現できない限界があり、密で低次元なベクトルで意味の近さを表せる分散表現がこの限界を克服する対概念にあたります。

6. 確認問題

問1ワンホットベクトルは、語彙数(またはカテゴリ数)と同じ長さのベクトルのうち、該当する要素だけが1で残りがすべて0になる表現方法である。

解答・解説をみる

○ 正しい

ワンホットベクトルの定義そのものです。1つの要素だけに情報が集中するこの表現方式は、局所表現と総称されます。

問2ワンホットベクトルは、意味が近い単語どうしほどベクトル間の距離が小さくなるように設計されている。

解答・解説をみる

× 誤り

正しくは、ワンホットベクトルはどの2語の組み合わせでも直交し、数値上は同じ距離として扱われるため、単語間の意味的な近さを表現できません。意味の近い単語どうしを近い距離で表現できるのは、分散表現の特徴です。

問3語彙数が多い自然言語処理のタスクでワンホットベクトルを用いると、ベクトルの次元数が語彙数に比例して増加し、次元の呪いなどの課題につながりやすい。

解答・解説をみる

○ 正しい

語彙数と次元数が一致するため、語彙が数万語規模になれば同じ次元数の疎なベクトルになり、計算コストやメモリ使用量の増加、過学習のリスクにつながります。