Papers › Streaming and Distributed Algorithms for Robust Column Subset Selection

Streaming and Distributed Algorithms for Robust Column Subset Selection

16 Jul 2021arXiv:2107.07657links table onlyarchive 2025-07-28

Shuli Jiang, Dongyu Li, Irene Mengze Li, Arvind V. Mahankali, David P. Woodruff

The archive published only this paper's code-link row. Authors, date and abstract are from arXiv's metadata (CC0), read from the Kaggle arXiv metadata snapshot of 2026-09-12 where its title matched the archive's; the title is the archive's.

We give the first single-pass streaming algorithm for Column Subset Selection with respect to the entrywise ℓₚ-norm with 1 ≤p < 2. We study the ℓₚ norm loss since it is often considered more robust to noise than the standard Frobenius norm. Given an input matrix A ∈ℝ^(d ×n) (n ≫d), our algorithm achieves a multiplicative k^(1/p - 1/2)poly(lognd)-approximation to the error with respect to the best possible column subset of size k. Furthermore, the space complexity of the streaming algorithm is optimal up to a logarithmic factor. Our streaming algorithm also extends naturally to a 1-round distributed protocol with nearly optimal communication cost. A key ingredient in our algorithms is a reduction to column subset selection in the ℓ_(p,2)-norm, which corresponds to the p-norm of the vector of Euclidean norms of each of the columns of A. This enables us to leverage strong coreset constructions for the Euclidean norm, which previously had not been applied in this context. We also give the first provable guarantees for greedy column subset selection in the ℓ_(1, 2) norm, which can be used as an alternative, practical subroutine in our algorithms. Finally, we show that our algorithms give significant practical advantages on real-world data analysis tasks.

PaperPDFCodeCode Syntology ran

In Syntology Open this paper in Syntology's Atlas, the map of the papers in Syntology's graph and their citations.

For agents, Syntology's MCP tool lists every function and class Syntology harvested from this paper and whether it ran (how to connect): get_harvested_code_for_paper(arxiv_id="2107.07657")

Code

Syntology Ran 0 of 8 code samples harvested from 1 repository linked to this paper; 8 have no recorded run.

By repository: official repository: 8 samples from 1 repository, 0 ran. The run record, sample by sample. “Ran” means executed on a synthesized input, not that the code is correct or reproduces the paper.

11hifish/robust_css officialmentioned in paperApache-2.0 report

Repository list and official/mentioned flags are the archive's, frozen 2025-07-28. Reachability, where shown, is from one Syntology probe window (2026-09-16 to 2026-09-18); repositories not probed show nothing. GitHub stars are not tracked.

Code Syntology ran Syntology

8 samples harvested; 0 ran; 0 honoured the contract we drafted; 8 have no recorded run. Read from Syntology's graph 2026-09-24; that is when this build read the record, not when the samples ran.

8unverified

Licence: 0 of the 8 samples are pointer only, meaning Syntology does not serve that copy's text. This page shows no code text for any sample; each one links to its file in the repository.

Harvested from 11hifish/robust_css. “Ran” means the sample executed on a synthesized input. It does not mean the output is correct, and nothing here reproduces the paper's results. “Honoured” and “violated” refer to a contract Syntology drafted from the code itself; “our draft was wrong” and “fixture could not drive it” are failures of Syntology's instrument, not of the code.

Each sample ends with its code_sha256, Syntology's identity for that exact code. An agent fetches the stored sample with Syntology's MCP tool get_code(code_sha256="…") (how to connect); click an identity to copy that call.

Repository labels, per sample. official repository: The archive marks this repository official for the paper. named in the paper: The archive records that the paper mentions this repository; it is not marked official. community (archive-listed): In the archive's code links for this paper, not marked official and not recorded as mentioned in the paper. found in paper text by Syntology: 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. Samples from a repository marked official are listed first. Licence labels name the repository's licence as recorded at harvest. “Pointer only” means Syntology does not serve that copy's text, for one of four reasons: no licence file was found; the licence was not identified; the licence is recorded as permissive but that copy's record is not marked cleared; or the licence is outside the permissive list Syntology serves text under (MIT, Apache-2.0, BSD and similar). Some licences outside that list permit redistribution, such as WTFPL, and GPL-3.0 under its conditions; they are simply not on the list. Hover a licence label for the reason. File links open the file on GitHub at the default branch, which may have changed since the harvest.

compute_l1_error 11hifish/robust_css/code_v2/common/l1_regression.py official repository unverified Apache-2.0 (permissive) · 16b1a7bedd130857 · report
find_V_l12 11hifish/robust_css/code_v2/common/kCSS12_greedy.py official repository unverified Apache-2.0 (permissive) · 482828ec765604e4 · report
generate_synthetic_matrix 11hifish/robust_css/code_v2/common/generate_synthetic.py official repository unverified Apache-2.0 (permissive) · 77b6671111560397 · report
get_random_columns 11hifish/robust_css/code_v2/baselines/uniform_distributed.py official repository unverified Apache-2.0 (permissive) · d5cc906cc09be0bf · report
norm_l12 11hifish/robust_css/code_v2/common/kCSS12_greedy.py official repository unverified Apache-2.0 (permissive) · 73e566be767f9ee3 · report
pick_first_column_greedy_l12 11hifish/robust_css/code_v2/common/kCSS12_greedy.py official repository unverified Apache-2.0 (permissive) · 715f0b30fd0b3cbd · report
rank_k_svd 11hifish/robust_css/code_v2/baselines/rank_k_svd.py official repository unverified Apache-2.0 (permissive) · 725bf4d2d2b1af70 · report
solve_l1_regression_MOSEK 11hifish/robust_css/code_v2/common/l1_regression.py official repository unverified Apache-2.0 (permissive) · 5be5fcee8512befd · report

Results from the paper archive 2025-07-28

No leaderboard rows for this paper in the archive.

Report a problem or propose a change · a person checks every report against the paper or source before anything changes; decisions are listed on /corrections