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.
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. 11. The method of claim 1 , wherein applying a similarity function to a first pair of content items to generate a similarity value comprises: for a first content item of the first pair of content items, determining a value for each of a plurality of attributes; for a second content item of the first pair of content items, determining a value for each of a plurality of attributes; calculating a distance between the first content item of the first pair of content items and the second content item of the first pair of content items according to the following equation ∑ i = 0 n ⁢ ⁢ ( A i - B i ) 2 where A i represents the i th attribute value of the plurality of attributes for the first content item of the first pair of content items, B 1 represents the i th attribute value for the second content item of the first pair of content items, and n represents a number of the plurality of attributes.