Introduction

Cross-attention is the attention mechanism that connects two separate sequences, allowing one sequence to query and draw information from another — most commonly seen in encoder-decoder transformers, where a decoder uses cross-attention to ground its generation directly in the encoder's understanding of the input. While self-attention (covered in depth in previous topics) relates a sequence to itself, cross-attention relates one sequence to a completely different one.

Cross-attention was actually the original inspiration behind the entire attention mechanism, first developed to solve the fixed-size bottleneck problem in early sequence-to-sequence RNN models (as covered in the Limitations of RNN/LSTM topic), before the "Attention Is All You Need" paper generalized the idea into the full self-attention-based transformer architecture.

Why Does Cross-Attention Matter?

Cross-attention helps to:

  • Connect two different sequences, allowing one to draw relevant information from the other
  • Ground a decoder's generation directly in an encoder's understanding of the input
  • Solve the information bottleneck problem that limited earlier sequence-to-sequence models
  • Enable strong performance on tasks with a clear separate input and output (translation, summarization)
  • Provide the mechanism that distinguishes full encoder-decoder models (like T5) from decoder-only models (like GPT)
  • Complete the picture of the different attention types used throughout transformer architectures

Self-Attention vs Cross-Attention: The Key Distinction

Whiteboard
Whiteboard diagram

Self-Attention:


Q, K, V ← all computed from the same sequence
"How do tokens within THIS sequence relate to each other?"

