局所表現 (G検定)

局所表現

1. 定義と概要

局所表現(local representation)とは、自然言語処理においてある概念、多くの場合は単語を、ベクトルの中のただ1つの要素(次元)だけに対応させて表す方式です。代表例はワンホットベクトル(該当する単語の位置だけが1で、それ以外が全部0になっている数字の並び)です。

語彙(扱う対象となる単語の集合、単語の辞書のようなもの)に含まれる単語それぞれに固有の位置を割り当て、その位置だけを1、それ以外をすべて0にします。たとえば語彙が「猫」「犬」「鳥」の3語だとすると、単語とベクトルは次のように対応します。

単語 割り当てられるベクトル
猫 (1,0,0)
犬 (0,1,0)
鳥 (0,0,1)

どの単語も1が立つ位置が1か所だけで、そこがその単語の居場所になっている点が見て取れます。この「1概念につき1次元」という割り当て方が、局所表現という呼び名の由来です。

自然言語処理でコンピュータに単語を扱わせるには、単語を数値であるベクトルに変換する必要があります。初期の代表的な変換方式が局所表現、つまりワンホットベクトルで、各単語を独立した記号として区別するだけの単純な仕組みでした。

語彙数の増加にともない次元数が語彙数と同じだけ必要になり、ベクトルの大半が0で埋まる高次元で疎(スパース。ベクトルの中身のほとんどが0で埋まっている状態)な状態になる点が課題でした。さらに各次元が互いに独立している(直交している。要素同士が互いに関係を持たず、それぞれ別々に存在している状態)ため、単語同士の意味的な近さを一切表現できません。

この課題を克服する方式として分散表現(複数の数値の組み合わせで単語の意味を表す方式で、似た意味の単語同士は数値が近くなる)が登場し、現在の自然言語処理の主流になっています。

2. 試験対策ポイント

局所表現の性質としてまず整理したいのは、1つの概念に1つの次元を対応させるという点です。代表例がワンホットベクトルであることに加え、単語と次元の対応関係が明確で解釈しやすいという特徴もあわせて押さえておきたいポイントです。

制約として取り違えやすいのは、語彙数がそのまま次元数になるため次元数が膨大かつ疎になる点、そして各次元が独立している、つまり直交しているため単語同士の意味の近さや関連性を表現できない点が挙げられます。この2つは局所表現の限界を説明するうえで欠かせない論点になります。

対概念にあたる分散表現(distributed representation)は、複数の次元の組み合わせで1つの概念を表す密(デンス。ベクトルの各要素に0以外の値が広く入っている状態)なベクトルで、意味の近さをベクトル間の距離として捉えられます。局所表現との対比軸として整理しておきたいところです。

分散表現を学習する代表的な手法にword2vec(単語の分散表現を作る代表的な学習手法の1つ)やBERT(文脈を考慮して単語や文の分散表現を作るモデルの1つ)がありますが、学習の仕組み自体は別の機会に扱う論点です。

また、局所表現の考え方を単語単位から文書単位に応用した手法にBag-of-Words(BoW)があります。BoWは、文書内に含まれる単語の出現有無や頻度をベクトルの各要素にする手法で、局所表現の応用例として名称と位置づけを関連づけておきたいところです。

3. 関連概念との比較・相違点

分散表現との最大の違いは、1つの概念をいくつの次元で表すかという点にあります。対比の軸ごとに並べると、両者の性格の違いが見通しやすくなります。

観点 局所表現 分散表現
1概念に使う次元 1つの次元だけ 複数の次元の組み合わせ
ベクトルの密度 疎。大半が0で埋まる 密。各要素に値が広く入る
意味の近さ 次元が独立しており表せない ベクトル間の距離として捉えられる
単語の扱い方 単なる記号として区別する 意味的な関係をベクトル空間に落とし込む

局所表現は単語同士の対応関係が明確なぶん、似た意味の単語が近くに並ぶといった情報は持ちません。一方の分散表現は、似た意味を持つ単語ほどベクトル間の距離が近くなる性質を備えています。

Bag-of-Words(BoW)との違いは、対象とする単位にあります。局所表現は個々の単語という記号1つをベクトル化する基本的な考え方であるのに対し、BoWはその考え方を土台にして、文書全体を単語の出現有無や頻度のベクトルとして表す応用的な手法です。

局所表現が単語をどう数値化するかという単位の話であるのに対し、BoWは文書をどう数値化するかという単位の話であり、対象範囲が一段階広い関係にあります。

4. ビジネス・実務での活用シナリオ

検索エンジンや情報検索の分野では、文書やクエリをキーワードの一致で照合する基礎的な仕組みに局所表現の考え方が使われています。単語をそのまま独立した記号として扱うため実装がシンプルで高速に照合できる一方、表記ゆれや同義語をうまく吸収できない点が制約です。

スパムフィルタや文書分類の初期システムでは、BoWのように局所表現をベースにして単語の出現有無を特徴量(分析に使う数値化した特徴)にしたシンプルな分類モデル(データをカテゴリに仕分ける機械学習の仕組み)が使われてきました。

仕組みが単純で実装しやすいことから、大量のメールや文書を高速にふるい分ける初期のテキスト分類やスパム判定の土台として普及した経緯が知られています。表現力の限界を実装のしやすさで補ってきた事例です。

自然言語処理に限らず、性別や都道府県のようなカテゴリ変数を機械学習モデルに入力できる数値に変換する前処理としても、局所表現と同じ考え方が使われています。この処理はone-hotエンコーディング(カテゴリ変数を局所表現と同じ考え方でベクトルに変換する前処理の方法)と呼ばれ、カテゴリ同士に大小関係を持ち込まずに区別できる点が、扱いやすさにつながっています。

5. 要点まとめ

  • 局所表現は1つの概念を1つの次元だけに対応させる表現方式で、代表例はワンホットベクトルです。
  • 語彙数がそのまま次元数になるため高次元で疎になり、各次元が独立しているため単語の意味の近さを表現できません。
  • 対概念の分散表現は複数次元の組み合わせで密に表現し、ベクトル間の距離から意味の近さを捉えられます。

6. 確認問題

問1局所表現は、1つの概念(単語など)を1つの要素(次元)だけに対応させて表す方式であり、代表例としてワンホットベクトルが挙げられる。

解答・解説をみる

○ 正しい

局所表現の定義そのものです。語彙内の各単語に固有の位置を割り当て、その位置だけを1にするワンホットベクトルが代表例にあたります。

問2局所表現は、語彙に含まれる単語の数が増えても次元数が一定に保たれるため、大規模な語彙を扱う際に効率的である。

解答・解説をみる

× 誤り

正しくは逆の関係にあります。局所表現は語彙数がそのまま次元数になるため、語彙が増えるほど次元数も比例して増加し、ベクトルは高次元かつ疎になります。

問3分散表現は複数の次元の組み合わせで概念を表す密なベクトルであり、局所表現に比べてベクトル間の距離から単語同士の意味の近さを捉えやすい。

解答・解説をみる

○ 正しい

分散表現は低次元で密なベクトルとして単語を表現し、ベクトル空間上の距離や位置関係から意味の近さを表現できる点が局所表現との違いです。