Sculpting the Vector Space: Towards Efficient Multi-Vector Visual Document Retrieval via Prune-then-Merge Framework
Organizations: Hong Kong University of Science and Technology (Guangzhou) · Alibaba Cloud Computing · Hong Kong University of Science and Technology
Abstract
Visual Document Retrieval (VDR), which aims to retrieve relevant pages within vast corpora of visually-rich documents, is of significance in current multimodal retrieval applications. The state-of-the-art multi-vector paradigm excels in performance but suffers from prohibitive overhead, a problem that current efficiency methods like pruning and merging address imperfectly, creating a difficult trade-off between compression rate and feature fidelity. To overcome this dilemma, we introduce Prune-then-Merge, a novel two-stage framework that synergizes these complementary approaches. Our method first employs an adaptive pruning stage to filter out low-information patches, creating a refined, high-signal set of embeddings. Subsequently, a hierarchical merging stage compresses this pre-filtered set, effectively summarizing semantic content without the noise-induced feature dilution seen in single-stage methods. Extensive experiments on 29 VDR datasets demonstrate that our framework consistently outperforms existing methods, significantly extending the near-lossless compression range and providing robust performance at high compression ratios.
Figures & tables
| ColQwen | ColNomic | JinaV4 | |
| nDCG@5 | 0.27% | 0.51% | 0.57% |
| Storage | 58.88% | 52.16% | 52.77% |
| Latency | 56.10% | 51.11% | 47.06% |
Appendix figures & tables31 assets
Supplementary material from the paper’s appendix.
Appendix
| ColQwen2.5 | ColNomic | JinaV4 | Overall | ||
| Performance (nDCG@5) | base | 0.8795 | 0.8999 | 0.8777 | 0.8857 |
| Prune-then-Merge | 0.8771 | 0.8953 | 0.8727 | 0.8817 | |
| 0.27% | 0.51% | 0.57% | 0.45% | ||
| Storage | base | 1.0000 | 1.0000 | 1.0000 | 1.0000 |
| Prune-then-Merge | 0.4112 | 0.4784 | 0.4723 | 0.4500 | |
| 58.88% | 52.16% | 52.77% | 54.60% |
| Type | Methods | Adp. | Para | all | arxqa | docqa | infovqa | tabfquad | tatdqa | shiftproject | synth_ai | synth_energy | synth_gov | synth_health | |||||||||||
| ndcg | prun% | ndcg | prun% | ndcg | prun% | ndcg | prun% | ndcg | prun% | ndcg | prun% | ndcg | prun% | ndcg | prun% | ndcg | prun% | ndcg | prun% | ndcg | prun% | ||||
| pruning | base | - | 0.87 | - | 0.86 | - | 0.60 | - | 0.92 | - | 0.90 | - | 0.76 | - | 0.86 | - | 0.98 | - | 0.95 | - | 0.96 | - | 0.96 | - | |
| pruning | random | ratio=0.1 | 0.87 | 0.10 | 0.86 | 0.10 | 0.60 | 0.10 | 0.92 | 0.10 | 0.91 | 0.10 | 0.76 | 0.10 | 0.85 | 0.10 | 0.98 | 0.10 | 0.95 | 0.10 | 0.95 | 0.10 | 0.97 | 0.10 | |
| pruning | random | ratio=0.3 | 0.87 | 0.30 | 0.86 | 0.30 | 0.60 | 0.30 | 0.91 | 0.30 | 0.91 | 0.30 | 0.76 | 0.30 | 0.84 | 0.30 | 0.98 | 0.30 | 0.95 | 0.30 | 0.96 | 0.30 | 0.97 | 0.30 | |
| pruning | random | ratio=0.5 | 0.87 | 0.50 | 0.86 | 0.50 | 0.60 | 0.50 | 0.91 | 0.50 | 0.91 | 0.50 | 0.76 | 0.50 | 0.82 | 0.50 | 0.98 | 0.50 | 0.96 | 0.50 | 0.95 | 0.50 | 0.97 | 0.50 | |
| pruning | random | ratio=0.7 | 0.86 | 0.70 | 0.85 | 0.70 | 0.58 | 0.70 | 0.91 | 0.70 | 0.91 | 0.70 | 0.75 | 0.70 | 0.79 | 0.70 | 0.97 | 0.70 | 0.95 | 0.70 | 0.96 | 0.70 | 0.97 | 0.70 | |
| Type | Methods | Adp. | Para | all | arxqa | docqa | infovqa | tabfquad | tatdqa | shiftproject | synth_ai | synth_energy | synth_gov | synth_health | |||||||||||
| ndcg | prun% | ndcg | prun% | ndcg | prun% | ndcg | prun% | ndcg | prun% | ndcg | prun% | ndcg | prun% | ndcg | prun% | ndcg | prun% | ndcg | prun% | ndcg | prun% | ||||
| pruning | base | - | 0.89 | - | 0.87 | - | 0.60 | - | 0.93 | - | 0.94 | - | 0.82 | - | 0.91 | - | 0.98 | - | 0.97 | - | 0.97 | - | 0.98 | - | |
| pruning | random | ratio=0.1 | 0.89 | 0.10 | 0.87 | 0.10 | 0.60 | 0.10 | 0.92 | 0.10 | 0.94 | 0.10 | 0.82 | 0.10 | 0.90 | 0.10 | 0.98 | 0.10 | 0.96 | 0.10 | 0.97 | 0.10 | 0.98 | 0.10 | |
| pruning | random | ratio=0.3 | 0.89 | 0.30 | 0.87 | 0.30 | 0.60 | 0.30 | 0.92 | 0.30 | 0.94 | 0.30 | 0.81 | 0.30 | 0.90 | 0.30 | 0.98 | 0.30 | 0.96 | 0.30 | 0.97 | 0.30 | 0.99 | 0.30 | |
| pruning | random | ratio=0.5 | 0.89 | 0.50 | 0.87 | 0.50 | 0.59 | 0.50 | 0.92 | 0.50 | 0.94 | 0.50 | 0.81 | 0.50 | 0.88 | 0.50 | 0.98 | 0.50 | 0.97 | 0.50 | 0.97 | 0.50 | 0.99 | 0.50 | |
| pruning | random | ratio=0.7 | 0.88 | 0.70 | 0.86 | 0.70 | 0.58 | 0.70 | 0.91 | 0.70 | 0.94 | 0.70 | 0.80 | 0.70 | 0.85 | 0.70 | 0.98 | 0.70 | 0.96 | 0.70 | 0.97 | 0.70 | 0.98 | 0.70 | |
| Type | Methods | Adp. | Para | all | arxqa | docqa | infovqa | tabfquad | tatdqa | shiftproject | synth_ai | synth_energy | synth_gov | synth_health | |||||||||||
| ndcg | prun% | ndcg | prun% | ndcg | prun% | ndcg | prun% | ndcg | prun% | ndcg | prun% | ndcg | prun% | ndcg | prun% | ndcg | prun% | ndcg | prun% | ndcg | prun% | ||||
| pruning | base | - | 0.87 | - | 0.86 | - | 0.58 | - | 0.90 | - | 0.92 | - | 0.72 | - | 0.88 | - | 0.98 | - | 0.95 | - | 0.96 | - | 0.97 | - | |
| pruning | random | ratio=0.1 | 0.87 | 0.10 | 0.86 | 0.10 | 0.58 | 0.10 | 0.90 | 0.10 | 0.92 | 0.10 | 0.72 | 0.10 | 0.88 | 0.10 | 0.98 | 0.10 | 0.96 | 0.10 | 0.96 | 0.10 | 0.97 | 0.10 | |
| pruning | random | ratio=0.3 | 0.87 | 0.30 | 0.86 | 0.30 | 0.58 | 0.30 | 0.89 | 0.30 | 0.92 | 0.30 | 0.72 | 0.30 | 0.88 | 0.30 | 0.98 | 0.30 | 0.95 | 0.30 | 0.96 | 0.30 | 0.97 | 0.30 | |
| pruning | random | ratio=0.5 | 0.87 | 0.50 | 0.85 | 0.50 | 0.57 | 0.50 | 0.89 | 0.50 | 0.92 | 0.50 | 0.72 | 0.50 | 0.86 | 0.50 | 0.98 | 0.50 | 0.95 | 0.50 | 0.96 | 0.50 | 0.96 | 0.50 | |
| pruning | random | ratio=0.7 | 0.85 | 0.70 | 0.85 | 0.70 | 0.54 | 0.70 | 0.87 | 0.70 | 0.92 | 0.70 | 0.70 | 0.70 | 0.84 | 0.70 | 0.97 | 0.70 | 0.93 | 0.70 | 0.97 | 0.70 | 0.97 | 0.70 | |
| Type | Methods | Adp. | Para | all | esg | biomedical | economics | esg_human | |||||
| ndcg | prun% | ndcg | prun% | ndcg | prun% | ndcg | prun% | ndcg | prun% | ||||
| pruning | base | - | 0.55 | - | 0.51 | - | 0.58 | - | 0.49 | - | 0.61 | - | |
| pruning | random | ratio=0.1 | 0.53 | 0.10 | 0.49 | 0.10 | 0.56 | 0.10 | 0.49 | 0.10 | 0.59 | 0.10 | |
| pruning | random | ratio=0.3 | 0.50 | 0.30 | 0.45 | 0.30 | 0.55 | 0.30 | 0.49 | 0.30 | 0.50 | 0.30 | |
| pruning | random | ratio=0.5 | 0.46 | 0.50 | 0.43 | 0.50 | 0.54 | 0.50 | 0.45 | 0.50 | 0.44 | 0.50 | |
| pruning | random | ratio=0.7 | 0.45 | 0.70 | 0.39 | 0.70 | 0.53 | 0.70 | 0.47 | 0.70 | 0.40 | 0.70 | |
| Type | Methods | Adp. | Para | all | esg | biomedical | economics | esg_human | |||||
| ndcg | prun% | ndcg | prun% | ndcg | prun% | ndcg | prun% | ndcg | prun% | ||||
| pruning | base | - | 0.59 | - | 0.55 | - | 0.63 | - | 0.55 | - | 0.63 | - | |
| pruning | random | ratio=0.1 | 0.59 | 0.10 | 0.54 | 0.10 | 0.62 | 0.10 | 0.55 | 0.10 | 0.65 | 0.10 | |
| pruning | random | ratio=0.3 | 0.58 | 0.30 | 0.52 | 0.30 | 0.62 | 0.30 | 0.54 | 0.30 | 0.65 | 0.30 | |
| pruning | random | ratio=0.5 | 0.57 | 0.50 | 0.50 | 0.50 | 0.62 | 0.50 | 0.55 | 0.50 | 0.61 | 0.50 | |
| pruning | random | ratio=0.7 | 0.54 | 0.70 | 0.45 | 0.70 | 0.60 | 0.70 | 0.54 | 0.70 | 0.57 | 0.70 | |
| Type | Methods | Adp. | Para | all | esg | biomedical | economics | esg_human | |||||
| ndcg | prun% | ndcg | prun% | ndcg | prun% | ndcg | prun% | ndcg | prun% | ||||
| pruning | base | - | 0.56 | - | 0.50 | - | 0.60 | - | 0.54 | - | 0.62 | - | |
| pruning | random | ratio=0.1 | 0.57 | 0.10 | 0.51 | 0.10 | 0.59 | 0.10 | 0.54 | 0.10 | 0.62 | 0.10 | |
| pruning | random | ratio=0.3 | 0.56 | 0.30 | 0.49 | 0.30 | 0.59 | 0.30 | 0.54 | 0.30 | 0.62 | 0.30 | |
| pruning | random | ratio=0.5 | 0.56 | 0.50 | 0.48 | 0.50 | 0.60 | 0.50 | 0.55 | 0.50 | 0.61 | 0.50 | |
| pruning | random | ratio=0.7 | 0.52 | 0.70 | 0.44 | 0.70 | 0.58 | 0.70 | 0.51 | 0.70 | 0.56 | 0.70 | |
| Type | Methods | Adp. | Para | all | arabic | japanese | russian | german | spanish | italian | dutch | hindi | chinese | ||||||||||
| ndcg | prun% | ndcg | prun% | ndcg | prun% | ndcg | prun% | ndcg | prun% | ndcg | prun% | ndcg | prun% | ndcg | prun% | ndcg | prun% | ndcg | prun% | ||||
| pruning | base | - | 0.54 | - | 0.46 | - | 0.74 | - | 0.74 | - | 0.35 | - | 0.56 | - | 0.61 | - | 0.44 | - | 0.07 | - | 0.90 | - | |
| pruning | random | ratio=0.1 | 0.54 | 0.10 | 0.45 | 0.10 | 0.73 | 0.10 | 0.75 | 0.10 | 0.35 | 0.10 | 0.57 | 0.10 | 0.61 | 0.10 | 0.44 | 0.10 | 0.07 | 0.10 | 0.90 | 0.10 | |
| pruning | random | ratio=0.3 | 0.54 | 0.30 | 0.46 | 0.30 | 0.72 | 0.30 | 0.75 | 0.30 | 0.34 | 0.30 | 0.57 | 0.30 | 0.61 | 0.30 | 0.44 | 0.30 | 0.07 | 0.30 | 0.89 | 0.30 | |
| pruning | random | ratio=0.5 | 0.53 | 0.50 | 0.46 | 0.50 | 0.73 | 0.50 | 0.72 | 0.50 | 0.33 | 0.50 | 0.55 | 0.50 | 0.61 | 0.50 | 0.46 | 0.50 | 0.07 | 0.50 | 0.89 | 0.50 | |
| pruning | random | ratio=0.7 | 0.52 | 0.70 | 0.44 | 0.70 | 0.69 | 0.70 | 0.74 | 0.70 | 0.31 | 0.70 | 0.53 | 0.70 | 0.59 | 0.70 | 0.43 | 0.70 | 0.06 | 0.70 | 0.88 | 0.70 | |
| Type | Methods | Adp. | Para | all | arabic | japanese | russian | german | spanish | italian | dutch | hindi | chinese | ||||||||||
| ndcg | prun% | ndcg | prun% | ndcg | prun% | ndcg | prun% | ndcg | prun% | ndcg | prun% | ndcg | prun% | ndcg | prun% | ndcg | prun% | ndcg | prun% | ||||
| pruning | base | - | 0.72 | - | 0.91 | - | 0.83 | - | 0.86 | - | 0.59 | - | 0.79 | - | 0.75 | - | 0.61 | - | 0.21 | - | 0.95 | - | |
| pruning | random | ratio=0.1 | 0.72 | 0.10 | 0.92 | 0.10 | 0.83 | 0.10 | 0.87 | 0.10 | 0.59 | 0.10 | 0.79 | 0.10 | 0.74 | 0.10 | 0.62 | 0.10 | 0.21 | 0.10 | 0.95 | 0.10 | |
| pruning | random | ratio=0.3 | 0.72 | 0.30 | 0.91 | 0.30 | 0.85 | 0.30 | 0.86 | 0.30 | 0.59 | 0.30 | 0.79 | 0.30 | 0.74 | 0.30 | 0.63 | 0.30 | 0.21 | 0.30 | 0.95 | 0.30 | |
| pruning | random | ratio=0.5 | 0.72 | 0.50 | 0.90 | 0.50 | 0.86 | 0.50 | 0.87 | 0.50 | 0.58 | 0.50 | 0.77 | 0.50 | 0.74 | 0.50 | 0.61 | 0.50 | 0.21 | 0.50 | 0.94 | 0.50 | |
| pruning | random | ratio=0.7 | 0.71 | 0.70 | 0.90 | 0.70 | 0.85 | 0.70 | 0.87 | 0.70 | 0.55 | 0.70 | 0.76 | 0.70 | 0.73 | 0.70 | 0.61 | 0.70 | 0.20 | 0.70 | 0.96 | 0.70 | |
| Type | Methods | Adp. | Para | all | arabic | japanese | russian | german | spanish | italian | dutch | hindi | chinese | ||||||||||
| ndcg | prun% | ndcg | prun% | ndcg | prun% | ndcg | prun% | ndcg | prun% | ndcg | prun% | ndcg | prun% | ndcg | prun% | ndcg | prun% | ndcg | prun% | ||||
| pruning | base | - | 0.66 | - | 0.92 | - | 0.74 | - | 0.80 | - | 0.54 | - | 0.66 | - | 0.68 | - | 0.47 | - | 0.17 | - | 0.97 | - | |
| pruning | random | ratio=0.1 | 0.66 | 0.10 | 0.91 | 0.10 | 0.74 | 0.10 | 0.80 | 0.10 | 0.53 | 0.10 | 0.66 | 0.10 | 0.68 | 0.10 | 0.48 | 0.10 | 0.17 | 0.10 | 0.97 | 0.10 | |
| pruning | random | ratio=0.3 | 0.66 | 0.30 | 0.91 | 0.30 | 0.76 | 0.30 | 0.80 | 0.30 | 0.54 | 0.30 | 0.66 | 0.30 | 0.68 | 0.30 | 0.48 | 0.30 | 0.17 | 0.30 | 0.96 | 0.30 | |
| pruning | random | ratio=0.5 | 0.66 | 0.50 | 0.90 | 0.50 | 0.75 | 0.50 | 0.80 | 0.50 | 0.53 | 0.50 | 0.65 | 0.50 | 0.67 | 0.50 | 0.47 | 0.50 | 0.16 | 0.50 | 0.96 | 0.50 | |
| pruning | random | ratio=0.7 | 0.64 | 0.70 | 0.89 | 0.70 | 0.75 | 0.70 | 0.79 | 0.70 | 0.52 | 0.70 | 0.61 | 0.70 | 0.66 | 0.70 | 0.46 | 0.70 | 0.16 | 0.70 | 0.96 | 0.70 | |
| Type | Methods | Adp. | Para | all | finreport | finslides | techreport | techslides | |||||
| ndcg | prun% | ndcg | prun% | ndcg | prun% | ndcg | prun% | ndcg | prun% | ||||
| pruning | base | - | 0.72 | - | 0.55 | - | 0.62 | - | 0.81 | - | 0.90 | - | |
| pruning | random | ratio=0.1 | 0.72 | 0.10 | 0.55 | 0.10 | 0.62 | 0.10 | 0.81 | 0.10 | 0.90 | 0.10 | |
| pruning | random | ratio=0.3 | 0.72 | 0.30 | 0.55 | 0.30 | 0.60 | 0.30 | 0.80 | 0.30 | 0.91 | 0.30 | |
| pruning | random | ratio=0.5 | 0.70 | 0.50 | 0.54 | 0.50 | 0.58 | 0.50 | 0.79 | 0.50 | 0.90 | 0.50 | |
| pruning | random | ratio=0.7 | 0.68 | 0.70 | 0.50 | 0.70 | 0.53 | 0.70 | 0.78 | 0.70 | 0.90 | 0.70 | |
| Type | Methods | Adp. | Para | all | finreport | finslides | techreport | techslides | |||||
| ndcg | prun% | ndcg | prun% | ndcg | prun% | ndcg | prun% | ndcg | prun% | ||||
| pruning | base | - | 0.78 | - | 0.63 | - | 0.73 | - | 0.83 | - | 0.92 | - | |
| pruning | random | ratio=0.1 | 0.84 | 0.10 | 0.76 | 0.10 | 0.80 | 0.10 | 0.88 | 0.10 | 0.91 | 0.10 | |
| pruning | random | ratio=0.3 | 0.83 | 0.30 | 0.76 | 0.30 | 0.79 | 0.30 | 0.87 | 0.30 | 0.92 | 0.30 | |
| pruning | random | ratio=0.5 | 0.81 | 0.50 | 0.72 | 0.50 | 0.75 | 0.50 | 0.86 | 0.50 | 0.91 | 0.50 | |
| pruning | random | ratio=0.7 | 0.77 | 0.70 | 0.67 | 0.70 | 0.67 | 0.70 | 0.82 | 0.70 | 0.90 | 0.70 | |
| Type | Methods | Adp. | Para | overall | finreport | finslides | techreport | techslides | |||||
| ndcg | prun% | ndcg | prun% | ndcg | prun% | ndcg | prun% | ndcg | prun% | ||||
| pruning | base | - | 0.79 | - | 0.69 | - | 0.73 | - | 0.82 | - | 0.91 | - | |
| pruning | random | ratio=0.1 | 0.79 | 0.10 | 0.69 | 0.10 | 0.73 | 0.10 | 0.82 | 0.10 | 0.91 | 0.10 | |
| pruning | random | ratio=0.3 | 0.79 | 0.30 | 0.69 | 0.30 | 0.72 | 0.30 | 0.82 | 0.30 | 0.92 | 0.30 | |
| pruning | random | ratio=0.5 | 0.78 | 0.50 | 0.67 | 0.50 | 0.72 | 0.50 | 0.81 | 0.50 | 0.91 | 0.50 | |
| pruning | random | ratio=0.7 | 0.74 | 0.70 | 0.63 | 0.70 | 0.65 | 0.70 | 0.79 | 0.70 | 0.90 | 0.70 | |
| Type | Methods | Adp. | Para | overall | |
| ndcg@5 | pruning% | ||||
| pruning | base | - | 0.82 | - | |
| pruning | random | ratio=0.1 | 0.82 | 0.10 | |
| pruning | random | ratio=0.3 | 0.82 | 0.30 | |
| pruning | random | ratio=0.5 | 0.82 | 0.50 | |
| pruning | random | ratio=0.7 | 0.82 | 0.70 | |
| Type | Methods | Adp. | Para | overall | |
| ndcg@5 | pruning% | ||||
| pruning | base | - | 0.84 | - | |
| pruning | random | ratio=0.1 | 0.83 | 0.10 | |
| pruning | random | ratio=0.3 | 0.83 | 0.30 | |
| pruning | random | ratio=0.5 | 0.83 | 0.50 | |
| pruning | random | ratio=0.7 | 0.83 | 0.70 | |
| Type | Methods | Adp. | Para | overall | |
| ndcg@5 | pruning% | ||||
| pruning | base | - | 0.81 | - | |
| pruning | random | ratio=0.1 | 0.81 | 0.10 | |
| pruning | random | ratio=0.3 | 0.81 | 0.30 | |
| pruning | random | ratio=0.5 | 0.81 | 0.50 | |
| pruning | random | ratio=0.7 | 0.81 | 0.70 | |
| Type | Methods | Adp. | Para | overall | |
| ndcg@5 | pruning% | ||||
| pruning | base | - | 0.54 | - | |
| pruning | random | ratio=0.1 | 0.54 | 0.10 | |
| pruning | random | ratio=0.3 | 0.53 | 0.30 | |
| pruning | random | ratio=0.5 | 0.53 | 0.50 | |
| pruning | random | ratio=0.7 | 0.51 | 0.70 | |
| Type | Methods | Adp. | Para | overall | |
| ndcg@5 | pruning% | ||||
| pruning | base | - | 0.57 | - | |
| pruning | random | ratio=0.1 | 0.57 | 0.10 | |
| pruning | random | ratio=0.3 | 0.55 | 0.30 | |
| pruning | random | ratio=0.5 | 0.54 | 0.50 | |
| pruning | random | ratio=0.7 | 0.52 | 0.70 | |
| Type | Methods | Adp. | Para | overall | |
| ndcg@5 | pruning% | ||||
| pruning | base | - | 0.54 | - | |
| pruning | random | ratio=0.1 | 0.54 | 0.10 | |
| pruning | random | ratio=0.3 | 0.54 | 0.30 | |
| pruning | random | ratio=0.5 | 0.53 | 0.50 | |
| pruning | random | ratio=0.7 | 0.52 | 0.70 | |
Visual Document Retrieval
Visual document retrieval finds relevant pages or regions in image-based documents using visual and multimodal representations.
See all 66 papers