{"about":{"site":"https://codewithpapers.app","non_affiliation":"Code with Papers and Syntology are not affiliated with, endorsed by, or sponsored by Papers with Code, Meta, or the pwc-archive mirror.","licence":"CC BY-SA 4.0","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","attribution":"https://codewithpapers.app/attribution","modified":"archive material modified by Syntology; see the attribution page"},"url":"/paper/learning-to-taste-a-multimodal-wine-dataset-1","title":"Learning to Taste: A Multimodal Wine Dataset","arxiv_id":"2308.16900","date":"2023-08-31","proceeding":"NeurIPS 2023 11","authors":["Thoranna Bender","Simon Moe Sørensen","Alireza Kashani","K. Eldjarn Hjorleifsson","Grethe Hyldig","Søren Hauberg","Serge Belongie","Frederik Warburg"],"abstract":"We present WineSensed, a large multimodal wine dataset for studying the relations between visual perception, language, and flavor. The dataset encompasses 897k images of wine labels and 824k reviews of wines curated from the Vivino platform. It has over 350k unique bottlings, annotated with year, region, rating, alcohol percentage, price, and grape composition. We obtained fine-grained flavor annotations on a subset by conducting a wine-tasting experiment with 256 participants who were asked to rank wines based on their similarity in flavor, resulting in more than 5k pairwise flavor distances. We propose a low-dimensional concept embedding algorithm that combines human experience with automatic machine similarity kernels. We demonstrate that this shared concept embedding space improves upon separate embedding spaces for coarse flavor classification (alcohol percentage, country, grape, price, rating) and aligns with the intricate human perception of flavor.","url_abs":"https://arxiv.org/abs/2308.16900v4","url_pdf":"https://arxiv.org/pdf/2308.16900v4.pdf","source":{"archive":"pwc-archive (Hugging Face), CC BY-SA 4.0","snapshot":"2025-07-28","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","row_kind":"abstracts"},"code_links":[{"paper_slug":"learning-to-taste-a-multimodal-wine-dataset-1","repo_url":"https://github.com/thoranna/learning_to_taste","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":0,"framework":"pytorch","reach":null}],"tasks":[],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"syntology_url":"https://syntology.ai/paper/2308.16900","atlas_url":"https://app.syntology.ai/?focus=2308.16900","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2308.16900"}},"developers":"https://syntology.ai/developers","read_at":"2026-09-25T09:33:49+00:00","read_at_is":"when the build read Syntology's graph, not when any sample ran","claim":"Per-sample execution status on synthesized fixtures; not a correctness claim about the paper. Samples come from repositories linked to the paper, official or community; repo_kind says which.","repos":[{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/thoranna/learning_to_taste","reach":null}],"summary":{"ran_draft_wrong":10,"ran":2,"ran_violates":2,"ran_honours":2,"unverified":8},"by_repo_kind":{"official":{"samples":24,"ran":16,"repositories":1}},"repo_kind_vocabulary":{"official":"The archive marks this repository official for the paper","named_in_paper":"The archive records that the paper mentions this repository; it is not marked official","listed":"In the archive's code links for this paper, not marked official and not recorded as mentioned in the paper","found_in_text":"Syntology found this repository in the paper's own text; whether it is the authors' implementation is not asserted","community":"Not in the archive's code links for this paper; a community repository Syntology harvested"},"n_pointer_only_for_licence":0,"samples":[{"code_sha256_prefix":"f9b4d12a4256de7d","entry":"Hbeta_torch","repo":"thoranna/learning_to_taste","repo_kind":"official","path":"packages/snack/embedding/snack.py","file_url":"https://github.com/thoranna/learning_to_taste/blob/HEAD/packages/snack/embedding/snack.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"f9b4d12a4256de7d"}},{"code_sha256_prefix":"9bc3af06e5e3e28e","entry":"SGDOptimizer","repo":"thoranna/learning_to_taste","repo_kind":"official","path":"packages/snack/embedding/snack.py","file_url":"https://github.com/thoranna/learning_to_taste/blob/HEAD/packages/snack/embedding/snack.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"9bc3af06e5e3e28e"}},{"code_sha256_prefix":"b0391dea6581cd12","entry":"TSNEMomentum","repo":"thoranna/learning_to_taste","repo_kind":"official","path":"packages/snack/embedding/snack.py","file_url":"https://github.com/thoranna/learning_to_taste/blob/HEAD/packages/snack/embedding/snack.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"b0391dea6581cd12"}},{"code_sha256_prefix":"769ee08ca6503fd7","entry":"agreement_ratio","repo":"thoranna/learning_to_taste","repo_kind":"official","path":"run_tar.py","file_url":"https://github.com/thoranna/learning_to_taste/blob/HEAD/run_tar.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":"well_formed","behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"769ee08ca6503fd7"}},{"code_sha256_prefix":"5195032635d77a97","entry":"cauchy_kernel","repo":"thoranna/learning_to_taste","repo_kind":"official","path":"packages/snack/embedding/snack.py","file_url":"https://github.com/thoranna/learning_to_taste/blob/HEAD/packages/snack/embedding/snack.py","link_basis":"first_harvest_node","language":"python","status":"ran_violates","verification_level":1,"contract_check":"VIOLATES","metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"5195032635d77a97"}},{"code_sha256_prefix":"03a76b0fce352fd0","entry":"create_csv_row","repo":"thoranna/learning_to_taste","repo_kind":"official","path":"run_classification.py","file_url":"https://github.com/thoranna/learning_to_taste/blob/HEAD/run_classification.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"03a76b0fce352fd0"}},{"code_sha256_prefix":"a047ccab6f9c4aff","entry":"create_filename","repo":"thoranna/learning_to_taste","repo_kind":"official","path":"run_classification.py","file_url":"https://github.com/thoranna/learning_to_taste/blob/HEAD/run_classification.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":"deterministic","behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"a047ccab6f9c4aff"}},{"code_sha256_prefix":"4004276e21ebc8b1","entry":"distance_squared","repo":"thoranna/learning_to_taste","repo_kind":"official","path":"packages/snack/embedding/snack.py","file_url":"https://github.com/thoranna/learning_to_taste/blob/HEAD/packages/snack/embedding/snack.py","link_basis":"first_harvest_node","language":"python","status":"ran_honours","verification_level":1,"contract_check":"HONOURS","metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"4004276e21ebc8b1"}},{"code_sha256_prefix":"f38cebd817cfb5b7","entry":"euclidean_distance_squared","repo":"thoranna/learning_to_taste","repo_kind":"official","path":"packages/snack/embedding/snack.py","file_url":"https://github.com/thoranna/learning_to_taste/blob/HEAD/packages/snack/embedding/snack.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"f38cebd817cfb5b7"}},{"code_sha256_prefix":"ebb669eeb4a45fb2","entry":"generate_triplets","repo":"thoranna/learning_to_taste","repo_kind":"official","path":"run_tar.py","file_url":"https://github.com/thoranna/learning_to_taste/blob/HEAD/run_tar.py","link_basis":"first_harvest_node","language":"python","status":"ran_violates","verification_level":1,"contract_check":"VIOLATES","metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"ebb669eeb4a45fb2"}},{"code_sha256_prefix":"7bde4220c6c6a540","entry":"pca_torch","repo":"thoranna/learning_to_taste","repo_kind":"official","path":"packages/snack/embedding/snack.py","file_url":"https://github.com/thoranna/learning_to_taste/blob/HEAD/packages/snack/embedding/snack.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"7bde4220c6c6a540"}},{"code_sha256_prefix":"5601079a75b6d3d8","entry":"prevent_values_being_too_low","repo":"thoranna/learning_to_taste","repo_kind":"official","path":"packages/snack/embedding/snack.py","file_url":"https://github.com/thoranna/learning_to_taste/blob/HEAD/packages/snack/embedding/snack.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"5601079a75b6d3d8"}},{"code_sha256_prefix":"68c5885c507f441b","entry":"split_triplets","repo":"thoranna/learning_to_taste","repo_kind":"official","path":"run_tar.py","file_url":"https://github.com/thoranna/learning_to_taste/blob/HEAD/run_tar.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"68c5885c507f441b"}},{"code_sha256_prefix":"f4a1ce2474c5840e","entry":"summed_unscaled_student_t_prop_density","repo":"thoranna/learning_to_taste","repo_kind":"official","path":"packages/snack/embedding/snack.py","file_url":"https://github.com/thoranna/learning_to_taste/blob/HEAD/packages/snack/embedding/snack.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"f4a1ce2474c5840e"}},{"code_sha256_prefix":"6e0ae4db41d4863b","entry":"to_torch_and_device","repo":"thoranna/learning_to_taste","repo_kind":"official","path":"packages/snack/embedding/snack.py","file_url":"https://github.com/thoranna/learning_to_taste/blob/HEAD/packages/snack/embedding/snack.py","link_basis":"first_harvest_node","language":"python","status":"ran_honours","verification_level":1,"contract_check":"HONOURS","metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"6e0ae4db41d4863b"}},{"code_sha256_prefix":"fb5a7c4584323b40","entry":"x2p_torch","repo":"thoranna/learning_to_taste","repo_kind":"official","path":"packages/snack/embedding/snack.py","file_url":"https://github.com/thoranna/learning_to_taste/blob/HEAD/packages/snack/embedding/snack.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"fb5a7c4584323b40"}},{"code_sha256_prefix":"b5de6eaefa46be1f","entry":"Metrics","repo":"thoranna/learning_to_taste","repo_kind":"official","path":"packages/snack/embedding/snack.py","file_url":"https://github.com/thoranna/learning_to_taste/blob/HEAD/packages/snack/embedding/snack.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"b5de6eaefa46be1f"}},{"code_sha256_prefix":"b5a24cf839401e60","entry":"SNaCK","repo":"thoranna/learning_to_taste","repo_kind":"official","path":"packages/snack/embedding/snack.py","file_url":"https://github.com/thoranna/learning_to_taste/blob/HEAD/packages/snack/embedding/snack.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"b5a24cf839401e60"}},{"code_sha256_prefix":"08b21f949118ae89","entry":"TSNE","repo":"thoranna/learning_to_taste","repo_kind":"official","path":"packages/snack/embedding/snack.py","file_url":"https://github.com/thoranna/learning_to_taste/blob/HEAD/packages/snack/embedding/snack.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"08b21f949118ae89"}},{"code_sha256_prefix":"7faca9bb65c7713d","entry":"TSNEGrad","repo":"thoranna/learning_to_taste","repo_kind":"official","path":"packages/snack/embedding/snack.py","file_url":"https://github.com/thoranna/learning_to_taste/blob/HEAD/packages/snack/embedding/snack.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"7faca9bb65c7713d"}},{"code_sha256_prefix":"afd2ef80f5a8dbf5","entry":"TSTE","repo":"thoranna/learning_to_taste","repo_kind":"official","path":"packages/snack/embedding/snack.py","file_url":"https://github.com/thoranna/learning_to_taste/blob/HEAD/packages/snack/embedding/snack.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"afd2ef80f5a8dbf5"}},{"code_sha256_prefix":"82cb229ff8fb81f7","entry":"post_hoc_metric_given_embedding_and_triplets","repo":"thoranna/learning_to_taste","repo_kind":"official","path":"packages/snack/embedding/snack.py","file_url":"https://github.com/thoranna/learning_to_taste/blob/HEAD/packages/snack/embedding/snack.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"82cb229ff8fb81f7"}},{"code_sha256_prefix":"a4b6c55059c3a4a1","entry":"set_distance_to_own_point_to_zero","repo":"thoranna/learning_to_taste","repo_kind":"official","path":"packages/snack/embedding/snack.py","file_url":"https://github.com/thoranna/learning_to_taste/blob/HEAD/packages/snack/embedding/snack.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"a4b6c55059c3a4a1"}},{"code_sha256_prefix":"0cd10d6b47310313","entry":"set_seed","repo":"thoranna/learning_to_taste","repo_kind":"official","path":"packages/snack/embedding/snack.py","file_url":"https://github.com/thoranna/learning_to_taste/blob/HEAD/packages/snack/embedding/snack.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"0cd10d6b47310313"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}