本文へ移動

G検定(ジェネラリスト検定)

わんほっとべくとる

ワンホットベクトル

One-hot Vector

1つの要素だけが1で残りがすべて0のベクトルです。語彙の単語や分類のクラスを表すのに使われ、埋め込み行列に掛けると対応する単語の埋め込みを取り出せます。

詳しい説明

語彙の単語ごとに1つの次元を持つベクトル

ワンホットベクトルは、1つの要素だけが1で、残りの要素がすべて0であるベクトルです。自然言語処理で入力の単語(トークン)を表すときには、語彙に含まれる単語の数と同じ数の次元を持つ形、つまり 1×|V| の形のベクトルとして使われます。ここで |V| は語彙の大きさで、語彙の中の各単語に1つずつ次元が割り当てられます。

値が1になるのは、その単語が語彙の中で持つインデックスに対応する次元だけです。たとえば dessert という単語が語彙の中でインデックス3を持つ場合、この単語のワンホットベクトルは x3=1 となり、3以外のすべての i について xi=0 となります。

埋め込み行列から単語の行を取り出す掛け算

ワンホットベクトルは、埋め込み行列から単語の埋め込みを選び出す操作を、別の見方で捉えるときに役立ちます。入力の単語をワンホットベクトルで表しておくと、埋め込みの選択を行列の掛け算として書けるからです。

0でない要素が xi=1 の1つだけであるワンホットベクトルを埋め込み行列に掛けると、単語 i に対応する行ベクトルだけが選び出され、結果として単語 i の埋め込みが得られます。ほかの要素はすべて0なので、ほかの単語の行は結果に入りません。埋め込み行列から該当する行を選ぶ操作と、ワンホットベクトルを掛ける操作が同じ結果になる、という点がこの表現の要点です。

入力系列全体を行列で表す

この考え方は、1つの単語だけでなく入力のトークン系列全体に広げられます。入力の N 個の位置それぞれに1つずつワンホットベクトルを用意し、それらを並べた行列として系列全体を表します。

分類問題の正解ラベルとしてのワンホットベクトル

同じ形のベクトルは、ニューラルネットワークの学習で分類問題の正解ラベルを表すときにも使われます。正解のクラスがただ1つに決まるハードな分類(hard classification)を考えると、正解ラベル y は K 個の要素を持つベクトルになり、各要素が1つのクラスに対応します。正解のクラスが c であれば yc=1 で、y のほかの要素はすべて0です。このように、1つの値だけが1で残りが0のベクトルがワンホットベクトルと呼ばれます。

2つの使われ方に共通する形

単語の表現と正解ラベルの表現では、次元が何に対応するかが違います。単語の場合は語彙の各単語に、正解ラベルの場合は K 個の各クラスに、1つずつ次元が対応します。一方で、対応する1か所だけが1で、ほかはすべて0という形は共通しています。どちらの場面でも、ベクトルのどの位置が1になっているかを見れば、どの単語か、どのクラスかが分かります。

試験で問われること

G検定

  • 語彙の大きさが |V| のとき、単語を表すワンホットベクトルは何次元で、どの要素が1になり、ほかの要素はどんな値になるか説明できますか。
  • 単語 i のワンホットベクトル(xi=1、ほかは0)を埋め込み行列に掛けると、結果として何が得られるか説明できますか。
  • 正解のクラスがただ1つに決まる分類問題で、K 個のクラスのうち正解がクラス c のとき、正解ラベル y をワンホットベクトルでどう表すか説明できますか。
  • 入力のトークン系列全体を、N 個の位置それぞれのワンホットベクトルを並べた行列として表す考え方を説明できますか。

最終更新日: 2026/09/23