Corrected Block Sparse Spectral Optimization: Exact Models, Finite Identification, and Local Dynamics
Organizations: sAIm Labs
Abstract
The block generalized-power method pairs threshold-based support selection with inexpensive Stiefel updates, but the standard block formulation conflates two nonequivalent objectives and leaves inactive components, threshold ties, and post-selection refitting ill-specified. We rebuild the model from the primal. Eliminating each loading column from the normalized loading-ball problem gives a sum of soft-thresholded Euclidean norms (A-SUM); the squared-threshold objective in common use arises from a quadratic lift (A-SQ). We prove both identities, exhibit a two-component instance whose maximizers disagree, and specify explicit conventions for zero-response columns, ties, rank deficiency, and mask-before-refit. For A-SQ we separate the historical full-polar iteration from a safeguarded Riemannian ascent and prove, for the latter, whole-sequence convergence via a sufficient-ascent lemma, a relative-error lemma, and the Kurdyka-Lojasiewicz property, which applies because the soft-threshold objective and the Stiefel constraint are semi-algebraic. A strict threshold margin then forces finite identification of the support and sign pattern. The post-identification map is ordinary power iteration on the active covariance for a rank-one hard threshold, and the Frechet derivative of a coupled polar map for component-specific supports; a radius-based safe-screening rule follows from the same local analysis. Planted-spike experiments match the predicted identification time and local rates. On modern-AI panels (GPT-2 residual stream, ViT CLS stream, Pitprops) the thresholded block-sparse components match dense PCA on reconstruction and improve on it in monosemanticity and class specialisation. On three native-label scRNA datasets (Zheng17 FACS-sorted PBMCs, 68k donor-A with FACS-correlated labels, Tabula Muris) A-SQ beats dense PCA on cluster-recovery AMI by +0.023 to +0.044 at matched sparsity.
Figures & tables
| Estimator | Primal (per column ) | Reduced objective | Loading recovery / inactive policy |
|---|---|---|---|
| A-SUM | when nonzero; otherwise is the chosen inactive branch (loading-ball slack) | ||
| A-SQ | (unconstrained quadratic lift; the vector itself is the loading, no renormalization) | ||
| A-HT (hard-threshold, exact cardinality ) | supported on the top- coordinates of (deterministic tie policy); refit on the chosen support |
| Edge case | Policy | Pinning test |
|---|---|---|
| Threshold tie ( ) | Treated as inactive ( ) via the standard convention; signed subgradient reused by the solver. | tests/test_paper_a_identities.py::test_a1_* |
| Zero soft-threshold vector ( ) | Loading set to zero; the loading-ball slack delivers primal value ; no renormalization attempted. | test_a1_sum_norm_zero_support_returns_zero |
| Mask-first refit on a non-empty support | ; empty support raises ZeroDirectionError rather than returning NaN. | tests/test_paper_a_edge_cases.py::test_a4_mask_then_normalize_* |
| Rank-deficient polar input (Stiefel oracle) | canonical policy completes via SVD; raise policy rejects and surfaces the assumption violation. Both treated as explicit theorem conditioning. | test_a5_canonical_policy_* , test_a5_raise_policy_* |
| Zero direction to a linear oracle | Both polar policies raise ZeroDirectionError unconditionally. | test_a5_zero_direction_raises_regardless_of_policy |
| Top- tie at the boundary (A-HT) | Lower original index wins; set-valued tie metadata recorded on TopKSelection . | test_topk_tie_policy_prefers_lower_index |
| Assumption | Enables | Failure manifestation |
|---|---|---|
| Strict threshold margin | Finite support/sign identification | Persistent switching or tie dependence |
| Full-rank local polar argument | Smooth polar branch | Set-valued update and unstable derivative |
| Active eigengap or | Local linear convergence | Slow/noncontractive local dynamics |
| Certified distance radius | Safe screening | Heuristic false elimination if radius is guessed |
| Independent document units | Valid uncertainty summaries | Token-level pseudo-replication |
| noise | margin frac | n | support rec. | raw | refit | refit raw |
|---|---|---|---|---|---|---|
| -0.30 | 0.75 | 10 | 0.00 | 1.813 | 1.816 | 0.003 |
| -0.20 | 0.50 | 10 | 0.10 | 1.866 | 1.868 | 0.002 |
| -0.10 | 0.25 | 10 | 1.00 | 2.000 | 2.000 | 0.000 |
| 0.00 | 0.30 | 10 | 1.00 | 2.000 | 2.000 | 0.000 |
| 0.00 | 0.60 | 10 | 1.00 | 2.000 | 2.000 | 0.000 |
| 0.10 | 0.30 | 6 | 0.83 | 2.030 | 2.030 | 0.000 |