1. A computer-implemented method of diversifying recommendation results, comprising: receiving a request for a recommendation; determining a preliminary set of items related to the request; and identifying, using at least one of a SWAP and a GREEDY algorithm, a subset of the preliminary set to form a recommendation list having a limited number of recommendation results with a desired balance of both high relevancy and high diversity relative to each other; wherein the method is performed by one or more computing devices.