Quantizing With Randomized Hadamard Transforms: Efficient Heuristic Now Proven
Ran Ben-Basat, William Kuszmaul, Michael Mitzenmacher, Amit Portnoy, Shay Vargaftik

TL;DR
This paper proves that composing two randomized Hadamard transforms makes their distribution close to Gaussian, enabling efficient quantization methods to perform well even in worst-case scenarios, with a practical adaptive check.
Contribution
It provides rigorous bounds showing two RHTs approximate URRs for many schemes and introduces a three RHT composition to handle vector quantization, along with a runtime moment-based adaptation.
Findings
Two RHTs achieve asymptotic performance matching URRs in compression schemes.
Three RHTs reduce coordinate covariance, enabling vector quantization performance.
A linear-time check can adapt the number of RHTs used based on input moments.
Abstract
Uniform random rotations (URRs) are a common preprocessing step in modern quantization approaches used for gradient compression, inference acceleration, KV-cache compression, model weight quantization, and approximate nearest-neighbor search in vector databases. In practice, URRs are often replaced by randomized Hadamard transforms (RHTs), which preserve orthogonality while admitting fast implementations. The remaining issue is the performance for worst-case inputs. With a URR, each coordinate is individually distributed as a shifted beta distribution, which converges to a Gaussian distribution in high dimensions. Generally, one RHT is not suitable in the worst case, as individual coordinates can be far from these distributions. We show that after composing two RHTs on any -sized input vector, the marginal distribution of every fixed coordinate of the normalized rotated vector is…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
