9月6日、Towards Data Scienceが「Why Transformers Need Positional Encoding For Time Series: A Visual Guide」と題した記事を公開した。この記事では、時系列データにTransformerを適用する際に位置エンコーディングが不可欠な理由を、視覚的・数式的に解説している。以下に、その内容を紹介する。
「順序」を持たないTransformerの根本的な問題
Transformerの中核にあるSelf-Attentionは、系列内の全要素を同時に参照する。これはNLPで強力に機能するが、同時に一つの欠陥を生む。Self-Attentionには、観測値の順序を識別する仕組みが存在しない。
時系列データで考えると明確だ。「昨日30℃、今日20℃」と「昨日20℃、今日30℃」は値が同じでも意味が異なる。だが素のSelf-Attentionは、この2つのシーケンスを区別できない。
さらに問題がある。水曜と金曜の気温が同じ値だった場合、学習済み射影(embedding)はその2つを完全に同一のベクトルにマッピングしてしまう。どちらが先に来た観測かを示す情報が、何もない。
スカラーからベクトルへ、そして文脈へ
Transformerは内部でスカラー値をそのまま扱わない。まず各時刻 $t$ の観測値 $x_t$ を、学習可能な線形射影でベクトル $e_t$ に変換する:
$$e_t = W_e x_t + b_e$$
次にSelf-Attentionがこのベクトル群からQuery・Key・Valueを生成し、観測間の関連度(Attention Score)を計算する:
$$s_{5,j} = \frac{q_5^\top k_j}{\sqrt{d_k}}$$
Softmaxで正規化した重みを使って値ベクトルを集約すると、各タイムステップは系列全体の情報を反映した文脈考慮済み表現 $z_t$ になる。
ここまでの処理はすべて「何が観測されたか」にしか反応しない。「いつ観測されたか」は無視される。
位置エンコーディングが担う役割
位置情報として最低限必要なのは以下の4点だと記事は整理する:
- 各タイムステップが一意に識別できること(position 2 と position 20 が区別できる)
- 前後関係が判断できること($t-1$ と $t+1$ の違い)
- 距離が表現できること($t-1$、$t-7$、$t-30$ はそれぞれ異なる意味を持つ)
- 近い位置同士が構造的に関連していること(10と11が無関係なIDに見えない)
時系列では特に3番目が重要だ。1ステップ前は短期依存、7ステップ前は週次季節性、24ステップ前は日次周期を表しうる。単純な通し番号(1, 2, 3, …)ではこの構造が表現できない。
正弦波位置エンコーディングの仕組み
元論文のTransformerが採用したのが正弦波位置エンコーディング(Sinusoidal Positional Encoding)だ。各位置 $t$ を、異なる周波数のサインとコサインで構成されるベクトル $p_t \in \mathbb{R}^{d_{model}}$ で表現する:
$$PE(t, 2i) = \sin!\left(\frac{t}{10000^{2i/d_{model}}}\right)$$
$$PE(t, 2i+1) = \cos!\left(\frac{t}{10000^{2i/d_{model}}}\right)$$
次元ごとに周波数が異なる。高周波成分は近傍の位置を細かく区別し、低周波成分は系列全体の位置を大局的に表現する。記事はこれを「異なる速さで動く多数の時計の組み合わせ」と表現している。
この設計の核心は相対距離の一貫性にある。位置3から10への7ステップの変化と、位置20から27への7ステップの変化は、数学的に同じ変換関係を持つ。これにより、モデルは絶対位置ではなく相対的な時間差を学習しやすくなる。
位置情報を加えた後のSelf-Attention
位置ベクトルを加算した表現:
$$h_t = e_t + p_t$$
をSelf-Attentionに渡すことで、Query・Keyは「観測値」と「位置」の両方を含む状態で生成される。Attention Scoreの計算:
$$\text{score}(i, j) = q_i^\top k_j$$
は、何が観測されたかだけでなく、どこで観測されたかも考慮した類似度になる。位置エンコーディングはモデルに「ラグ7が重要だ」と直接教えるのではなく、そうした位置関係を学習できる素地を与える。
正弦波はあくまで出発点
記事の末尾では、正弦波位置エンコーディングの限界も明示されている。位置エンコーディングが表すのはシーケンス上の順番であり、実世界の時刻ではない。観測が不規則間隔の場合、「1ポジション差」が1時間を意味するとは限らない。
この問題への対応として、以下の手法が存在することにも言及されている:
- 学習済み位置埋め込み(Learned Positional Embeddings):位置ベクトル自体を訓練データから学習する
- 相対位置エンコーディング(Relative Positional Encodings):絶対位置ではなく2観測間の距離に着目する
- タイムスタンプ・カレンダー特徴・周期性などを明示的に入力する手法
時系列向けのFoundation Model(ChronosやTimesFMなど)では、正弦波ではなくRotary Position Embedding(RoPE)や学習済み位置表現が採用されることが多い。正弦波エンコーディングの理解は、そうした手法がなぜ必要とされるかを理解するための基礎になる。
詳細はWhy Transformers Need Positional Encoding For Time Series: A Visual Guideを参照していただきたい。