A method for automatically generating metadata for a media document, the method comprising: computing a feature vector of the media document using a convolutional neural network , wherein the media document is a three-dimensional model, the computing the feature vector comprising: rendering the 3D model from multiple angles to render a plurality of two-dimensional views of the 3D model; generating, using the convolutional neural network, a plurality of single view feature vectors, each of the single view feature vectors corresponding to one of the 2D views of the 3D model; aggregating the plurality of single view feature vectors to compute a pooled feature vector, the pooled feature vector having a length that is independent of the number of 2D views; and computing the feature vector from the pooled feature vector using a final stage convolutional neural network; searching a collection of media documents for one or more matching media documents having corresponding feature vectors similar to the feature vector of the media document , each media document of the collection of media documents being associated with metadata; generating metadata for the media document based on the metadata associated with the one or more matching media documents , the generated metadata comprising portions of the metadata that appear in at least a threshold number of the one or more matching documents; and displaying the media document in association with the generated metadata. computing a feature vector of the media document using a convolutional neural network , wherein the media document is a three-dimensional model, the computing the feature vector comprising: rendering the 3D model from multiple angles to render a plurality of two-dimensional views of the 3D model; generating, using the convolutional neural network, a plurality of single view feature vectors, each of the single view feature vectors corresponding to one of the 2D views of the 3D model; aggregating the plurality of single view feature vectors to compute a pooled feature vector, the pooled feature vector having a length that is independent of the number of 2D views; and computing the feature vector from the pooled feature vector using a final stage convolutional neural network; rendering the 3D model from multiple angles to render a plurality of two-dimensional views of the 3D model; generating, using the convolutional neural network, a plurality of single view feature vectors, each of the single view feature vectors corresponding to one of the 2D views of the 3D model; aggregating the plurality of single view feature vectors to compute a pooled feature vector, the pooled feature vector having a length that is independent of the number of 2D views; and computing the feature vector from the pooled feature vector using a final stage convolutional neural network; searching a collection of media documents for one or more matching media documents having corresponding feature vectors similar to the feature vector of the media document , each media document of the collection of media documents being associated with metadata; generating metadata for the media document based on the metadata associated with the one or more matching media documents , the generated metadata comprising portions of the metadata that appear in at least a threshold number of the one or more matching documents; and displaying the media document in association with the generated metadata. <EOS>