You are reading immutable version 10. The current guide may be newer.

Study the paper

Attention Is All You Need

Lessons, visuals, quizzes, flashcards, and resources—organized in teaching order.

All activities

Injecting Sequence Order via Positional Encodings

Sinusoidal Positional Encoding (Even Dimensions)

Sinusoidal Positional Encoding (Even Dimensions)

Source equation

PE(pos,2i)=sin(pos/100002i/dmodel)\displaystyle PE_{(pos,2i)}=sin(pos/10000^{2i/d_{\text{model}}})

Since the Transformer contains no recurrence or convolution, positional encodings are added to the input embeddings to inject information about the relative or absolute position of tokens in the sequence.

Sources

equation

P​E(p​o​s,2​i)=s​i​n​(p​o​s/100002​i/dmodel)\displaystyle PE_{(pos,2i)}=sin(pos/10000^{2i/d_{\text{model}}})
\displaystyle PE_{(pos,2i)}=sin(pos/10000^{2i/d_{\text{model}}})

PE(pos,2i)=sin(pos/100002i/dmodel)\displaystyle PE_{(pos,2i)}=sin(pos/10000^{2i/d_{\text{model}}})

Sources

equation

P​E(p​o​s,2​i)=s​i​n​(p​o​s/100002​i/dmodel)\displaystyle PE_{(pos,2i)}=sin(pos/10000^{2i/d_{\text{model}}})
\displaystyle PE_{(pos,2i)}=sin(pos/10000^{2i/d_{\text{model}}})
Implementation detail

Let's calculate a single positional encoding value deterministically:

  • Token position pos=1pos = 1
  • Dimension index 2i=02i = 0 (meaning i=0i = 0)
  • Model dimension dmodel=512d_{\text{model}} = 512
  1. Compute the denominator: 100002i/dmodel=100000/512=100000=1.010000^{2i/d_{\text{model}}} = 10000^{0/512} = 10000^0 = 1.0

  2. Compute the argument of the sine function: pos100002i/dmodel=11.0=1.0\frac{pos}{10000^{2i/d_{\text{model}}}} = \frac{1}{1.0} = 1.0

  3. Compute the sine value: PE(1,0)=sin(1.0)0.84147098PE_{(1, 0)} = \sin(1.0) \approx 0.84147098

Sources

equation

P​E(p​o​s,2​i)=s​i​n​(p​o​s/100002​i/dmodel)\displaystyle PE_{(pos,2i)}=sin(pos/10000^{2i/d_{\text{model}}})
\displaystyle PE_{(pos,2i)}=sin(pos/10000^{2i/d_{\text{model}}})
pospos
Position of the token in the sequence · scalar
ii
Index of the dimension · scalar
dmodeld_{\text{model}}
Dimensionality of the model embeddings · scalar
PE(pos,2i)PE_{(pos,2i)}
Positional encoding value at position pos and even dimension 2i · scalar