inference/research
verifiedhigh · 0.85updated 2026-10-10

ColBERT: Efficient and Effective Passage Search via Contextualized Late Interaction over BERT

retrieval · sigir

Fields

id
papers/colbert
arXiv
2004.12832
Venue
sigir
Venue track
main
Year
2020
Category
retrieval
Adoption
in-production
Authors
Omar KhattabMatei Zaharia
Affiliations
Stanford University
Problem
BERT-based cross-encoder rerankers must feed every query-document pair through a large network, which scales with the number of candidates.
Mechanism
LATE INTERACTION: encode query and document INDEPENDENTLY but keep a vector PER TOKEN rather than one pooled vector, then score with a cheap MaxSim - sum over query tokens of the max inner product against that token's document vectors. Document token vectors are precomputed offline, so the expensive encoder runs once per document, not once per query-document pair.
Speedup reported
Executes two orders of magnitude faster and requires four orders of magnitude fewer FLOPs per query than BERT-based cross-encoder ranking, while remaining competitive with BERT-based models and outperforming every non-BERT baseline. Both the baseline class and the two metrics are named. Note the caveat in the mechanism text: the speed comes from precomputation, and the memory cost is paid in the index.
Open weights
yes
notes
Venue SIGIR 2020 (ACM DOI 10.1145/3397271.3401075); crossref confirms 'Proceedings of the 43rd International ACM SIGIR Conference on Research and Development in Information Retrieval'. THE CENTRAL SERVING TRADE-OF, which is easy to get backwards: ColBERT does NOT make the index cheaper. Each token gets its own 128-dim vector, so for a 180-token passage that is ~23k floats instead of one 128-dim vector - a roughly 180x index size increase, which the ColBERTv2 paper quantifies as 'an order of magnitude' after compression. What ColBERT buys is query-time compute: the query encoder runs once, and candidate scoring is a sparse matrix product over precomputed vectors. So late interaction moves cost from a compute-bound per-pair transformer to a memory-bound wide scan, and that is why PLAID (pap-mm-plaid) had to exist. VENUE_TRACK BACKFILL 2026-10-04 (paper-fields pass, agent w3p): venue_track 'main'. Peer-reviewed venue confirmed as SIGIR 2020 (venue stays 'other' (SIGIR is not in the schema enum) but the notes now carry the real venue with a DOI, instead of leaving it implicit). This is an additive track annotation; `venue` is unchanged at 'other' and no status change is implied by the track alone. DOI CORRECTION 2026-10-10 (crawler/w11-doi): old DOI 10.1145/3397271.3401555 (in source pap-mm-colbert) returned 404 (Not Found); corrected to ACM DOI 10.1145/3397271.3401075 which resolves to 'ColBERT: Efficient and Effective Passage Search via Contextualized Late Interaction over BERT'. VENUE RECLASSIFIED 2026-10-10 (crawler/w11-venue-enum): venue 'other' -> 'sigir', venue_kind 'conference'. Confirmed by record notes and agreeing publisher/index deposit in data/sources/.
venue kind
conference

Notes

Venue SIGIR 2020 (ACM DOI 10.1145/3397271.3401075); crossref confirms 'Proceedings of the 43rd International ACM SIGIR Conference on Research and Development in Information Retrieval'. THE CENTRAL SERVING TRADE-OF, which is easy to get backwards: ColBERT does NOT make the index cheaper. Each token gets its own 128-dim vector, so for a 180-token passage that is ~23k floats instead of one 128-dim vector - a roughly 180x index size increase, which the ColBERTv2 paper quantifies as 'an order of magnitude' after compression. What ColBERT buys is query-time compute: the query encoder runs once, and candidate scoring is a sparse matrix product over precomputed vectors. So late interaction moves cost from a compute-bound per-pair transformer to a memory-bound wide scan, and that is why PLAID (pap-mm-plaid) had to exist.

VENUE_TRACK BACKFILL 2026-10-04 (paper-fields pass, agent w3p): venue_track 'main'. Peer-reviewed venue confirmed as SIGIR 2020 (venue stays 'other' (SIGIR is not in the schema enum) but the notes now carry the real venue with a DOI, instead of leaving it implicit). This is an additive track annotation; `venue` is unchanged at 'other' and no status change is implied by the track alone.

DOI CORRECTION 2026-10-10 (crawler/w11-doi): old DOI 10.1145/3397271.3401555 (in source pap-mm-colbert) returned 404 (Not Found); corrected to ACM DOI 10.1145/3397271.3401075 which resolves to 'ColBERT: Efficient and Effective Passage Search via Contextualized Late Interaction over BERT'.

VENUE RECLASSIFIED 2026-10-10 (crawler/w11-venue-enum): venue 'other' -> 'sigir', venue_kind 'conference'. Confirmed by record notes and agreeing publisher/index deposit in data/sources/.

Cross-references