1. A method comprising: receiving, by one or more processors, a user image; identifying, by the one or more processors, a plurality of image classification elements of the user image by: assigning an initial classification to the user image, the initial classification being based on temporal data associated with the user image; determining at least one image label that globally describes content of the user image; calculating a label correctness value for each image label of the at least one image label; segmenting the user image to identify at least one image component of the user image; calculating a component correctness value for each image component of the at least one image component; correlating the at least one image label and the at least one image component using the label correctness value for each image label of the at least one image label and the component correctness value for each image component of the at least one image component, correlating the at least one image label and the at least one image component including selecting an image label, of the at least one image label, as a correlated image label based on the at least one image component and selecting an image component, of the at least one image component, as a correlated image component, another image label, of the at least one image label, being excluded based on the at least one image component; applying a rule to determine a category of the user image, the rule being based on at least one of the temporal data, the correlated image label, or the correlated image component; and producing, by the one or more processors, a final classification of the user image, the final classification including the initial classification, the correlated image label, the correlated image component, and the category.