Late Interaction
Definition
Late interaction is a retrieval architecture where query and document representations are computed independently (like Bi-Encoder) but interact at the token level during scoring (unlike single-vector bi-encoders). The best-known implementation is ColBERT.
How It Works
Query → Encoder → [q₁, q₂, ..., qₘ] (per-token vectors)
Doc → Encoder → [d₁, d₂, ..., dₙ] (per-token vectors)
Score = Σᵢ max_j (qᵢ · dⱼ) (MaxSim)
The MaxSim operator finds, for each query token, the document token most similar to it, then sums these maximum similarities.
The max_j is itself a pooling step — but over the similarity matrix, not over representations. It collapses the m × n score matrix to m along the document-token axis, which is then summed to a scalar. Worth naming explicitly, because it is easily confused with the max pooling that a Bi-Encoder may use to build its single vector: that one pools before comparison and discards information permanently at index time, whereas MaxSim pools after comparison, at query time, with the full token vectors still in hand. Deferring that collapse is the whole point of late interaction.
Interaction Timeline Comparison
Late interaction is one point on a broader axis — when the query and document interact. See Interaction Paradigms for the full no/late/early spectrum.
Early interaction (Cross-Encoder): [Q + D] → Encoder → score
No interaction (Bi-Encoder): Q → enc → q; D → enc → d; score(q,d)
Late interaction (ColBERT): Q → enc → [q_tokens]; D → enc → [d_tokens]; MaxSim
Key Properties
- Documents can be pre-encoded (only token-level vectors stored per doc)
- Token-level scoring captures fine-grained relevance
- Requires more storage than single-vector bi-encoders (|tokens| × dim per document)
- Quality approaches Cross-Encoder while remaining scalable
Compression
Since late interaction stores many vectors per document, storage is a concern:
- ColBERT uses 128-dim token vectors
- Vespa’s implementation uses int8 compression (32x reduction)
- Residual compression in ColBERTv2 reduces storage 6-10x
- Token Pooling — clusters similar token vectors and replaces each cluster with its mean; pool factor 3 retains 97.8% performance while cutting vectors by 66.7%
- Bit vectors — sign quantization (>0 → 1); 32× storage reduction; pairs with hamming distance (
maxSimInvHamming) - Average vectors — single normalized mean vector per document; HNSW-indexable but loses per-token granularity
Multimodal Extension: ColPali
ColPali applies late interaction to document page images (PDFs, slides) using a PaliGemma backbone. Generates ~1000 patch-level vectors per page instead of token-level vectors. Same MaxSim scoring, much higher storage pressure. Used primarily as a reranker over HNSW-retrieved candidates.
Related Concepts
- ColBERT — primary text-domain implementation of late interaction
- ColPali — visual-domain late interaction (document page images)
- Token Pooling — compression for multi-vector late interaction embeddings
- Pooling — the single-vector collapse late interaction exists to defer; also home of the disambiguation, in which MaxSim is the score-level sense
- MUVERA — fixed-dimensional single-vector approximation enabling ANN first-stage retrieval
- Bi-Encoder — no interaction model (the baseline)
- Cross-Encoder — early interaction (joint encoding)
- Dense Vector Retrieval — late interaction uses multi-vector dense representations
Articles
- What is ColBERT and Late Interaction and Why They Matter in Search
- Announcing the Vespa ColBERT Embedder
- ColPali & Elasticsearch - How to Search Complex Documents
- Late Interaction Models - How to Scale and Optimize in Elasticsearch
Related Topics
- Interaction Paradigms — the no/late/early interaction spectrum this concept sits on
- Late Interaction in Elasticsearch — indexing, scoring, and scaling late interaction in Elasticsearch
- Late Interaction in OpenSearch —
lateInteractionScoreand the ml-inference rerank pipeline - Late Interaction in Qdrant — native multivector collections and single-call prefetch reranking
- Late Interaction in Vespa — tensor-expression MaxSim, binary quantization, billion-scale ColPali
- Frontier of Search 2025 — late interaction as a 2025 frontier theme