Compressed Matrix Multiplication

Abstract

Motivated by the problems of computing sample covariance matrices, and of transforming a collection of vectors to a basis where they are sparse, we present a simple algorithm that computes an approximation of the product of two n-by-n real matrices A and B. Let ||AB||F denote the Frobenius norm of AB, and b be a parameter determining the time/accuracy trade-off. Given 2-wise independent hash functions $1,h2: [n] -> [b], and s1,s2: [n] -> -1,+1 the algorithm works by first "compressing" the matrix product into the polynomial p(x) = sumk=1n (sumi=1n Aik s1(i) xh1(i)) (sumj=1n Bkj s2(j) xh2(j)) Using FFT for polynomial multiplication, we can compute c0,...,cb-1 such that sumi ci xi = (p(x) mod xb) + (p(x) div xb) in time Õ(n2+ n b). An unbiased estimator of (AB)ij with variance at most ||AB||F2 / b can then be computed as: Cij = s1(i) s2(j) c(h1(i)+h2(j)) mod b. Our approach also leads to an algorithm for computing AB exactly, whp., in time Õ(N + nb) in the case where A and B have at most N nonzero entries, and AB has at most b nonzero entries. Also, we use error-correcting codes in a novel way to recover significant entries of AB in near-linear time.

0

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.

Discussion (0)

Sign in to join the discussion.

Loading comments…