Understanding Positional Encoding in Transformers
Positional encoding is a crucial component of Transformer architectures that enables the
model to understand the order of words in a sequence. This document explains positional
encoding, its purpose, mathematical formulation, and an example to help students grasp the
concept.
1. Purpose of Positional Encoding
Transformers process all tokens in a sequence simultaneously, which means they do not
inherently capture the order of tokens. Positional encoding solves this by adding positional
information to token embeddings, enabling the model to understand the relative and
absolute positions of tokens.
2. Key Steps in Positional Encoding
1. Token Embeddings: Each token is mapped to a dense numerical vector.
2. Positional Encodings: Unique vectors are added to each token embedding to represent its
position.
3. Combining Embeddings: The token embedding and positional encoding are summed
element-wise.
3. Mathematical Formulas for Positional Encoding
Positional encoding is computed using sine and cosine functions of different frequencies:
For even indices:
For odd indices:
Here, 'pos' is the token position, 'i' is the dimension index, and 'd' is the embedding
dimension.
4. Example (File name : Token embeddings for Transformers)
Sentence: 'Transformers are amazing!'
Token Embeddings:
• Generated by looking up the token's ID in the model's embedding matrix.
[E_Transformers] = [1.2, 0.9, 0.3, 0.7] • Learned during the pretraining of the Transformer model.
[E_are] = [0.8, 0.5, 0.1, 0.4] • Represent the semantic meaning of tokens based on their context in the dataset.
[E_amazing] = [1.0, 0.7, 0.2, 0.6]
Positional Encodings:
[P_0] = [0.01, 0.02, 0.03, 0.04] (Position 0)
[P_1] = [0.02, 0.03, 0.04, 0.05] (Position 1)
[P_2] = [0.03, 0.04, 0.05, 0.06] (Position 2)
Combined Embeddings:
For 'Transformers': [1.2 + 0.01, 0.9 + 0.02, 0.3 + 0.03, 0.7 + 0.04] = [1.21, 0.92, 0.33, 0.74]
For 'are': [0.8 + 0.02, 0.5 + 0.03, 0.1 + 0.04, 0.4 + 0.05] = [0.82, 0.53, 0.14, 0.45]
For 'amazing': [1.0 + 0.03, 0.7 + 0.04, 0.2 + 0.05, 0.6 + 0.06] = [1.03, 0.74, 0.25, 0.66]
5. Advantages of Positional Encoding
1. Smooth and Continuous: Captures relationships between nearby tokens.
2. Repeating Patterns: Supports varying sequence lengths.
3. Relative Positioning: Encodes both absolute and relative positions.
Conclusion
Positional encoding is fundamental to the success of Transformer models, as it enables them
to incorporate order information into their parallel processing architecture.