分散表現とは

ぶんさんひょうげんdistributed representation別名 Distributed Representation、埋め込みベクトル

1行定義

分散表現とは、単語などの意味を、多数の要素に情報を分散させた数百次元程度の実数ベクトルで表す表現方法のことです。

くわしく

分散表現は、単語などの意味を、数百次元程度の実数のベクトルで表す方法です。自然言語処理では、単語を分散表現のベクトルに変換することを、単語埋め込み(word embedding)とも呼びます。

ワンホットベクトルとの違い

単語をベクトルにするいちばん単純な方法は、ワンホットベクトルです。語彙が1万語なら1万次元のベクトルを用意し、その単語に対応する1か所だけを1、ほかを0にします。この方法には2つの弱点があります。

  • 語彙が増えるほど次元が大きくなり、ほとんどが0のベクトルになる。
  • どの2つの単語のベクトルも直交するため、「犬」と「猫」が似ていることを表せない。

分散表現では、1つの単語を、たとえば300個の実数の組み合わせで表します。意味の情報が多くの次元に少しずつ分かれて書き込まれていることが、「分散」という名前の由来です。似た文脈で使われる単語ほどベクトルが近くなるように学習するので、コサイン類似度などで意味の近さを測れます。

どう学習するか

代表的な手法がword2vecです。「似た文脈に現れる単語は意味も似ている」という分布仮説にもとづき、周辺の単語から中心の単語を予測する(CBOW)、またはその逆(スキップグラム)の課題を解かせて、ベクトルを学習します。学習した分散表現では、「王様」−「男性」+「女性」の結果が「女王」のベクトルに近くなる例が知られています。

word2vecでは単語ごとにベクトルが1つに固定されますが、その後、文脈に応じてベクトルが変わるELMoやBERTが登場しました。

背景

分散表現の考え方は、1980年代にHintonらが論じたものです。2003年にはBengioらが、単語の分散表現を学習するニューラル言語モデルを提案し、次元の呪いへの対策として位置づけました。

覚え方

「分散表現は、意味を多くの次元に少しずつ分けて書き込む」と覚えます。

G検定での出題

ワンホットベクトルとの違い(次元の大きさ、意味の近さを表せるか)、word2vecなどで学習されること、ベクトルの演算で意味の関係を表せること、単語埋め込みとの関係が問われます。

混同しやすい用語

用語意味
ワンホットベクトル語彙やカテゴリの数だけ次元をもち、該当する1つの要素だけが1で、残りの要素がすべて0のベクトル

◯×チェック

  1. 分散表現では、ベクトルの1つの次元が1つの単語に対応し、その単語のときだけその次元の値が1になる。

    答えを見る

    答え × 誤り

    それはワンホットベクトルの説明です。分散表現では、1つの単語の意味が多くの次元の値の組み合わせで表され、1つの次元は多くの単語の表現に関わります。

  2. 語彙が10万語あっても、分散表現なら各単語を数百次元程度のベクトルで表せる。

    答えを見る

    答え ◯ 正しい

    ワンホットベクトルでは、語彙数と同じ10万次元が必要です。分散表現は次元数を語彙数と切り離して決められるため、少ない次元に情報を密に詰め込めます。

  3. 分散表現と分布仮説は、同じ考え方を指す別名である。

    答えを見る

    答え × 誤り

    分布仮説は「似た文脈に現れる単語は意味も似ている」という考え方です。分散表現は意味をベクトルで表す方法です。word2vecは、分布仮説にもとづいて分散表現を学習します。

練習問題

分散表現の問題(4問)
  1. 単語の分散表現の手法
  2. 埋め込み行列による単語の変換
  3. 単語ベクトルの加減算による類推
  4. 同義語を含む文の類似度計算

AIで作成 人による確認:未 誤りを報告

出典と作成について

作成:ウカトレ編集部(AIで作成し、別のAIが一次資料と照合。手順は編集方針)

公開日: 最終更新日: 最終確認日:

対応シラバス:シラバス第1.4版 技術27

出典

改訂履歴

表示設定

テーマ
文字の大きさ
問題演習