位置エンコーディング(いちえんこーでぃんぐ)
最終更新:2026/4/25
位置エンコーディングは、シーケンス内の各トークンの位置情報をモデルに伝えるために使用される手法である。
別名・同義語 位置埋め込みPositional Encoding
ポイント
Transformerモデルにおいて、単語の順序を考慮するために不可欠な技術であり、再帰型ニューラルネットワークのようなシーケンシャルな処理を必要としない。
位置エンコーディングとは
位置エンコーディングは、自然言語処理(NLP)の分野、特にTransformerモデルにおいて重要な役割を果たす技術です。自然言語のようなシーケンスデータでは、単語の順序が意味を大きく左右します。しかし、Transformerモデルは再帰的な構造を持たないため、入力シーケンスの順序情報を明示的に与える必要があります。この順序情報をモデルに伝えるために、位置エンコーディングが用いられます。
位置エンコーディングの種類
位置エンコーディングには、主に以下の2つの種類があります。
- 学習可能な位置エンコーディング: 各位置に対して学習可能なベクトルを割り当て、モデルが学習を通じて最適な位置表現を獲得します。
- 固定位置エンコーディング: 事前に定義された関数を用いて位置ベクトルを生成します。Transformerの原論文で提案されたのは、正弦関数と余弦関数を用いた固定位置エンコーディングです。
固定位置エンコーディングの詳細
固定位置エンコーディングでは、各位置 pos に対して、異なる周波数の正弦関数と余弦関数を用いて位置ベクトルが計算されます。
- PE(pos, 2i) = sin(pos / 10000^(2i/d_model))*
- PE(pos, 2i+1) = cos(pos / 10000^(2i/d_model))*
ここで、d_model はモデルの次元数、i は次元のインデックスを表します。この方法を用いることで、相対的な位置関係をモデルが学習しやすくなります。