1. A method comprising the steps of: determining one or more user features of a particular user; using a least squares regression function to determine a set of user feature-item affinities between a plurality of items and a set of user features of users who have consumed or rated one or more of the plurality of items; for each user feature of the one or more user features of the particular user, determining a set of nearest neighbor items based, at least in part, on the set of user feature-item affinities and said each user features; determining a set of candidate items based, at least in part, on the set of nearest neighbor items for each user feature of the one or more user features of the particular user; causing to be presented, to a user as a recommendation, a candidate item from the set of candidate items; wherein the steps are performed by one or more computing devices.