A recommendation system suggests products to users based on data about user preferences. It is typically modeled by a problem of completing an m\times n matrix of small rank k. We give the first classical algorithm to produce a recommendation in O(\text{poly}(k)\text{polylog}(m,n)) time, which is an exponential improvement on previous ... more >>>