How to Fake Multiply by a Gaussian Matrix
Abstract
Have you ever wanted to multiply an n × d matrix X, with n d, on the left by an m × n matrix G of i.i.d. Gaussian random variables, but could not afford to do it because it was too slow? In this work we propose a new randomized m × n matrix T, for which one can compute T · X in only O(nnz(X)) + O(m2 · d3) time, for which the total variation distance between the distributions T · X and G · X is as small as desired, i.e., less than any positive constant. Here nnz(X) denotes the number of non-zero entries of X. Assuming nnz(X) m2 · d3, this is a significant savings over the na\"ive O(nnz(X) m) time to compute G · X. Moreover, since the total variation distance is small, we can provably use T · X in place of G · X in any application and have the same guarantees as if we were using G · X, up to a small positive constant in error probability. We apply this transform to nonnegative matrix factorization (NMF) and support vector machines (SVM).
Turn this paper into a lesson
ArcXiv compiles a structured reading guide from this paper's metadata: plain-English importance, contributions, prerequisite concepts, which sections to read first, flashcards, and a quiz. Grounded in the abstract, never invented.