1. A method implemented by a computing device to annotate individual images with multiple text labels to describe content of the images, the method comprising: processing a training image having multiple text labels to generate a set of image regions that correspond to the respective multiple text labels; embedding, within an embedding space that is configured to embed both text labels and image regions mapped to the text labels, the set of image regions based, in part, on positions at which the multiple text labels that correspond to the image regions of the training image are embedded in the embedding space; learning a mapping function that maps image regions to the text labels embedded in the embedding space, said learning based, in part, on said embedding the set of image regions within the embedding space; determining a set of semantically meaningful image regions for a query image; processing the set of semantically meaningful image regions of the query image to discard the semantically meaningful image regions of the query image that fail to meet at least one predefined criterion and to obtain a subset of semantically meaningful image regions of the query image that meet the at least one predefined criterion, discovering text labels of the embedding space that correspond to criteria-meeting image regions of the query image by mapping the criteria-meeting image regions to the embedding space using the learned mapping function; computing distances between the discovered text labels and the criteria-meeting image regions in the embedding space; ranking the discovered text labels based on the computed distances; and annotating the query image with at least two of the discovered text labels based at least in part on the ranking.