A common technique for compressing a neural network is to compute the k-rank 2 approximation A k,2 of the matrix A ∈ R n×d that corresponds to a fully connected layer (or embedding layer). Here, d is the number of the neurons in the layer, n is the number in the next one, and A k,2 can be stored in O((n + d)k) memory instead of O(nd). This 2-approximation minimizes the sum over every entry to the power of p = 2 in the matrix A − A k,2 , among every matrix A k,2 ∈ R n×d whose rank is k. While it can be computed efficiently via SVD, the 2-approximation is known to be very sensitive to outliers ("far-away" rows). Hence, machine learning uses e.g. Lasso Regression, 1-regularization, and 1-SVM that use the 1-norm. This paper suggests to replace the k-rank 2 approximation by p, for p ∈ [1, 2]. We then provide practical and provable approximation algorithms to compute it for any p ≥ 1, based on modern techniques in computational geometry. Extensive experimental results on the GLUE benchmark for compressing BERT, DistilBERT, XLNet, and RoBERTa confirm this theoretical advantage. For example, our approach achieves 28% compression of RoBERTa's embedding layer with only 0.63% additive drop in the accuracy (without finetuning) in average over all tasks in GLUE, compared to 11% drop using the existing 2-approximation. Open code is provided for reproducing and extending our results.