Fast matrix-vector products in tensor-train format via structured sketching
We propose a randomized, streamable algorithm that computes a tensor-train approximation of a matrix-vector product without ever forming the full intermediate tensor. We develop three contraction strategies for streaming tensor-train approximation (STTA): sequential, fused, and pre-sketched. We focus on the regime of large operator mode sizes and show that pre-sketching can provide significant speed-ups when a lower-rank approximation of the input is sought, by pre-computing all sketch-related contractions with the operator. The pre-sketched strategy can also accelerate successive randomized compression (SRC), although to a lesser extent since its second sweep depends on the input vector and cannot be pre-computed. We compare the three strategies in terms of computational cost and memory, and demonstrate their performance on synthetic and application-driven examples where rank reduction is relevant.