1. A computer-implemented method of diversifying recommendation results through explanations, comprising: compiling a database relating a list of items and corresponding explanations; receiving from a user, through a computer user interface, a request for a recommendation; extracting from the database a preliminary list of items related to the request; identifying distances between the extracted items based on the explanation corresponding to each item; and identifying a subset of the preliminary list 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.