# Fast Randomized PCA for Sparse Data

arXiv: https://arxiv.org/abs/1810.06825 · HTML: https://mlsanity.com/paper/1810.06825/

## Key facts

- Cited by 5 papers in the map (data through 14 Oct 2026).
- First posted on arXiv 16 Oct 2018.

## Built on by (most cited first, 5 of 5)

- [Learning Based Proximity Matrix Factorization for Node Embedding](https://mlsanity.com/paper/2106.05476/) (2021)
- [Network representation learning: A macro and micro view](https://mlsanity.com/paper/2111.10772/) (2021)
- [DiffRed: Dimensionality Reduction guided by stable rank](https://mlsanity.com/paper/2403.05882/) (2024)
- [Robust Visual Tracking by Motion Analyzing](https://mlsanity.com/paper/2309.03247/) (2023)
- [Asymptotically perfect seeded graph matching without edge correlation (and applications to inference)](https://mlsanity.com/paper/2506.02825/) (2025)

## Abstract (arXiv)

Principal component analysis (PCA) is widely used for dimension reduction and embedding of real data in social network analysis, information retrieval, and natural language processing, etc. In this work we propose a fast randomized PCA algorithm for processing large sparse data. The algorithm has similar accuracy to the basic randomized SVD (rPCA) algorithm (Halko et al., 2011), but is largely optimized for sparse data. It also has good flexibility to trade off runtime against accuracy for practical usage. Experiments on real data show that the proposed algorithm is up to 9.1X faster than the basic rPCA algorithm without accuracy loss, and is up to 20X faster than the svds in Matlab with little error. The algorithm computes the first 100 principal components of a large information retrieval data with 12,869,521 persons and 323,899 keywords in less than 400 seconds on a 24-core machine, while all conventional methods fail due to the out-of-memory issue.
