問題 No.1916
自然言語処理において、カテゴリカルな単語を機械学習モデルに入力するため、該当するインデックスの位置のみを1とし、その他の要素をすべて0にする数値配列へ変換する手法として、最も適切なものはどれか。
【正解の解説】
単語を表現するために、該当要素だけを1とし残りを0にするワンホットベクトルに変換する
まるで大規模なクイズ番組の回答席で、自分が選んだ番号のボタンだけをピカッと光らせ、他のボタンはすべて消灯させておくような状態です。コンピュータは言葉のニュアンスを直接理解できないため、この「ピンポイントで1を立てる」というシンプルな仕組みを使うことで、どの単語の話をしているのかを正確に識別させることができます。
スポンサーリンク
【その他の選択肢の解説】
単語を表現するために、出現頻度に応じて各要素に重み付けを施したカウントベクトルに変換する
ワンホットベクトルが「単語の存在有無」だけを記録するのに対し、こちらは「その単語が何回出てきたか」の頻度を記録します。例えば「りんご」が3回出てくれば要素の値は3になります。文字の出現回数を重視する手法であり、単語の有無だけに注目するワンホットベクトルとは目的とデータの持ち方が異なります。
単語を表現するために、共起関係から得られた低次元の連続値ベクトルに圧縮する
ワンホットベクトルは語彙数が増えるとデータが無駄に巨大になり、単語同士の関係性が計算できません。そのため、文脈上の共起関係を利用して密な連続値に変換するワードエンベディングという別の手法と混同しないよう注意が必要です。次元圧縮を行う点や連続値を扱う点が、0と1だけで表すワンホットとは決定的に違います。
単語を表現するために、インデックスの位置を0としその他の要素をすべて1にする逆転ベクトルに変換する
ワンホットベクトルの仕組みをわざと反対にしたような架空の用語であり、機械学習の標準的な前処理としては基本的に用いられません。出題者が受験者の混乱を誘うために作った誤りの選択肢であり、該当部分だけを1にするという本質的なルールを正しく理解していればすぐに除外できるひっかけです。