1. A method for building a visual vocabulary, the method comprising: generating visual words based on a set of features, wherein the visual words are defined in a higher-dimensional space; projecting the visual words from the higher-dimensional space to a first lower-dimensional space, thereby producing projections of the visual words in the first lower-dimensional space; generating a first collection of buckets in the first lower-dimensional space based on the projections of the visual words in the first lower-dimensional space; projecting the visual words from the higher-dimensional space to a second lower-dimensional space, thereby producing projections of the visual words in the second lower-dimensional space; generating a second collection of buckets in the second lower-dimensional space based on the projections of the visual words in the second lower-dimensional space; and iteratively selecting a sub-collection of buckets from the first collection of buckets and from the second collection of buckets, wherein bucket selection during any iteration after an initial iteration is based at least in part on feedback from previously selected buckets.