7. A non-transitory computer readable storage medium, storing one or more programs for execution by one or more processors, the one or more programs comprising instructions for: identifying a plurality of first features of a plurality of first digital files having one or more associated annotations; partitioning the plurality of first features into a plurality of subsets of the first features, including a respective subset of the first features; generating one or more classifiers based on the respective subset of the first features; identifying a plurality of second features of a respective second digital file; for each respective first digital file of two or more of the plurality of first digital files, determining a distance vector corresponding to a respective partial distance between a representation of features of the respective second digital file and a representation of features of the respective first digital file using a respective classifier; identifying a subset of the plurality of first digital files as candidate nearest neighbors to the respective second digital file based on the partial distances; determining scores corresponding to full distances between features of a plurality of the candidate nearest neighbors and features of the respective second digital file and ranking the determined scores; selecting a subset of the candidate nearest neighbors as matched files based on the ranking, wherein the matched files are associated with a respective annotation; and associating the respective annotation with the respective second digital file.
14. The computer readable storage medium of claim 7 , wherein the respective second digital file is associated with one or more user provided annotations, and the one or more software modules further comprise instructions for: generating a plurality of classifiers from the plurality of first features; associating one or more annotations to the respective second digital file using corresponding ones of the classifiers; receiving a third plurality of digital files; extracting a plurality of third features from at least one of the third plurality of digital files; partitioning the plurality of third features into a plurality of subsets of the third features; sorting the plurality of the subsets of the third features using corresponding ones of the classifiers and recalculating a distance between respective subsets of the third features and the second features for corresponding ones of the classifiers; determining a weight value corresponding to each one of the classifiers based on the recalculated distances; and associating with the at least one of the plurality of third digital files one or more annotations from annotations of a respective subset of the matched files based on one or more of the weight values.