ワンホットベクトル【one-hot vector】ワンホット表現

概要

ワンホットベクトルとは、自然言語処理で単語などの質的データを数値の列に変換する最も基本的な手法。一つの要素だけが「1」で、それ以外がすべて「0」であるようなベクトルとして単語を表現する。文字列としての単語を数値計算が可能な形式に変換でき、構造が単純で直感的に理解しやすい。
ワンホットベクトルのイメージ画像

まず、解析対象となる全データの中に存在する一意な単語をすべて洗い出し、それらを並べた語彙リストを作成する。個々の単語をベクトル化する際は、そのリストの単語数と同じ長さの配列を用意し、該当する単語に該当するインデックスの位置の要素のみを「1」とし、他のすべての要素を「0」に設定する。

例えば、ある動物についての文章を解析したところ、現れる語彙が「猫」「犬」「鳥」の三つだった場合、「猫」を表すベクトルは最初の要素を1とした [1, 0, 0] になり、「犬」は二番目の要素のみを1とした [0, 1, 0]、「鳥」は [0, 0, 1] と表現される。

各単語がベクトル空間上の独立した軸として定義され、各ベクトルは互いに直交している。概念の重複がないことを明確に示せるため、カテゴリ変数(質的変数)の表現として用いることができる。一方で、異なる単語同士の関係性はベクトル上では表現されず、すべての単語は互いに等距離に配置されるため、意味的に近い語と遠い語の区別ができず、文脈や類似性を考慮した処理には適していない。また、語彙数が増大するとベクトルの次元数も同様に増加し、記憶容量や計算量を浪費するという問題もある。

この記事の著者 : (株)インセプト IT用語辞典 e-Words 編集部
1997年8月より「IT用語辞典 e-Words」を執筆・編集しています。累計公開記事数は1万ページ以上、累計サイト訪問者数は1億人以上です。学術論文や官公庁の資料などへも多数の記事が引用・参照されています。