How does ColBERT's late-interaction multi-vector retrieval differ from single-vector dense retrieval?
Standard dense retrieval compresses a whole document into one vector, losing token-level detail. ColBERT keeps one vector per token and scores a query-document pair with 'late interaction': for each query token it finds the maximum similarity across all document tokens (MaxSim), then sums those maxima. This preserves fine-grained term matching while staying more efficient than full cross-encoder attention, giving strong out-of-domain generalization. The cost is storage and complexity: you store many vectors per document (partly mitigated by quantization in ColBERTv2), and retrieval needs specialized indexes like PLAID. It's often used as a first-stage retriever or reranker. The tradeoff is higher index size and engineering overhead versus better precision than single-vector search, particularly on queries needing exact term correspondence.