1. A method, performed by a computing system having a memory and a processor, the method comprising: receiving an indication of a plurality of content items; for each of the plurality of content items, identifying at least one content element of the content item, and for each identified content element of the content item, extracting information for the content element, computing a plurality of semantic feature values for the content element based at least in part on the extracted information, computing a plurality of visual feature values for the content element based at least in part on the extracted information, and storing the feature values computed, for the content element, based at least in part on the extracted information; receiving an indication of a first set of content items, wherein each content item of the first set of content items is a member of the plurality of content items; for each pair of content items from among the first set of content items, applying a similarity function to the pair of content items to generate a similarity value, and storing, in association with each content item of the pair of content items, the generated similarity value; for each content item of the first set of content items, identifying similar content items based at least in part on the generated similarity values, and storing, in association with the content item, references to at least one of the identified similar content items.