{"about":{"site":"https://codewithpapers.app","non_affiliation":"Code with Papers and Syntology are not affiliated with, endorsed by, or sponsored by Papers with Code, Meta, or the pwc-archive mirror.","licence":"CC BY-SA 4.0","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","attribution":"https://codewithpapers.app/attribution","modified":"archive material modified by Syntology; see the attribution page"},"url":"/paper/arxiv-2601-21853","title":"LEMUR: Learned Multi-Vector Retrieval","arxiv_id":"2601.21853","date":"2026-01-29","proceeding":"ICML","authors":["Elias Jääsaari","Ville Hyvönen","Teemu Roos"],"abstract":"Multi-vector representations generated by late interaction models, such as ColBERT, enable superior retrieval quality compared to single-vector representations in information retrieval applications. In multi-vector retrieval systems, both queries and documents are encoded using one embedding per token, and similarity between queries and documents is measured by the MaxSim similarity measure. However, the improved quality of multi-vector retrieval comes at the expense of significantly increased search latency. In this work, we introduce LEMUR, a simple yet efficient framework for multi-vector similarity search. LEMUR consists of two consecutive problem reductions: First, we formulate multi-vector similarity search as a supervised learning problem that can be solved using a one-hidden-layer neural network. Second, we reduce inference under this model to single-vector similarity search in its latent space, enabling the use of existing single-vector search indexes to accelerate retrieval. LEMUR is an order of magnitude faster than prior multi-vector similarity search methods. Our code is available at https://github.com/ejaasaari/lemur","url_abs":"https://arxiv.org/abs/2601.21853","url_pdf":"https://arxiv.org/pdf/2601.21853","source":{"archive":null,"snapshot":"2025-07-28","note":"not in the Papers with Code archive (frozen at the snapshot)","row_kind":"graph","title_abstract_authors_date":"arXiv metadata, CC0 1.0 (https://info.arxiv.org/help/license)"},"code_links":[],"tasks":[],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"syntology_url":"https://syntology.ai/paper/2601.21853","atlas_url":"https://app.syntology.ai/?focus=2601.21853","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2601.21853"}},"developers":"https://syntology.ai/developers","read_at":"2026-09-25T09:33:49+00:00","read_at_is":"when the build read Syntology's graph, not when any sample ran","claim":"Per-sample execution status on synthesized fixtures; not a correctness claim about the paper. Samples come from repositories linked to the paper, official or community; repo_kind says which.","repos":[{"mentioned_in_github":null,"is_official":null,"provenance":"deterministic:regex_extraction","mentioned_in_paper":null,"url":"https://github.com/ejaasaari/lemur","reach":null}],"summary":{"ran":3,"ran_draft_wrong":4,"unverified":1},"by_repo_kind":{"found_in_text":{"samples":8,"ran":7,"repositories":1}},"repo_kind_vocabulary":{"official":"The archive marks this repository official for the paper","named_in_paper":"The archive records that the paper mentions this repository; it is not marked official","listed":"In the archive's code links for this paper, not marked official and not recorded as mentioned in the paper","found_in_text":"Syntology found this repository in the paper's own text; whether it is the authors' implementation is not asserted","community":"Not in the archive's code links for this paper; a community repository Syntology harvested"},"n_pointer_only_for_licence":0,"samples":[{"code_sha256_prefix":"80244ea5798052c8","entry":"ELM","repo":"ejaasaari/lemur","repo_kind":"found_in_text","path":"lemur/lemur.py","file_url":"https://github.com/ejaasaari/lemur/blob/HEAD/lemur/lemur.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":"invariant","behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"80244ea5798052c8"}},{"code_sha256_prefix":"9fc125d141b40235","entry":"MLP","repo":"ejaasaari/lemur","repo_kind":"found_in_text","path":"lemur/lemur.py","file_url":"https://github.com/ejaasaari/lemur/blob/HEAD/lemur/lemur.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":"invariant","behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"9fc125d141b40235"}},{"code_sha256_prefix":"3f68f611c62f1970","entry":"RandomActivationFeatures","repo":"ejaasaari/lemur","repo_kind":"found_in_text","path":"lemur/lemur.py","file_url":"https://github.com/ejaasaari/lemur/blob/HEAD/lemur/lemur.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":"invariant","behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"3f68f611c62f1970"}},{"code_sha256_prefix":"e61ce15e7fc7dd02","entry":"_activation_cls","repo":"ejaasaari/lemur","repo_kind":"found_in_text","path":"lemur/lemur.py","file_url":"https://github.com/ejaasaari/lemur/blob/HEAD/lemur/lemur.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"e61ce15e7fc7dd02"}},{"code_sha256_prefix":"71965bf68e477424","entry":"_activation_fn","repo":"ejaasaari/lemur","repo_kind":"found_in_text","path":"lemur/lemur.py","file_url":"https://github.com/ejaasaari/lemur/blob/HEAD/lemur/lemur.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"71965bf68e477424"}},{"code_sha256_prefix":"f1291f1e06fa0ce3","entry":"_validate_activation","repo":"ejaasaari/lemur","repo_kind":"found_in_text","path":"lemur/lemur.py","file_url":"https://github.com/ejaasaari/lemur/blob/HEAD/lemur/lemur.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"f1291f1e06fa0ce3"}},{"code_sha256_prefix":"5b638a77437c9195","entry":"single_maxsim","repo":"ejaasaari/lemur","repo_kind":"found_in_text","path":"lemur/lemur.py","file_url":"https://github.com/ejaasaari/lemur/blob/HEAD/lemur/lemur.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"5b638a77437c9195"}},{"code_sha256_prefix":"58242427cd54d8dd","entry":"Lemur","repo":"ejaasaari/lemur","repo_kind":"found_in_text","path":"lemur/lemur.py","file_url":"https://github.com/ejaasaari/lemur/blob/HEAD/lemur/lemur.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"58242427cd54d8dd"}}]},"arxiv_metadata":{"licence":"arXiv metadata, CC0 1.0 (https://info.arxiv.org/help/license)","fields":["title","abstract","authors","date"],"primary_category":"cs.LG","source":"arxiv_2026.jsonl"},"syntology_extracted_results":null}