(広告時代の15秒CMの絵コンテ…懐かしいな。同じ 15カットの素材 でも、並び順を変えるだけで全然違うCMになった。「商品 → 笑顔 → ロゴ」と「ロゴ → 笑顔 → 商品」じゃ、伝わるものが別物。順番こそが意味 だったんだよな。)
凡田さん、それ、まさに LLM の 「位置情報」 の話 ですよ。Transformer って、文中の単語を 全部いっぺんに・並列で 見るんです。だから放っておくと、「順番」が消える。
えっ、AI って 語順がわからない の? 「犬が猫を追う」と「猫が犬を追う」が同じに見えるってこと?
そのままだと、ほぼそうなります。だから各単語に 「これは何番目か」という情報を足して 順番を教えてるんです。それが 位置エンコーディング。凡田さんの絵コンテの 「カット番号」 と、やってることは同じです。

- 位置エンコーディング = 各単語の 埋め込みベクトル(#002) に 「これは何番目か」を表すベクトルを足して、語順を AI に教える仕組み(
入力 = 単語の意味 + 位置)。 - なぜ要る: Transformer の アテンション(#030) は全単語を 同時・並列に 見るので、放っておくと 語順が消える(「犬が猫を追う」と「猫が犬を追う」が区別できない)。順番に処理する RNN と違い、Transformer は位置を 別途、足して 与える必要がある。
- 作り方は3系統 ── 固定(sin/cos)(原典 2017)/ 学習型 / RoPE(回転)(LLaMA 等の主流、相対的な位置に強い)。いずれも狙いは同じ「順番を数字で持たせる」。
アテンション (#030) が単語を 全部いっぺんに 見られるのは、Transformer の最大の強みだ。だが、その並列処理には代償がある ── 「何番目の単語か」という順序の情報が、そのままでは失われる。位置エンコーディングは、その抜け落ちた順序を埋め直す部品である。
定義 — 単語の意味ベクトルに「位置のベクトル」を足す
Transformer に文を入れるとき、各単語はまず 埋め込み(#002) で 意味を表すベクトル に変換される。位置エンコーディングは、ここに一手間を加える:
入力ベクトル = 単語の意味ベクトル + 位置ベクトル
位置ベクトル は、「文の何番目か(1番目・2番目・3番目…)」ごとに決まった、固有のベクトル。これを単語の意味ベクトルに 足し算で混ぜる。こうして各単語のベクトルは、「何の単語か(意味)」と「何番目か(位置)」の両方を同時に背負った状態でアテンションに入っていく。
ポイントは、位置情報を 別の入り口から渡すのではなく、意味ベクトルに直接足し込む こと。これで以降の計算は、単語の中身と順番を区別せず、ひとつのベクトルとして扱える。
なぜ要るのか — アテンションは 「語順を見ない」
そもそも、なぜ順番をわざわざ教える必要があるのか。理由は アテンション(#030) の仕組みにある。アテンションは、文中の すべての単語のペアの関連度 を一度に計算する。このとき各単語は、「自分が何番目にいるか」を一切意識していない。単語を 順序のない 「集合」 として 扱ってしまうのだ。
だから位置情報がないと、「犬 が 猫 を 追う」と「猫 が 犬 を 追う」が、ほぼ同じものに見える。使われている単語の集合が同じだからだ。意味は正反対なのに、区別できない。これは致命的だ。
RNN(#029) は単語を 1個ずつ順番に 読むので、順序が自然に処理に入っていた。Transformer は速さのために 並列で一気に 読む(なぜ RNN を駆逐したか(#033))。その引き換えに失った順序を、位置エンコーディングで あとから注入し直している、という関係だ。
どう作るのか — 位置ベクトルの3系統
「何番目かを表すベクトル」をどう用意するか。代表的に3系統ある(細かい数式は本記事では追わない)。
- ① 固定(sin / cos) — 原典の Transformer 論文(2017)の方式。位置ごとに、波長の違う sin・cos の値を並べて位置ベクトルを作る。学習不要で、訓練で見ていない長さの文にもある程度対応できる のが利点。
- ② 学習型(learned) — 位置ごとのベクトルを、重みと同じように 訓練で学習 させる。初期の GPT 系などで使われた。シンプルだが、学習した最大長を超える位置には弱い。
- ③ RoPE(回転位置埋め込み) — 近年の主流(LLaMA / 多くの新しい LLM)。ベクトルを位置に応じて 「回転」 させる ことで、「単語どうしが何個離れているか(相対位置)」を自然に表現 できる。長い文脈への強さから広く採用されている。
コンサル感覚 — 「順序が意味を作る」 場面は実務に多い
本記事の核心メッセージは 「同じ要素でも、並び順が変われば意味が変わる。順序は独立した情報だ」。凡田の絵コンテと同じで、実務でも 「順序そのものが価値」 の場面は多い:
① 議事録・ログは 「時系列」 が命: 「誰が何を言ったか」を集めても、発言の順番(誰の発言を受けて誰が反応したか)が抜けると、意思決定の流れが追えなくなる。要素の集合だけでなく、順序を保つ設計が要る。
② 業務フロー・工程表は順番が成果を決める: 同じ作業項目でも、順序を入れ替えると結果が変わる(承認の前に発注、検証の前にリリース…)。AI に業務を任せるときも、「何をするか」 のリストだけでなく 「どの順で」 を明示しないと、もっともらしく順序を崩した出力が返る。
③ クライアント説明の一言: 「AI に箇条書きを渡したら、順番を勝手に入れ替えられた」と相談されたら、「LLM は単語を並列で見るので、明示しないと順序を軽視することがある。順序が重要なら 「①②③ と番号を振る」「ステップ順に出力して」 と指示で固定すると安定します」 と返せる。位置情報の話が、そのまま実務のプロンプト設計に効く。
あら、接客も 順番 が命ですのよ。「お出迎え → ご案内 → お伺い」の順序を一つでも飛ばすと、同じ言葉でも台無し。…AI も 「何番目か」 を教えないと、順序を軽んじるんですのね。意外と人間くさい。
はい。しかも最近の主流は RoPE っていって、「絶対に何番目」 じゃなく 「単語どうしが何個離れているか」 を持たせる方式なんです。長い文章でも順序関係が崩れにくくて…(乗り鉄の血が騒ぐのか早口になる)、時刻表の 「駅と駅の間隔」 を持つのに似てて…
(川口の鉄道スイッチが入った…。でも、なるほど。広告の絵コンテも 「カット番号」 じゃなく 「前のカットからどう繋ぐか」 で考えてたな。順序って、絶対位置より 「間隔・つながり」 の方が本質なのかもしれない。)
