位置エンコーディング

Positional Encoding

Transformerに単語の順序情報を与える仕組み。単語の位置をベクトルとして埋め込み表現に加算する。

位置エンコーディングとは

位置エンコーディング(Positional Encoding)は、Transformerに「単語の順序」情報を伝えるための仕組みです。各単語の位置を数値ベクトルで表現し、埋め込みベクトルに加算することで、モデルが語順を認識できるようにします。

なぜ必要か

TransformerのSelf-Attentionは、文中のすべての単語を並列に処理します。この仕組みは高速で強力な一方、単語の並び順をそのままでは区別できないという弱点があります。

  • 犬が猫を追いかける
  • 猫が犬を追いかける

同じ単語の集合でも、順序が違えば意味は正反対です。これを区別するために、位置情報を明示的に注入する必要があります。

仕組みの考え方

  • 各位置(0番目、1番目、2番目…)に対して、固有のベクトルを用意
  • そのベクトルを単語の埋め込みベクトルに加算
  • 結果として「意味+位置」が1つのベクトルに統合される

初期のTransformerではsin・cos関数を使った決定論的な方式が使われていました。近年のLLMでは、**RoPE(Rotary Positional Embedding)**など、より長いコンテキストに適した方式が主流です。

長文対応との関係

コンテキストウィンドウを広げる際、位置エンコーディングの設計は重要な要素です。100万トークンクラスの長文対応モデルでは、位置の外挿がしやすい方式が採用されています。

他との関係

Self-Attentionの「順序が区別できない」という本質的な制約を補う役割を持つ、Transformerの不可欠な部品です。

士業AIで業務を効率化しませんか?

税務・会計・法務の専門AIが、日々の業務をサポートします。
まずは無料プランからお試しください。

無料で今すぐ試す