読み方 : いちエンコーディング
位置エンコーディング【positional encoding】
概要
位置エンコーディングとは、Transformerなど系列データを扱うニューラルネットワークで、入力データの中に含まれる単語や要素の順序や相対的な配置の情報を付与する手法。自己注意機構に順序情報を補完する。

古くからあるリカレントニューラルネットワーク(RNN)はデータを端から順番に処理するため自然と時系列や並び順を把握できたが、Transformerは全データを一括で並列処理する仕組みであるため、そのままでは単語の前後関係を区別できない。例えば、「犬が人を噛む」と「人が犬を噛む」という二つの文章は、使われている単語が同一であるため、位置情報がなければモデルにとって同じ意味として処理されてしまう。
位置エンコーディングはこの問題の解決策で、各トークンの埋め込みベクトルに、その出現位置に応じた特定の数値を加算または結合することで、モデルに並び順を認識させる。位置を表す数値の決定方法はいくつかあり、代表的な手法は、三角関数など周期的な関数を用いて位置ごとに異なる独自の値を生成する固定的エンコーディングである。学習パラメータを増やさずに、任意の長さの系列に対して一貫した位置表現を与えられる。
各位置に対応するベクトルをパラメータとして学習する手法もある。学習量は増えるが、タスクやデータ分布に適応した柔軟な表現が可能である。また、文章内の絶対位置ではなくトークン間の距離関係を扱う「相対位置エンコーディング」も提案されており、長文処理や文脈依存性の強いタスクで効果を示す場合がある。これらの手法はモデルの汎化性能や長距離依存関係の表現能力に影響を与える。