Collaborative Filtering in a Non-Uniform World: Learning with the Weighted Trace Norm