位置エンコーディングとは
位置エンコーディングとは、Transformerで単語の順序情報を明示的に付与する仕組みです。サイン・コサイン関数などで位置情報ベクトルを生成し、単語埋め込みに加算することで語順を保持します。
この用語はG検定シラバスの「23. Attention」に含まれます。 章全体の用語は用語解説④(全60語)にまとまっています。
一言でいうと
「何番目の単語か」という情報を足し込んで、並列処理でも語順を保つ仕組みです。
なぜ必要なのか
RNNは前から順に処理するので、語順が自然に保たれます。
しかしTransformerは系列全体を同時に処理します。そのままでは「犬が猫を追う」と「猫が犬を追う」を区別できません。
そこで各単語の埋め込みに「何番目か」を表すベクトルを加算します。省略できる処理ではありません。
サイン・コサインを使う理由
単純に1、2、3…と足すと、系列が長いほど値が大きくなり学習が不安定になります。
サイン・コサイン関数なら値が一定範囲に収まり、かつ位置ごとに異なるパターンを作れます。また相対的な位置関係も表現しやすいという利点があります。
学習させる方式もある
サイン・コサインを使う方式のほかに、位置ベクトル自体を学習で獲得する方式もあります。BERTなどで採用されています。
固定の関数を使うか学習させるかは設計の選択であり、どちらでも「語順を明示的に与える」という目的は同じです。
🎯 G検定での押さえどころ
- 語順情報を明示的に付与する
- 単語埋め込みに加算する
- Transformerでは省略できない
⚠️ よくある誤りの選択肢
- 「位置エンコーディングは省略してもよい」→ 誤り。語順が失われます
- 「位置エンコーディングはRNNでも必須である」→ 誤り。RNNは逐次処理なので不要です
📘 もっと深く学ぶ
- 数式レベルまで踏み込んだ解説 → 医療AIナビ「Transformer」(E資格向け)
- 手を動かして確かめる → Attention可視化シミュレータ
関連する用語
ご利用にあたって 本ページの内容は、JDLAが公開しているG検定シラバス2024や公式テキストなど、一般に公開されている情報をもとに独自に整理・解説したものです。実際の試験の出題内容を示すものではなく、また合格を保証するものでもありません。制度・法令・試験要項は変更されることがあるため、最新の情報は必ずJDLA公式サイトでご確認ください。