「犬」という単語の意味を、たった1つのスイッチのON/OFFではなく、数百個の数値の組み合わせに「分散」させて持たせる——これが分散表現の発想です。単語の意味をコンピュータが計算できる形にするこの考え方は、word2vecからBERTまで、現代の自然言語処理を貫く基本概念になっています。

📖 ひと言でいうと

分散表現とは、単語や文を低次元の連続値ベクトル(実数の並び)で表現する手法です。意味に関する情報が特定の1次元ではなく、ベクトル全体の値のパターンに分散して埋め込まれていることから、この名前で呼ばれます。

例えるなら、人物紹介の方法の違いです。「出席番号12番の人」という紹介(one-hot表現に相当)は本人を特定できても人柄は何も伝えません。一方「社交性8、慎重さ3、行動力9…」のように複数の性質の数値で表す紹介(分散表現に相当)なら、番号が違っても「似た人」を見つけられます。分散表現は単語をこの後者の方式で表します。

🖼 1枚でわかる分散表現

分散表現
  • 定義 — 単語や文を低次元の連続ベクトルで表現する手法
  • 対になる概念 — one-hot表現(高次元・意味的な類似性を捉えられない)
  • 効果 — 意味や文脈情報をベクトル空間上で捉えられる
  • 代表手法 — Word2Vec(類似語が近くに配置・意味の演算が可能)
  • 発展形 — 文脈を考慮するELMo・BERT(多義語の解釈に強い)
つくもち屋「G検定対策」SUMMARY

📘 公式テキストの説明

分散表現は単語や文を低次元の連続ベクトルで表現する手法である。従来のone-hot表現では、各単語を高次元のベクトルで表し、単語間の意味的な類似性を捉えることが困難であった。これに対し、分散表現は単語の意味や文脈情報をベクトル空間上で捉えることが可能である。代表的な手法として、Word2Vecが挙げられる。これは、単語を固定長のベクトルで表現し、類似した意味を持つ単語同士が近い位置に配置されるよう学習するモデルである。例えば、「王」から「男性」を引き、「女性」を足すと「女王」が得られるといった演算が可能である。さらに、文脈を考慮した分散表現として、ELMoやBERTが開発された。これらのモデルは、単語の意味が前後の文脈によって変化することを捉え、多義語の解釈や文脈依存の意味理解に優れている。

この説明は3段構成です。①one-hot表現の限界(高次元・類似性を捉えられない)に対する解決策としての分散表現、②代表手法Word2Vec(類似語が近くに並び、意味の演算ができる)、③文脈を考慮した発展形ELMo・BERT(多義語に強い)です。

「低次元」「連続ベクトル」「意味的な類似性を捉える」という3つのキーワードが定義の核になります。

🔍 しっかり理解する

one-hot表現との対比で理解する

🅰 one-hot表現(局所表現)
  • 語彙数と同じ高次元、1カ所だけ1で残り0
  • 1つの次元が1つの単語を丸ごと担当
  • どの単語ペアも等距離で意味の類似性を表せない
🅱 分散表現
  • 数百次元程度の低次元、全要素に実数値
  • 意味の情報が全次元に分散して埋め込まれる
  • 意味の近い単語が近いベクトルになる

「分散」という名前の意味はここにあります。one-hot表現では「犬」の情報は「犬専用の1次元」に局所的に置かれます(局所表現)。一方、分散表現では「犬」の意味は数百個の数値のパターン全体で表され、どれか1つの次元を見ても「犬」だとはわかりません。その代わり、「猫」のパターンと「犬」のパターンは全体として似たものになり、意味の近さがベクトルの近さとして現れます。

Word2Vec:分散表現を実用にした代表手法

分散表現の代表的な手法がWord2Vecです。単語を固定長のベクトルで表現し、類似した意味を持つ単語同士が近い位置に配置されるよう、大量のテキストから学習します。学習された空間では「王」−「男性」+「女性」≒「女王」というベクトル演算が成り立ち、単語の意味的な関係が数値として捉えられていることを示します。

