ワンホットベクトル

記事数:(3)

アルゴリズム

ワンホットベクトルとは?意味・仕組み・活用例をわかりやすく解説

複数の数値をまとめて扱う数学的な道具のことを、ベクトルと言います。ベクトルは、まるで矢印のように、大きさだけでなく向きも持った量として捉えることができます。しかし、必ずしも向きを持つとは限らず、複数の数値をまとめて一つのものとして扱うための便利な表現方法として使われる場合も多くあります。 例えば、あるお店で売られているリンゴ、バナナ、ミカンの個数を考えてみましょう。リンゴが10個、バナナが5個、ミカンが8個だとします。このとき、[10, 5, 8] というように、それぞれの果物の個数を角括弧の中に並べて書くことで、一つのベクトルとして表現できます。このベクトルは、お店の果物の在庫状況を簡潔に表しています。それぞれの数値はベクトルの「成分」と呼ばれ、この場合は3つの成分を持つベクトルと言えます。 ベクトルを使うことで、様々なデータを分かりやすく表現し、効率的に処理できます。例えば、ある文章に含まれる単語の数を数えてベクトルとして表すことができます。「りんご」が2回、「バナナ」が1回、「みかん」が0回出てきたとすると、[2, 1, 0] というベクトルで表現できます。このように単語の出現回数をベクトルで表すことで、文章の特徴を捉えることができます。二つの文章のベクトルを比較することで、文章同士の類似度を測ることも可能です。 ベクトルは、データの種類や目的に応じて様々な形で表現され、データの分析や機械学習など、幅広い分野で活用されています。例えば、画像認識では、画像を小さな色のついた正方形の集まりとして捉え、それぞれの正方形の色を数値で表すことで、画像全体を一つのベクトルとして表現できます。このようにして表現された画像ベクトルは、画像の分類や検索などに利用されます。また、自然言語処理においても、単語や文章をベクトルで表現することで、文章の意味理解や機械翻訳などに役立てられています。
学習

局所表現:言葉のベクトル表現

計算機は、数を扱うことが得意です。しかし、言葉のような記号を直接理解することはできません。そこで、言葉を計算機が理解できる数に変換する必要があります。この変換方法の一つが、局所表現と呼ばれる手法です。局所表現では、単語一つ一つに固有の番号を割り当てます。そして、その番号に対応する場所に1を、それ以外の場所に0を配置したベクトルを作成します。これをワンホットベクトルと呼びます。 例として、「りんご」「みかん」「ぶどう」の三つの言葉を考えてみましょう。「りんご」には1番、「みかん」には2番、「ぶどう」には3番を割り当てます。すると、「りんご」を表すベクトルは、1番目の要素が1、それ以外の要素が0となります。具体的には、(1,0,0)のようなベクトルになります。同様に、「みかん」は2番目の要素が1、つまり(0,1,0)というベクトルで表されます。「ぶどう」は3番目の要素が1、つまり(0,0,1)というベクトルで表されます。このように、各単語は独立したベクトルで表現されます。 この局所表現には、単語間の関係性が全く考慮されていないという特徴があります。「りんご」と「みかん」はどちらも果物ですが、ベクトル上では全く関連性がないものとして扱われます。例えば、「りんご」と「みかん」のベクトルの内積を計算すると0になります。これは、「りんご」と「みかん」のベクトルが直交していることを意味し、数学的には類似性が全くないことを示しています。また、語彙が増えるごとにベクトルの次元数が増加するため、計算量が増大するという問題点もあります。これらの問題点を解決するために、分散表現と呼ばれる別の表現方法が用いられることもあります。
LLM

局所表現:言葉のベクトル化

私たちは、日々の暮らしの中で、様々な手段を使って気持ちを伝え合っています。話す言葉だけでなく、身振り手振りや表情、文字なども使います。コンピュータも私たちと同じように言葉を扱うためには、言葉を数字に変換し、矢印のようなもの(ベクトル)で表す必要があります。なぜなら、コンピュータは数字を使って計算や処理を行うからです。 言葉をベクトルで表す方法はたくさんありますが、その中でも基本的な方法の一つに局所表現というものがあります。局所表現は、ある言葉が現れた時、その言葉の前後にある言葉との関係性に着目します。例えば、「読書が好きです」という文では、「読書」という言葉の前後に「好き」という言葉があることで、「読書」の意味をある程度理解することができます。このように、周りの言葉との関係性から、その言葉が持つ意味を捉えるのが局所表現です。 局所表現は、一つ一つの言葉に番号を付け、その番号を使ってベクトルを作るという簡単な方法です。例えば、「私は本を読むのが好きです」という文と「私は映画を見るのが好きです」という文があるとします。「本」と「映画」という言葉は違いますが、同じように「読む」や「見る」といった言葉と一緒に使われます。局所表現では、このような言葉の使われ方の共通点を捉えて、似た意味を持つ言葉は似たようなベクトルで表現されます。 しかし、局所表現だけでは、言葉の細かい意味の違いや、文脈全体の意味を捉えることは難しいという欠点もあります。例えば、「明るい部屋」と「明るい未来」の「明るい」という言葉は、同じ言葉ですが、それぞれ異なる意味で使われています。局所表現では、このような文脈に依存した意味の違いをうまく表現できません。そこで、より高度な表現方法として、分散表現といった手法も開発されています。