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.