{"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/poqd-performance-oriented-query-decomposer","title":"POQD: Performance-Oriented Query Decomposer for Multi-vector retrieval","arxiv_id":"2505.19189","date":"2025-05-25","proceeding":null,"authors":["Yaoyang Liu","Junlin Li","Yinjun Wu","Zhen Chen"],"abstract":"Although Multi-Vector Retrieval (MVR) has achieved the state of the art on many information retrieval (IR) tasks, its performance highly depends on how to decompose queries into smaller pieces, say phrases or tokens. However, optimizing query decomposition for MVR performance is not end-to-end differentiable. Even worse, jointly solving this problem and training the downstream retrieval-based systems, say RAG systems could be highly inefficient. To overcome these challenges, we propose Performance-Oriented Query Decomposer (POQD), a novel query decomposition framework for MVR. POQD leverages one LLM for query decomposition and searches the optimal prompt with an LLM-based optimizer. We further propose an end-to-end training algorithm to alternatively optimize the prompt for query decomposition and the downstream models. This algorithm can achieve superior MVR performance at a reasonable training cost as our theoretical analysis suggests. POQD can be integrated seamlessly into arbitrary retrieval-based systems such as Retrieval-Augmented Generation (RAG) systems. Extensive empirical studies on representative RAG-based QA tasks show that POQD outperforms existing query decomposition strategies in both retrieval performance and end-to-end QA accuracy. POQD is available at https://github.com/PKU-SDS-lab/POQD-ICML25.","url_abs":"https://arxiv.org/abs/2505.19189v2","url_pdf":"https://arxiv.org/pdf/2505.19189v2.pdf","source":{"archive":"pwc-archive (Hugging Face), CC BY-SA 4.0","snapshot":"2025-07-28","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","row_kind":"abstracts"},"code_links":[{"paper_slug":"poqd-performance-oriented-query-decomposer","repo_url":"https://github.com/pku-sds-lab/poqd-icml25","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":0,"framework":"none","reach":null}],"tasks":[{"task_slug":"information-retrieval","task_name":"Information Retrieval"},{"task_slug":"rag","task_name":"RAG"},{"task_slug":"retrieval","task_name":"Retrieval"},{"task_slug":"retrieval-augmented-generation","task_name":"Retrieval-augmented Generation"}],"methods":[{"method_slug":"adam","method_name":"Adam"},{"method_slug":"attention","method_name":"Attention"},{"method_slug":"attention-dropout","method_name":"Attention Dropout"},{"method_slug":"bart","method_name":"BART"},{"method_slug":"bert","method_name":"BERT"},{"method_slug":"bpe","method_name":"BPE"},{"method_slug":"dense-connections","method_name":"Dense Connections"},{"method_slug":"dropout","method_name":"Dropout"},{"method_slug":"layer-normalization","method_name":"Layer Normalization"},{"method_slug":"linear-layer","method_name":"Linear Layer"},{"method_slug":"linear-warmup-with-linear-decay","method_name":"Linear Warmup With Linear Decay"},{"method_slug":"multi-head-attention","method_name":"Multi-Head Attention"},{"method_slug":"rag","method_name":"RAG"},{"method_slug":"residual-connection","method_name":"Residual Connection"},{"method_slug":"softmax","method_name":"Softmax"},{"method_slug":"weight-decay","method_name":"Weight Decay"},{"method_slug":"wordpiece","method_name":"WordPiece"}],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2505.19189","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2505.19189"}},"developers":"https://syntology.ai/developers","read_at":"2026-09-24T18:15:14+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":[{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/pku-sds-lab/poqd-icml25","reach":null}],"summary":{"ran_fixture":1,"ran_honours":3,"ran_draft_wrong":1},"by_repo_kind":{"official":{"samples":5,"ran":5,"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":5,"samples":[{"code_sha256_prefix":"6a1293cffc850680","entry":"compute_dependency_aware_sim_score","repo":"pku-sds-lab/poqd-icml25","repo_kind":"official","path":"Decompose_retrieval/dessert_minheap_torch.py","file_url":"https://github.com/pku-sds-lab/poqd-icml25/blob/HEAD/Decompose_retrieval/dessert_minheap_torch.py","link_basis":"first_harvest_node","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":"invariant","behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"6a1293cffc850680"}},{"code_sha256_prefix":"781868bd24cd34b6","entry":"dot_scores","repo":"pku-sds-lab/poqd-icml25","repo_kind":"official","path":"Decompose_retrieval/dessert_minheap_torch.py","file_url":"https://github.com/pku-sds-lab/poqd-icml25/blob/HEAD/Decompose_retrieval/dessert_minheap_torch.py","link_basis":"first_harvest_node","language":"python","status":"ran_honours","verification_level":1,"contract_check":"HONOURS","metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"781868bd24cd34b6"}},{"code_sha256_prefix":"164af1d4f47e5f20","entry":"embed_queries","repo":"pku-sds-lab/poqd-icml25","repo_kind":"official","path":"Decompose_retrieval/manyqa_utils.py","file_url":"https://github.com/pku-sds-lab/poqd-icml25/blob/HEAD/Decompose_retrieval/manyqa_utils.py","link_basis":"first_harvest_node","language":"python","status":"ran_honours","verification_level":1,"contract_check":"HONOURS","metamorphic_tier":"well_formed","behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"164af1d4f47e5f20"}},{"code_sha256_prefix":"b3e63a2287c2502f","entry":"embed_queries_ls","repo":"pku-sds-lab/poqd-icml25","repo_kind":"official","path":"Decompose_retrieval/manyqa_utils.py","file_url":"https://github.com/pku-sds-lab/poqd-icml25/blob/HEAD/Decompose_retrieval/manyqa_utils.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"b3e63a2287c2502f"}},{"code_sha256_prefix":"5e9ca8db2d431e36","entry":"embed_queries_with_input_queries","repo":"pku-sds-lab/poqd-icml25","repo_kind":"official","path":"Decompose_retrieval/manyqa_utils.py","file_url":"https://github.com/pku-sds-lab/poqd-icml25/blob/HEAD/Decompose_retrieval/manyqa_utils.py","link_basis":"first_harvest_node","language":"python","status":"ran_honours","verification_level":1,"contract_check":"HONOURS","metamorphic_tier":"well_formed","behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"5e9ca8db2d431e36"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}