固定長ベクトルという点も地味に重要です。どんな単語も同じ次元数のベクトルになるため、機械学習モデルへの入力として扱いやすくなります。

発展形:文脈を考慮するELMoとBERT

Word2Vecの分散表現は「1単語につき1ベクトル」で固定です。しかし実際の言葉では、同じ単語でも文脈によって意味が変わります。たとえば「はしを渡る」と「はしで食べる」の「はし」は別物です。

この課題に応えたのが、文脈を考慮した分散表現であるELMoやBERTです。これらのモデルは、単語の意味が前後の文脈によって変化することを捉え、文が変われば同じ単語にも異なるベクトルを与えます。そのため多義語の解釈や文脈依存の意味理解に優れています。

💡 具体例で考える

「近い単語」を数値で見つける

分散表現の空間で「医者」のベクトルの近くを探すと、「看護師」「病院」「診察」といった単語が見つかります。これは人間が類義語辞書を作ったからではなく、大量の文章の中でこれらの単語が似た文脈に現れるため、学習の結果として自然に近くに配置されたものです。この「近さの計算」ができることで、検索での言い換え対応や、文書のカテゴリ分類の精度向上など、幅広い応用が可能になります。

多義語「bank」の2つの顔

英語の「bank」は「銀行」と「川岸」の2つの意味を持ちます。Word2Vecでは両方の用法が混ざった1つのベクトルしか持てませんが、BERTのような文脈考慮型の分散表現では、「I deposited money at the bank」の bank と「We walked along the river bank」の bank に別々のベクトルが与えられます。分散表現が「単語単位の固定表現」から「文脈ごとの動的表現」へ進化した典型例です。

⚠️ よくある誤解・紛らわしい用語

💡 ポイント
  • one-hot表現との混同 — one-hotは高次元・疎で意味的類似性を捉えられない「局所表現」、分散表現は低次元・連続値で意味を捉えられる表現です。両者は対概念として出題されます。
  • 単語埋め込みとの関係 — 分散表現は「意味を数値の分布(ベクトル)で持たせる」という概念・表現形式を指し、単語埋め込みはWord2Vecなどで単語をそのようなベクトルにする実装・手法を指します。試験ではほぼ同義に扱われることもありますが、この記事の整理を軸にすると混乱しません。
  • スキップグラムとの粒度の違い — スキップグラムは分散表現を学習するためのWord2Vec内の学習方式の1つです。「分散表現(概念)>単語埋め込み(手法)>スキップグラム(学習方式)」という粒度の階段で覚えましょう。
  • 「分散」は分散処理の意味ではない — 複数のコンピュータで処理を分ける分散コンピューティングとは無関係です。意味の情報がベクトルの各次元に分散している、という意味の「分散」です。

📝 試験でのポイント

💡 ポイント
  • 定義問題では「低次元の連続ベクトルで表現」「意味や文脈情報をベクトル空間上で捉える」という言い回しが正解の目印です。
  • one-hot表現(高次元・意味的類似性を捉えるのが困難)との対比は最頻出パターンです。特徴を入れ替えた誤答に注意しましょう。
  • Word2Vecの説明として「類似した意味の単語同士が近い位置に配置される」「王−男性+女性=女王の演算」が挙げられます。
  • 「文脈を考慮した分散表現=ELMo・BERT」「多義語の解釈に優れる」という対応は、Word2Vecとの違いを問う形で出題が想定されます。

📚 まとめ

💡 ポイント
  • 分散表現は、単語や文を低次元の連続ベクトルで表現し、意味の情報をベクトル全体に分散して持たせる手法です。
  • 高次元で意味的類似性を捉えられないone-hot表現の限界を解決し、意味の近さをベクトルの近さとして扱えます。
  • 代表手法のWord2Vecでは、類似語が近くに配置され、「王」−「男性」+「女性」≒「女王」のような演算が可能です。
  • 発展形のELMo・BERTは文脈によって変わる単語の意味を捉え、多義語の解釈や文脈依存の意味理解に優れています。