In plain words: Instead of finding the main directions first, it repeatedly calls a stable regression routine and sharpens it until a vector snaps onto them. Speed does not depend on how many directions you keep, and it beats the usual find-directions-then-fit approach at principal component regression.
Abstract
We show how to efficiently project a vector onto the top principal components of a matrix, without explicitly computing these components. Specifically, we introduce an iterative algorithm that provably computes the projection using few calls to any black-box routine for ridge regression. By avoiding explicit principal component analysis (PCA), our algorithm is the first with no runtime dependence on the number of top principal components. We show that it can be used to give a fast iterative method for the popular principal component regression problem, giving the first major runtime improvement over the naive method of combining PCA with regression. To achieve our results, we first observe that ridge regression can be used to obtain a "smooth projection" onto the top principal components. We then sharpen this approximation to true projection using a low-degree polynomial approximation to the matrix step function. Step function approximation is a topic of long-term interest in scientific computing. We extend prior theory by constructing polynomials with simple iterative structure and rigorously analyzing their behavior under limited precision.
Roy Frostig, Cameron Musco, Christopher Musco, Aaron Sidford
arXiv:1602.06872 · cs.DS, cs.LG, stat.ML · submitted Feb 22, 2016 · updated Nov 26, 2019
abstract · pdf · html
More than that, the method actually appears to be an iterative "prox" method. These things are very well studied in the convex analysis literature. I wouldn't be surprised if this already appears as a special case of an algorithm in the literature somewhere.