位置エンコーディング - 語順を教える

Transformerは語順を自然には理解できません。位置エンコーディングで単語の順番情報を与える仕組みを解説します。

編集・検証: AIパスポートスタディ編集部 公式情報: GUGA 生成AIパスポート公式ページ 制作・検証方針
戸倉 ジャスミン(笑い) 戸倉 ジャスミン

Transformer って全単語いっぺんに見れるんですよね。
ほんとに便利!
じゃあ語順は自動でわかるでしょ?

香月 リサ 先生(普段) 香月 リサ 先生

ジャスミンちゃん、そこが実は落とし穴。
Self-Attention は単語集合として扱うから、並び替えても計算結果は変わらない性質があるの。

戸倉 ジャスミン(びっくり) 戸倉 ジャスミン

えっ、じゃあ「犬が猫を追いかけた」と「猫が犬を追いかけた」を同じに扱っちゃうの?
それはめっちゃヤバいじゃん!

雪村 ましろ(しょんぼり) 雪村 ましろ

ふぇぇ、犬と猫の立場が逆になっちゃうの…かわいそう。

香月 リサ 先生(普段) 香月 リサ 先生

そのままだとそうなるの。
だから Transformer は「何番目の単語か」を明示的に教えるために位置エンコーディングという仕組みを入れているのよ。
元の論文ではサイン・コサイン関数を使って位置ごとに固有のベクトルを作り、それを単語埋め込みに足し算するの。

雪村 ましろ(普段) 雪村 ましろ

足し算するだけで「順番」になるの?
なんだか不思議…

香月 リサ 先生(普段) 香月 リサ 先生

三角関数は周期性を持つから、位置の違いが自然な形でベクトルに反映されるの。
近い位置は似た位置ベクトル、遠い位置は違う位置ベクトルになるわ。
音楽のリズムに近い感覚ね。

戸倉 ジャスミン(普段) 戸倉 ジャスミン

確かに、音楽のリズムみたいなもんだね!
近い拍は似てて、離れると違って聞こえる。
じゃあ最近のモデルは他の方式もあるんですか?

香月 リサ 先生(普段) 香月 リサ 先生

最近のモデルでは位置表現も進化していて、学習可能な位置エンコーディングやRoPE(回転位置埋め込み)、ALiBi など、より長文に強い方式が使われているわ。

深見 つむぎ(普段) 深見 つむぎ

補足すると、RoPE は長い文脈でも性能を保ちやすいため、LLaMA 系や Mistral など最近のオープンソース LLM で広く採用されていますね。
位置エンコーディング方式の選択は「扱える最大文脈長」と直結するんです。

香月 リサ 先生(普段) 香月 リサ 先生

その通り。
100万トークン級の超長文を扱うモデルが出ている背景には、RoPE の拡張や位置補間(ロングコンテキスト拡張技術)といった改良が大きく貢献しているのよ。

戸倉 ジャスミン(びっくり) 戸倉 ジャスミン

100万トークンって、文庫本何冊分だよ…すご〜い、語順教えるだけでそこまでいけるんだね。

雪村 ましろ(笑顔) 雪村 ましろ

語順は人間には当たり前だけど、AI にはちゃんと教えてあげなきゃいけないんだ…なんだかAIが子供みたいで愛らしい。
ましろの詩人モード、今日も好調。

香月 リサ 先生(普段) 香月 リサ 先生

ふふ、当たり前のことほど実装は工夫が要る、というのがAIの面白さよ。
試験的には「語順情報を補う仕組み」というコアと、「サイン・コサイン方式」が原典、という2点で十分。
長文処理で性能が変わる重要要素、と覚えておいてね。
そして現代のモデルで RoPE や ALiBi、位置補間が増えている理由も、「長文でもちゃんと順序が伝わる」という設計思想が背景にあるの。
ましろちゃんのいう通り、AIはまだ「語順」を教えてもらう段階の子供なのね。

確認クイズ

Transformer に位置エンコーディングが必要な理由として最も適切なものはどれか。

  1. 計算速度を上げるため
  2. メモリ使用量を削減するため
  3. セルフアテンションだけでは語順情報が失われるため
  4. 過学習を防ぐため
こたえを見る

正解: 3. セルフアテンションだけでは語順情報が失われるため

Self-Attention は全単語を並列に処理し、単語を集合として扱うため語順情報が失われます。位置エンコーディングで順序を補います。計算速度・メモリ削減・過学習防止は位置エンコーディングの目的ではありません。

🔖 この記事の関連書籍

Amazonアソシエイトリンクを含みます。他分野は おすすめ書籍ページ へ。