Incorporating Singular Ratings into Collaborative Filtering