局所表現とは、自然言語処理において、単語や文脈を離散的な記号(例えば、one-hotベクトル)で表現する手法です。単語や文脈を個別の要素として扱い、それらの間の関係性を明示的に表現することはせず、各要素を独立した記号として扱います。
局所表現の基本的な考え方
局所表現では、語彙に含まれる各単語に固有の識別子(ID)を割り当て、それをone-hotベクトルで表現します。one-hotベクトルとは、ベクトルの要素のうち、特定の要素のみが1で、残りの要素が0であるベクトルです。
例えば、語彙が「猫」、「犬」、「鳥」の3つの単語からなる場合、「猫」は[1, 0, 0]、「犬」は[0, 1, 0]、「鳥」は[0, 0, 1]のように表現されます。
局所表現のメリット
- 単純で実装が容易:局所表現は、その単純さから実装が容易であり、計算コストも比較的低いというメリットがあります。
- 解釈の容易さ:各単語が独立した記号で表現されるため、モデルの解釈が容易です。
局所表現のデメリット
- 語彙サイズの増大:語彙サイズが大きくなると、one-hotベクトルの次元数も増大し、メモリ消費量が増加します。
- 意味の類似性を捉えられない:「猫」と「ネコ」のように、表記は異なるが意味が類似している単語を、全く異なるベクトルとして扱うため、意味の類似性を捉えられません。
- 文脈の考慮が難しい:各単語を独立した記号として扱うため、「run」が「走る」という意味でも「経営する」という意味でも同じベクトルで表現されてしまい、文脈を考慮した表現が困難です。
局所表現の活用例
- Bag-of-Wordsモデル:テキストを単語の出現頻度のベクトルで表現し、文書分類などに利用されます。
- TF-IDF:単語の出現頻度と文書頻度に基づいて、単語の重要度を評価し、文書検索などに利用されます。
局所表現の限界と分散表現の登場
局所表現は、その単純さから様々なタスクで利用されてきましたが、意味の類似性や文脈を捉えられないという限界があります。近年では、これらの限界を克服するために、単語や文脈を低次元の密なベクトルで表現する分散表現(例えば、word2vecやBERT)が主流となっています。
局所表現は、自然言語処理の初期段階で広く利用された、単語や文脈を離散的な記号で表現する手法です。単純で実装が容易である一方、意味の類似性や文脈を捉えられないという限界があります。分散表現の登場により、局所表現は徐々にその役割を終えつつありますが、自然言語処理の基礎概念として、その重要性は変わりません。