The present disclosure provides systems and methods for communication efficient distributed mean estimation. In particular, aspects of the present disclosure can be implemented by a system in which a number of vectors reside on a number of different clients, and a centralized server device seeks to estimate the mean of such vectors. According to one aspect of the present disclosure, a client computing device can rotate a vector by a random rotation matrix and then subsequently perform probabilistic quantization on the rotated vector. According to another aspect of the present disclosure, subsequent to quantization but prior to transmission, the client computing can encode the quantized vector according to a variable length coding scheme (e.g., by computing variable length codes).
Please help me write a proper abstract based on the patent claims. CLAIM: 1. A computing system to facilitate transmission of machine-learned model updates from client devices to a centralized server computing device, the computing system comprising: one or more client computing devices, wherein each client computing device comprises one or more processors and one or more non-transitory computer-readable media that store instructions that, when executed by the one or more processors cause the client computing device to perform operations, the operations comprising: determining an update to a machine-learned model based at least in part on a local dataset stored at the client computing device; rotating the update by a random rotation matrix to obtain a rotated update; performing probabilistic quantization of the rotated update to obtain a quantized rotated update; and transmitting the quantized rotated update to the centralized server computing device. 2. The computing system of claim 1, further comprising: the centralized server computing device, the centralized server computing device comprising one or more processors and one or more non-transitory computer-readable media that store instructions that, when executed by the one or more processors cause the centralized server computing device to perform operations, the operations comprising: receiving the one or more quantized rotated updates respectively transmitted by the one or more client computing devices; and determining a mean rotated update of all quantized rotated updates obtained for all of the one or more client computing devices; de-rotating the mean rotated update by an inverse random rotation matrix to obtain a mean de-rotated update; updating a global machine-learned model based at least in part on the mean de-rotated update. 3. The computing system of claim 1, wherein the update to the machine-learned model comprises a gradient associated with training of the machine-learned model. 4. The computing system of claim 1, wherein the random rotation matrix comprises a product of a Walsh-Hadamard matrix with a diagonal matrix. 5. The computing system of claim 4, wherein the diagonal matrix comprises independent and identically distributed Rademacher entries. 6. A computing system, comprising: one or more client computing devices, wherein each client computing device comprises one or more processors and one or more non-transitory computer-readable media that store instructions that, when executed by the one or more processors cause the client computing device to perform operations, the operations comprising: obtaining a vector; rotating the vector by a random rotation matrix to obtain a rotated vector; performing probabilistic quantization of the rotated vector to obtain a quantized rotated vector; and transmitting the quantized rotated vector. 7. The computing system of claim 6, further comprising: a server computing device that comprises one or more processors and one or more non-transitory computer-readable media that store instructions that, when executed by the one or more processors cause the server computing device to perform operations, the operations comprising: receiving the quantized rotated vectors transmitted by the client computing devices; and determining a mean of all quantized rotated vectors obtained for all of the one or more client computing devices; and de-rotating the mean by an inverse random rotation matrix. 8. The computing system of claim 6, wherein the random rotation matrix comprises a product of a Walsh-Hadamard matrix with a diagonal matrix. 9. The computing system of claim 8, wherein the diagonal matrix comprises independent and identically distributed Rademacher entries. 10. The computing system of claim 6, wherein the operations further comprise: obtaining a seed, wherein the seed is shared with a server computing device to which the quantized rotated vector is transmitted; and generating the random rotation matrix based at least in part on the seed. 11. The computing system of claim 6, wherein performing probabilistic quantization of the rotated vector to obtain a quantized rotated vector comprises: performing stochastic binary quantization of the rotated vector to obtain the quantized rotated vector; or performing stochastic k-level quantization of the rotated vector to obtain the quantized rotated vector. 12. The computing system of claim 6, wherein performing probabilistic quantization of the rotated vector comprises: determining a value for each of a number of quantization levels based at least in part on a magnitude of the rotated vector and a minimum coordinate value included in the rotated vector; and quantizing each coordinate of the rotated vector into one of the number of quantization levels. 13. The computing system of claim 6, wherein the vector comprises one or more of: a machine-learned model update vector that describes one or more parameters of a machine-learned model or one or more updates to the one or more parameters of the machine-learned model; a cluster vector that describes a plurality of cluster centers or a plurality of updates to the plurality of cluster centers; and a power iteration vector that describes an eigenvector. 14. The computing system of claim 6, wherein obtaining the vector comprises computing the vector based on a local dataset that is stored locally at the client computing device. 15. The computing system of claim 1, wherein each of the client computing devices comprises: a mobile computing device; a worker device in a datacenter; an embedded computing device; or a connected smart device. 16. A computing system, comprising: one or more client computing devices, wherein each client computing device comprises one or more processors and one or more non-transitory computer-readable media that store instructions that, when executed by the one or more processors cause the client computing device to perform operations, the operations comprising: obtaining a vector; performing probabilistic quantization of the vector to obtain a quantized vector, wherein performing probabilistic quantization of the vector comprises: determining a value for each of a number of quantization levels based at least in part on a magnitude of the vector and a minimum coordinate value included in the vector; and quantizing each coordinate of the vector into one of the number of quantization levels. 17. The computing system of claim 16, wherein the operations further comprise: encoding the quantized vector according to a variable length coding scheme; and transmitting the encoded quantized vector. 18. The computing system of claim 17, further comprising: a server computing device that comprises one or more processors and one or more non-transitory computer-readable media that store instructions that, when executed by the one or more processors cause the server computing device computing to perform operations, the operations comprising: for each of the one or more client computing devices: receiving the encoded quantized vector transmitted by the client computing device; and decoding the encoded quantized vector according to the variable length coding scheme to obtain the quantized vector for such client computing device; and determining a mean of all quantized vectors obtained for all of the one or more client computing devices. 19. The computing system of claim 17, wherein the variable length coding scheme comprises Huffman coding or arithmetic coding. 20. The computing system of claim 17, wherein the vector comprises one or more of: a machine-learned model update vector that describes one or more parameters of a machine-learned model or one or more updates to the one or more parameters of the machine-learned model; a cluster vector that describes a plurality of cluster centers or a plurality of updates to the plurality of cluster centers; and a power iteration vector that describes an eigenvector.