You are reading immutable version 28. 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 Order with Positional Encoding

Sinusoidal Positional Encoding (Even)

Sinusoidal Positional Encoding (Even)

Source equation

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

In sequence transduction models like the Transformer, which lack recurrence or convolution, positional encodings are added to the input embeddings to inject information about the order of tokens. This equation defines the sinusoidal positional encoding for even dimensions.

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}}})
Deep dive

Walkthrough and Symbol Definitions

  • PE(pos,2i)PE_{(pos,2i)}: The positional encoding value at sequence position pospos and even dimension index 2i2i.
  • pospos: The position of the token in the sequence (0-indexed).
  • ii: The index of the frequency dimension, where 2i[0,dmodel)2i \in [0, d_{\text{model}}).
  • dmodeld_{\text{model}}: The total dimensionality of the model's hidden states and embeddings.
  • sinsin: The standard trigonometric sine function.
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

Illustrative Example

Let's calculate the positional encoding value for:

  • pos=1pos = 1
  • i=0i = 0 (which corresponds to the first even dimension, 2i=02i = 0)
  • dmodel=512d_{\text{model}} = 512

Step-by-step calculation:

  1. Calculate the denominator exponent: 2idmodel=0512=0\frac{2i}{d_{\text{model}}} = \frac{0}{512} = 0.
  2. Calculate the base value: 100000=110000^0 = 1.
  3. Compute the inner term: pos1=11=1\frac{pos}{1} = \frac{1}{1} = 1.
  4. Apply the sine function: sin(1)0.84147098\sin(1) \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}}})
PE(pos,2i)PE_{(pos,2i)}
Positional encoding value at position pos and even dimension 2i · scalar
pospos
The position of the token in the sequence · scalar
ii
The index variable used to compute the dimension index 2i · scalar
dmodeld_{\text{model}}
The total dimensionality of the model embeddings · scalar