Low-Rank Matrix Approximation with Weights or Missing Data is NP-hard