Cross-Attention:
Q ← computed from sequence A (e.g., the decoder's current state)
K, V ← computed from sequence B (e.g., the encoder's output)
"How does what I'm generating right now (A) relate to
 the separately encoded input (B)?"

Where Cross-Attention Fits in an Encoder-Decoder Transformer

Whiteboard
Whiteboard diagram

Within each decoder layer of an encoder-decoder model (like T5),

there are actually two different attention sub-layers:

1. Masked Self-Attention: relates the decoder's own tokens
   generated so far to each other (as covered in earlier topics)

2. Cross-Attention: relates the decoder's current state to
   the ENCODER's output — this is what "grounds" generation
   in the original input, rather than relying solely on what's
   been generated so far

How Cross-Attention Computes Q, K, and V

Cross-Attention(Q, K, V) = softmax( (Q · K^T) / √d_k ) · V

Same formula as standard self-attention, but with a
critical difference in where each vector comes from:

Query (Q)  = Decoder's current representation × W_Q
Key (K)    = Encoder's output × W_K
Value (V)  = Encoder's output × W_V

The decoder asks "what am I looking for right now?" (Query),
and searches across the ENTIRE encoded input (Keys) to find
the most relevant information (Values) to incorporate.

A Simple Illustrative Example: Translation

Task: Translate "The cat sat" (English) to French

Encoder processes: "The cat sat"
→ produces rich Key/Value representations for each English word

Decoder is generating the French translation, one word at a time.
When generating the French word for "sat":

Decoder's Query (from its current generation state) is compared
against the encoder's Keys for "The," "cat," and "sat"

Cross-attention likely assigns the highest weight to the
encoder's Value for "sat," ensuring the generated French word
is grounded in the correct corresponding source word — even
though "sat" might appear in a different position in French
word order.

Why Cross-Attention Was the Original Motivation for "Attention"

Before the full transformer architecture existed, early
sequence-to-sequence RNN models had to compress an entire
input sentence into a single fixed-size vector before the
decoder could even begin generating output — a severe
bottleneck for longer sentences (as covered in the Limitations
of RNN/LSTM topic).

Researchers introduced an early attention mechanism specifically
to let the decoder "look back" at different parts of the
encoder's output as needed, rather than relying on one
compressed vector — this was, in essence, an early version
of cross-attention, applied on top of RNNs.

The 2017 transformer paper then generalized this same core
idea (comparing Queries against Keys to retrieve relevant
Values) into self-attention as well, removing recurrence
entirely — but cross-attention itself traces directly back
to this earlier bottleneck-solving innovation.

Cross-Attention vs Self-Attention: Side-by-Side

AspectSelf-AttentionCross-Attention
Query SourceSame sequence being processedThe sequence currently being generated (e.g., decoder)
Key/Value SourceSame sequence as QueryA different sequence (e.g., encoder output)
Typical LocationWithin encoder or decoder layersBetween encoder and decoder, in encoder-decoder models
PurposeRelate tokens within one sequence to each otherGround one sequence's processing in another sequence entirely
Present InBERT, GPT, and the encoder/decoder of T5Only in encoder-decoder architectures like T5

Which Model Types Use Cross-Attention?

Model TypeUses Cross-Attention?
Encoder-Only (e.g., BERT)No — only self-attention
Decoder-Only (e.g., GPT, Claude, Llama)No — only masked self-attention
Encoder-Decoder (e.g., T5, original Transformer)Yes — cross-attention connects decoder to encoder

This is a key reason decoder-only models like GPT don't have a separate "input encoding" step — everything, including any provided context, is simply part of the single sequence processed through masked self-attention, rather than being handled via a separate cross-attention connection to an encoder.

Key Properties of Cross-Attention

  • Cross-attention computes Queries from one sequence and Keys/Values from a different sequence.
  • It uses the same scaled dot-product attention formula as self-attention, differing only in the source of Q vs K/V.
  • Cross-attention is present only in encoder-decoder architectures, connecting the decoder to the encoder's output.
  • It directly traces back to the original attention mechanism developed to solve the RNN fixed-size bottleneck problem.
  • Decoder-only models like GPT don't use cross-attention, since they have no separate encoder to connect to.

Where Is Cross-Attention Used?

FieldApplication
Machine TranslationGrounding generated target-language text in the source-language encoding
Text Summarization (Encoder-Decoder Models)Grounding generated summaries in the original document's encoded representation
Image CaptioningConnecting generated text to encoded visual features (a related, adapted use of cross-attention)
Text-to-Image GenerationConditioning image generation on encoded text prompt representations
Structured Question AnsweringGrounding generated answers in an encoded context passage

Advantages

  • Directly solves the information bottleneck problem that limited earlier sequence-to-sequence models
  • Allows generation to remain closely grounded in a separately encoded input
  • Enables strong performance on tasks with a clear, distinct input-to-output structure
  • Reuses the same well-understood scaled dot-product attention formula as self-attention
  • Provides architectural flexibility for connecting entirely different types of encoded data (e.g., text and images)

Limitations

  • Only applicable to architectures that include a separate encoder, not decoder-only designs
  • Adds computational overhead compared to a purely decoder-only, self-attention-only design
  • Requires the encoder to have already fully processed the input before decoding can use cross-attention effectively
  • Less naturally suited to fully open-ended, conversational use cases without a distinct "input"
  • Still subject to the same quadratic computational scaling concerns as self-attention

Real-World Examples

ApplicationCross-Attention Use
T5Decoder's cross-attention to the encoder's representation of the input text
Original Transformer (Translation)Decoder attending to encoder output to generate translated text
Image Captioning ModelsText decoder attending to encoded visual features from an image encoder
Text-Conditioned Image Generation (e.g., Diffusion Models)Image generation process attending to encoded text prompt representations
Structured Summarization SystemsSummary generation grounded in the encoded source document

Best Practices

  • Distinguish cross-attention from self-attention by tracking where Q versus K/V actually come from.
  • Recognize cross-attention as specific to encoder-decoder architectures, absent in decoder-only models.
  • Use cross-attention-based (encoder-decoder) architectures for tasks with a clear, distinct input-to-output transformation.
  • Understand cross-attention's historical origin as the bottleneck-solving predecessor to full self-attention.
  • Consider cross-attention patterns when working on multimodal architectures connecting different data types (e.g., text and images).

Interview Tip

A common interview question is:

"What is cross-attention, and how does it differ from self-attention?"

A strong answer is:

Cross-attention uses the same scaled dot-product attention formula as self-attention, but with a key difference in where the vectors come from: the Query comes from one sequence — typically the decoder's current state — while the Key and Value come from a different sequence entirely, typically the encoder's output. This allows the decoder to "look back" at the encoder's full representation of the input while generating each new token, grounding the output in that separately encoded input. Self-attention, by contrast, computes Query, Key, and Value all from the same sequence, relating tokens within that one sequence to each other rather than connecting two different sequences together.

Clearly stating the Q-vs-K/V source distinction makes your answer stronger.

Conclusion

Cross-attention completes the picture of attention mechanisms within the transformer architecture, providing the specific mechanism that connects a decoder's generation process to a separately encoded input in encoder-decoder models like T5. Tracing directly back to the original bottleneck-solving innovation that predated the full transformer, and standing in clear contrast to the self-attention used throughout BERT and GPT, cross-attention rounds out a complete, mechanically detailed understanding of how attention — in all its forms — powers modern transformer-based AI.