================================================== Q: I have read your code and run "make Baby.out" successfully. When I run "./outfits...", I still faced some difficulties. Just as shown below (from outfits.cpp). int main(int argc, char** argv) { char* categoryPath = argv[1]; // Metadata file (contains product category info) char* duplicatePath = argv[2]; // Products likely to be duplicates to filter out <---------- char* imFeaturePath = argv[3]; // Image features in binary format char* modelPath = argv[4]; // Pre-trained model file to load <---------- char* urlPath = argv[5]; // Image urls for html file ... Would it be possible to share related files? A: Sure, I put the file we used (which products are likely to be duplicates based on image similarity) here: http://jmcauley.ucsd.edu/data/amazon/duplicate_image_list.txt.gz The other file (modelPath) is not used until *after* you've trained a model. It can be used to load a pre-trained file. ================================================== Q: One thing i don't understand is that caffe net is utilized here for feature extraction, why don't you also use this network to learn personalized and styled weighting matrix which is in fact a task of siamese net? A: Certainly it would be appropriate to learn the features directly from the pixel level using a Siamese net (see our ICCV paper from the same year). That being said, simple Caffe features are about equally effective and much simpler training wise. ================================================== Q: Would it be possible to share the urlPath file which generates the result html page with outfits? A: I've added the urlPath files to the following folder: http://jmcauley.ucsd.edu/imageGraph/models/ "Books" and "Clothing" are in there but it should be easy enough to generate different urlPath files for other categories using the metadata files provided on the dataset page. ================================================== Q: 1. In order to generate a model you use data from amazon. In your paper you've stated that you used some Caffe code to generate image features. This means that if we want to introduce our own data we have to create image features on our own. Is there an example of your code which might help us to generate features on our own? 2. In the example file which generates an html page with outfits there is a parameter called urlPath which includes Image urls for html file. What urls we should include there? Could you provide an example of the outfits call? A: (1) The image features themselves are on the dataset page, but yes, if you want to use different images you'll have to extract features for them in the same way. Instructions on how to extract features in Caffe are here: http://caffe.berkeleyvision.org/gathered/examples/feature_extraction.html We used "fc7", just like in the example. If you want to use something different, you'd have to retrain the model with those features. (2) It's just a mapping between ASINs and image URLs. The image urls are in the metadata on the dataset page. You can just loop through the metadata json and pull out the relevant pairs. The file should just look like an asin and a url on each line, separated by a space. This is just to generate a quick visualization though (like I showed in the paper), and is not necessary to train the model (which just needs features and a graph). ================================================== Q: I finally had time to read your paper thoroughly and I have a few questions: 1) in (eg. 2) you say || w o (x_i - x_j) ||_2^2 Do I read it right that it's weighted Euclidean distance without the square root? That would not be metric, but it's fine to be used for training, of course.k 2) From Section 4.1 (and from last sentence of Section 3) I understand, that you trained separate embedding matrices (distances) for each category. On ther other hand, from Figure 4 and the way you work with the data in Section 6, it seems that there is one global embedding (distance). Which is the case? A: 1) Indeed there's no square root. I don't think the lack of metricness (or at least the triangle inequality) particularly matters in this setting, though it's straightforward to change the objective and see if it helps. 2) Indeed, it's one embedding matrix per category. Figure 4 is using the "Men's Clothing" embedding matrix. Q: I would like to try your distance to see how it behaves. Would you be willing to provide me with the matrixes? A: Sure thing, model files are here: http://jmcauley.ucsd.edu/imageGraph/models/ names are model-Category-graph-K-lambda.txt "Category" is the Amazon category from which items were taken to train the model. "Graph" is the set of relationships used (also_viewed and also_bought are the most reliable). "K" is the transform dimensionality, and "lambda" is the regularizer (always 0). The files are valid python dictionaries, so just read them in using "eval". The image features themselves (and the graphs used to train them) are here: http://jmcauley.ucsd.edu/data/amazon/ Q: I would like to try also the weighted nearest neighbor (because it is very simple for me just to switch the distance function than to transform the data to lower dimensionality). Please, do you have the 4096-dim weights somewhere available. A: Yes -- this is in fact just the 1-d model among the files above. Take the matrix U (which is now really a vector since it's 1-d) and just square its entries, and you get weighted nearest-neighbor (with all positive weights). Q: One more thing: what is the "W" vector in the model files 10 and 100? A: "W" is just a flattened version of all the parameters -- it corresponds to the same variable in the code, so that if you want to use the code without training the model again, you can just copy W directly into the corresponding vector.