Fast Greedy Evidence Maximization Algorithm
- The paper presents a fast greedy algorithm that maximizes the determinant of a Gram matrix by iteratively selecting vectors based on residual norms.
- It achieves a composable coreset approximation guarantee through rigorous local swap-optimality bounds, significantly improving previous theoretical limits.
- Optimizations such as incremental QR updates and lazy residual computations enable scalable performance in distributed and large-scale data settings.
The Fast Greedy Evidence Maximization Algorithm addresses the determinant maximization problem, fundamental to MAP inference for determinantal point processes (DPPs). Given a ground set of vectors in , the task is to select vectors whose span maximizes the volume, equivalent to maximizing the determinant of the Gram matrix of the selected vectors. Determinant maximization has practical importance in diversity modeling and large-scale data applications, making scalable and composable algorithms crucial. The Fast Greedy Evidence Maximization Algorithm, referred to hereafter as "Greedy", provides a scalable approach with strong theoretical and empirical guarantees in the composable coreset setting, where data is partitioned across multiple machines or shards.
1. Algorithmic Structure: Greedy Determinant Maximization
The Greedy procedure constructs a coreset of size by iteratively selecting vectors that maximize the incremental volume. The key selection criterion is the squared distance from the candidate vector to the span of , computed as , where is the orthonormal basis for the current coreset. The volume increment when adding is given by , with as the Gram matrix of . Each iteration orthonormalizes the chosen vector against (e.g., via Gram–Schmidt) and updates .
Pseudocode:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
C = [] Q = [] # Orthonormal basis for C for i in range(k): max_r2 = -inf best_p = None for p in P: if p not in C: r2 = norm((I - Q @ Q.T) @ p) ** 2 if r2 > max_r2: max_r2 = r2 best_p = p Q = gram_schmidt(Q, best_p) C.append(best_p) |
2. Composable Coreset Guarantee: Approximation Bounds
In distributed or partitioned contexts, each subset (e.g., data on one machine or shard) independently runs Greedy to produce a coreset of size . The union (of size , with subdivisions) serves as the candidate pool for a final Greedy round selecting vectors for the global coreset.
The algorithm achieves a composable-coreset approximation guarantee: $\maxdet_k\left(\bigcup_i C_i\right) \geq \frac{1}{(2k(1+\sqrt{k}))^{2k}} \cdot \text{OPT}$ where OPT is the maximum determinant achievable by any -vector subset of . In big- notation, this is —a significant improvement over previous guarantees of , aligning closely with local-search bounds from earlier work.
This result follows directly by demonstrating -local optimality for Greedy, allowing application of general coreset approximation theorems for locally optimal sets.
3. Local-Optimality via Single-Swap Lemma
Central to the improved analysis is a swap (local optimality) lemma which asserts that exchanging any chosen point in the Greedy solution with any non-selected yields an increase in volume by at most : with volume defined as . The proof leverages orthogonalization (Gram–Schmidt), matrix determinant lemmas, and bounds on rank-one perturbations. This upper bound is tight up to the additive "+1"—exemplified by choices such as and for , where swapping produces a volume increase by .
4. Computational Complexity and Scalability
The naïve implementation incurs cost per round for recomputing all candidate residuals. Practical optimizations include:
- Maintaining per-vector residuals and their squared norms.
- Upon adding a new orthonormal direction , each residual is updated by one dot-product and subtraction:
- Initialization requires ; subsequent updates per round are ; maintaining is via modified Gram–Schmidt or Cholesky updates.
- For , kernel or low-rank optimizations yield per-iteration complexity .
- In very large-scale settings, sub-sampling or "lazy Greedy" prioritization heuristics (priority-week by residual norms) avoid full scans, reducing dot-products by factors of 10–50×.
Empirical runs process hundreds of thousands of points and in the hundreds within seconds on a single machine.
5. Empirical Evidence and Performance Assessment
Mahabadi et al. tested Greedy’s empirical swap-optimality on MNIST and GENES , sampling workstreams of size – and varying from 1 up to 300. The observed swap-factor was consistently below 1.5 even at ; for , it remained under 1.4 on benchmarked data and ~1.2 on random sphere points. Variation in across orders of magnitude produced negligible impact on the worst-case swap factor. This suggests that, in practical applications, Greedy is not just provably -locally-optimal but regularly outperforms theoretical bounds.
6. Implementation Recommendations and Optimization Strategies
Effective deployment of Greedy entails:
- Regularly updating the orthonormal basis via incremental QR (e.g., modified Gram–Schmidt).
- Storing and iteratively updating residuals and norms; after initial computation, next-point selection proceeds in per round.
- For very large , implement lazy updating via priority queues on candidate residual norms, recalculating only when necessary.
- In cases where or the feature space is approximately low-rank, use kernel DPP approaches: maintain Gram matrices with rank-one Cholesky updates.
- In composable or streaming-data settings, run Greedy independently on all shards/servers, then assemble the -sized coresets by a final Greedy pass.
These techniques yield a highly scalable and near-optimal Greedy solver for DPP MAP inference; the composable-coreset quality approaches the theoretical bound, performing substantially better in empirical evaluations. A plausible implication is that, for practical deployment in distributed or streaming environments, Greedy offers an efficient balance of solution quality and computational tractability.