We study the Kronecker product regression problem, in which the design matrix
is a Kronecker product of two or more matrices. Given Ai∈Rni×di for i=1,2,…,q where ni≫di for each i, and b∈Rn1n2⋯nq, let A=A1⊗A2⊗⋯⊗Aq. Then for p∈[1,2], the goal is to find x∈Rd1⋯dq that approximately minimizes ∥Ax−b∥p. Recently, Diao, Song, Sun, and Woodruff (AISTATS, 2018) gave an
algorithm which is faster than forming the Kronecker product A
Specifically, for p=2 their running time is O(∑i=1qnnz(Ai)+nnz(b)), where nnz(Ai) is the number of non-zero entries in Ai.
Note that nnz(b) can be as large as n1⋯nq. For p=1,q=2 and
n1=n2, they achieve a worse bound of O(n13/2poly(d1d2)+nnz(b)). In this work, we provide significantly faster algorithms. For
p=2, our running time is O(∑i=1qnnz(Ai)), which has no
dependence on nnz(b). For p<2, our running time is O(∑i=1qnnz(Ai)+nnz(b)), which matches the prior best running time
for p=2. We also consider the related all-pairs regression problem, where
given A∈Rn×d,b∈Rn, we want to solve
minx∥Aˉx−bˉ∥p, where Aˉ∈Rn2×d,bˉ∈Rn2 consist of all pairwise differences of the
rows of A,b. We give an O(nnz(A)) time algorithm for p∈[1,2],
improving the Ω(n2) time needed to form Aˉ. Finally, we initiate
the study of Kronecker product low rank and low t-rank approximation. For
input A as above, we give O(∑i=1qnnz(Ai)) time
algorithms, which is much faster than computing A.