{"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/contrastive-variational-autoencoder-enhances","title":"Contrastive Variational Autoencoder Enhances Salient Features","arxiv_id":"1902.04601","date":"2019-02-12","proceeding":null,"authors":["Abubakar Abid","James Zou"],"abstract":"Variational autoencoders are powerful algorithms for identifying dominant\nlatent structure in a single dataset. In many applications, however, we are\ninterested in modeling latent structure and variation that are enriched in a\ntarget dataset compared to some background---e.g. enriched in patients compared\nto the general population. Contrastive learning is a principled framework to\ncapture such enriched variation between the target and background, but\nstate-of-the-art contrastive methods are limited to linear models. In this\npaper, we introduce the contrastive variational autoencoder (cVAE), which\ncombines the benefits of contrastive learning with the power of deep generative\nmodels. The cVAE is designed to identify and enhance salient latent features.\nThe cVAE is trained on two related but unpaired datasets, one of which has\nminimal contribution from the salient latent features. The cVAE explicitly\nmodels latent features that are shared between the datasets, as well as those\nthat are enriched in one dataset relative to the other, which allows the\nalgorithm to isolate and enhance the salient latent features. The algorithm is\nstraightforward to implement, has a similar run-time to the standard VAE, and\nis robust to noise and dataset purity. We conduct experiments across diverse\ntypes of data, including gene expression and facial images, showing that the\ncVAE effectively uncovers latent structure that is salient in a particular\nanalysis.","url_abs":"http://arxiv.org/abs/1902.04601v1","url_pdf":"http://arxiv.org/pdf/1902.04601v1.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":"contrastive-variational-autoencoder-enhances","repo_url":"https://github.com/abidlabs/contrastive_vae","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":0,"framework":"tf","reach":{"status":"ok","spdx":"MIT"}}],"tasks":[{"task_slug":"contrastive-learning","task_name":"Contrastive Learning"}],"methods":[{"method_slug":"cvae","method_name":"cVAE"}],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=1902.04601","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"1902.04601"}},"developers":"https://syntology.ai/developers","read_at":"2026-09-24T18:15:14+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/abidlabs/contrastive_vae","reach":{"status":"ok","spdx":"MIT"}}],"summary":{"unverified":10},"by_repo_kind":{"official":{"samples":10,"ran":0,"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":"6d1dfe0b6d6924ec","entry":"contrastive_vae","repo":"abidlabs/contrastive_vae","repo_kind":"official","path":"vae_utils.py","file_url":"https://github.com/abidlabs/contrastive_vae/blob/HEAD/vae_utils.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":"6d1dfe0b6d6924ec"}},{"code_sha256_prefix":"1619fbf9e0e66efa","entry":"filter_images_by_attribute","repo":"abidlabs/contrastive_vae","repo_kind":"official","path":"celeb_utils.py","file_url":"https://github.com/abidlabs/contrastive_vae/blob/HEAD/celeb_utils.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":"1619fbf9e0e66efa"}},{"code_sha256_prefix":"5cd43143265506a1","entry":"generate_data","repo":"abidlabs/contrastive_vae","repo_kind":"official","path":"vae_utils.py","file_url":"https://github.com/abidlabs/contrastive_vae/blob/HEAD/vae_utils.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":"5cd43143265506a1"}},{"code_sha256_prefix":"beee1bbd18d83411","entry":"get_batch","repo":"abidlabs/contrastive_vae","repo_kind":"official","path":"helper.py","file_url":"https://github.com/abidlabs/contrastive_vae/blob/HEAD/helper.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":"beee1bbd18d83411"}},{"code_sha256_prefix":"2ed90c0d274151e4","entry":"get_celeb_vae","repo":"abidlabs/contrastive_vae","repo_kind":"official","path":"celeb_utils.py","file_url":"https://github.com/abidlabs/contrastive_vae/blob/HEAD/celeb_utils.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":"2ed90c0d274151e4"}},{"code_sha256_prefix":"7e1a84dc738a0cf2","entry":"get_image","repo":"abidlabs/contrastive_vae","repo_kind":"official","path":"helper.py","file_url":"https://github.com/abidlabs/contrastive_vae/blob/HEAD/helper.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":"7e1a84dc738a0cf2"}},{"code_sha256_prefix":"58dda232cb5e9f9b","entry":"images_square_grid","repo":"abidlabs/contrastive_vae","repo_kind":"official","path":"helper.py","file_url":"https://github.com/abidlabs/contrastive_vae/blob/HEAD/helper.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":"58dda232cb5e9f9b"}},{"code_sha256_prefix":"d54b11d7a042cff2","entry":"resize_and_crop","repo":"abidlabs/contrastive_vae","repo_kind":"official","path":"utils.py","file_url":"https://github.com/abidlabs/contrastive_vae/blob/HEAD/utils.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":"d54b11d7a042cff2"}},{"code_sha256_prefix":"6a6cd6af807e9036","entry":"sampling","repo":"abidlabs/contrastive_vae","repo_kind":"official","path":"celeb_utils.py","file_url":"https://github.com/abidlabs/contrastive_vae/blob/HEAD/celeb_utils.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":"6a6cd6af807e9036"}},{"code_sha256_prefix":"dbfcb3d16e815fb6","entry":"standard_vae","repo":"abidlabs/contrastive_vae","repo_kind":"official","path":"vae_utils.py","file_url":"https://github.com/abidlabs/contrastive_vae/blob/HEAD/vae_utils.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":"dbfcb3d16e815fb6"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}