1 ) A method comprising: providing, by a processor, a plurality of images for selection to a user; receiving, by the processor, user selections from the plurality of images; determining, by the processor, a number of user selections from the plurality of images, wherein, if the number of user selections from the plurality of images is equal to or greater than two: extracting, by the processor, features of the user selected images; retrieving, by the processor, other images from a data store; clustering, by the processor, the other images and the user-selected images based on the extracted features; identifying, by the processor, at least one cluster comprising at least one of the user-selected images; transmitting, by the processor, images from the at least one cluster as similar images for selection to the user; and providing, by the processor, details of a product associated with a user-selected image when the number of user selections is equal to one.