{"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-discrete-structured-representations","title":"Learning Discrete Structured Representations by Adversarially Maximizing Mutual Information","arxiv_id":"2004.03991","date":"2020-04-08","proceeding":"ICML 2020 1","authors":["Karl Stratos","Sam Wiseman"],"abstract":"We propose learning discrete structured representations from unlabeled data by maximizing the mutual information between a structured latent variable and a target variable. Calculating mutual information is intractable in this setting. Our key technical contribution is an adversarial objective that can be used to tractably estimate mutual information assuming only the feasibility of cross entropy calculation. We develop a concrete realization of this general formulation with Markov distributions over binary encodings. We report critical and unexpected findings on practical aspects of the objective such as the choice of variational priors. We apply our model on document hashing and show that it outperforms current best baselines based on discrete and vector quantized variational autoencoders. It also yields highly compressed interpretable representations.","url_abs":"https://arxiv.org/abs/2004.03991v2","url_pdf":"https://arxiv.org/pdf/2004.03991v2.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-discrete-structured-representations","repo_url":"https://github.com/karlstratos/ammi","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":null}],"tasks":[],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2004.03991","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2004.03991"}},"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":"deterministic:regex_extraction","url":"https://github.com/karlstratos/ammi","reach":null}],"summary":{"ran":6,"ran_fixture":9,"ran_draft_wrong":4,"ran_honours":3,"unverified":5},"by_repo_kind":{"official":{"samples":27,"ran":22,"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":"bc38d49d94d3dd4b","entry":"ArticlePairDataset","repo":"karlstratos/ammi","repo_kind":"official","path":"ammi.py","file_url":"https://github.com/karlstratos/ammi/blob/HEAD/ammi.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":"well_formed","behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"bc38d49d94d3dd4b"}},{"code_sha256_prefix":"dd979f2cfad3adfa","entry":"ArticlePairs","repo":"karlstratos/ammi","repo_kind":"official","path":"ammi.py","file_url":"https://github.com/karlstratos/ammi/blob/HEAD/ammi.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":"dd979f2cfad3adfa"}},{"code_sha256_prefix":"5254fe49108bccef","entry":"FF","repo":"karlstratos/ammi","repo_kind":"official","path":"ammi.py","file_url":"https://github.com/karlstratos/ammi/blob/HEAD/ammi.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":"deterministic","behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"5254fe49108bccef"}},{"code_sha256_prefix":"62aafeb07c870d8c","entry":"Logger","repo":"karlstratos/ammi","repo_kind":"official","path":"ammi.py","file_url":"https://github.com/karlstratos/ammi/blob/HEAD/ammi.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":"62aafeb07c870d8c"}},{"code_sha256_prefix":"a53a047167b58dcc","entry":"Posterior","repo":"karlstratos/ammi","repo_kind":"official","path":"ammi.py","file_url":"https://github.com/karlstratos/ammi/blob/HEAD/ammi.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"a53a047167b58dcc"}},{"code_sha256_prefix":"67356a959b93e551","entry":"Prior","repo":"karlstratos/ammi","repo_kind":"official","path":"ammi.py","file_url":"https://github.com/karlstratos/ammi/blob/HEAD/ammi.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"67356a959b93e551"}},{"code_sha256_prefix":"87baeee1051adfd9","entry":"compute_distance","repo":"karlstratos/ammi","repo_kind":"official","path":"ammi.py","file_url":"https://github.com/karlstratos/ammi/blob/HEAD/ammi.py","link_basis":"first_harvest_node","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"87baeee1051adfd9"}},{"code_sha256_prefix":"dd7602f30bfb18b5","entry":"compute_forward","repo":"karlstratos/ammi","repo_kind":"official","path":"ammi.py","file_url":"https://github.com/karlstratos/ammi/blob/HEAD/ammi.py","link_basis":"first_harvest_node","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"dd7602f30bfb18b5"}},{"code_sha256_prefix":"6391762af9ece0f9","entry":"compute_hamming_distance","repo":"karlstratos/ammi","repo_kind":"official","path":"ammi.py","file_url":"https://github.com/karlstratos/ammi/blob/HEAD/ammi.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":"6391762af9ece0f9"}},{"code_sha256_prefix":"eb7e2974e8dff8a6","entry":"compute_matching_accuracy","repo":"karlstratos/ammi","repo_kind":"official","path":"ammi.py","file_url":"https://github.com/karlstratos/ammi/blob/HEAD/ammi.py","link_basis":"first_harvest_node","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":"well_formed","behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"eb7e2974e8dff8a6"}},{"code_sha256_prefix":"78810712770d61ac","entry":"compute_retrieval_precision","repo":"karlstratos/ammi","repo_kind":"official","path":"ammi.py","file_url":"https://github.com/karlstratos/ammi/blob/HEAD/ammi.py","link_basis":"first_harvest_node","language":"python","status":"ran_honours","verification_level":1,"contract_check":"HONOURS","metamorphic_tier":"well_formed","behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"78810712770d61ac"}},{"code_sha256_prefix":"32a95ddcdd120243","entry":"compute_topK_average_precision","repo":"karlstratos/ammi","repo_kind":"official","path":"ammi.py","file_url":"https://github.com/karlstratos/ammi/blob/HEAD/ammi.py","link_basis":"first_harvest_node","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"32a95ddcdd120243"}},{"code_sha256_prefix":"a4880a127313f0e1","entry":"compute_viterbi","repo":"karlstratos/ammi","repo_kind":"official","path":"ammi.py","file_url":"https://github.com/karlstratos/ammi/blob/HEAD/ammi.py","link_basis":"first_harvest_node","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":"deterministic","behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"a4880a127313f0e1"}},{"code_sha256_prefix":"6fa3b3b0bfe31f58","entry":"cosine_distance_torch","repo":"karlstratos/ammi","repo_kind":"official","path":"ammi.py","file_url":"https://github.com/karlstratos/ammi/blob/HEAD/ammi.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":"6fa3b3b0bfe31f58"}},{"code_sha256_prefix":"9272637653b59862","entry":"count_correct_matches","repo":"karlstratos/ammi","repo_kind":"official","path":"ammi.py","file_url":"https://github.com/karlstratos/ammi/blob/HEAD/ammi.py","link_basis":"first_harvest_node","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"9272637653b59862"}},{"code_sha256_prefix":"cfee1418a588fa69","entry":"encode_related_articles","repo":"karlstratos/ammi","repo_kind":"official","path":"ammi.py","file_url":"https://github.com/karlstratos/ammi/blob/HEAD/ammi.py","link_basis":"first_harvest_node","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"cfee1418a588fa69"}},{"code_sha256_prefix":"ac69d5b0b6d23fd2","entry":"estimate_hZ","repo":"karlstratos/ammi","repo_kind":"official","path":"ammi.py","file_url":"https://github.com/karlstratos/ammi/blob/HEAD/ammi.py","link_basis":"first_harvest_node","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"ac69d5b0b6d23fd2"}},{"code_sha256_prefix":"0a877cffaa839917","entry":"estimate_hZ_X","repo":"karlstratos/ammi","repo_kind":"official","path":"ammi.py","file_url":"https://github.com/karlstratos/ammi/blob/HEAD/ammi.py","link_basis":"first_harvest_node","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":"invariant","behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"0a877cffaa839917"}},{"code_sha256_prefix":"e57d5ab85f745b35","entry":"get_init_function","repo":"karlstratos/ammi","repo_kind":"official","path":"ammi.py","file_url":"https://github.com/karlstratos/ammi/blob/HEAD/ammi.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"e57d5ab85f745b35"}},{"code_sha256_prefix":"4fc17a091271ccf2","entry":"precompute_I","repo":"karlstratos/ammi","repo_kind":"official","path":"ammi.py","file_url":"https://github.com/karlstratos/ammi/blob/HEAD/ammi.py","link_basis":"first_harvest_node","language":"python","status":"ran_honours","verification_level":1,"contract_check":"HONOURS","metamorphic_tier":"well_formed","behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"4fc17a091271ccf2"}},{"code_sha256_prefix":"b784c979d92e7d01","entry":"precompute_buffers","repo":"karlstratos/ammi","repo_kind":"official","path":"ammi.py","file_url":"https://github.com/karlstratos/ammi/blob/HEAD/ammi.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":"b784c979d92e7d01"}},{"code_sha256_prefix":"4a6768de473fef0d","entry":"precompute_quads","repo":"karlstratos/ammi","repo_kind":"official","path":"ammi.py","file_url":"https://github.com/karlstratos/ammi/blob/HEAD/ammi.py","link_basis":"first_harvest_node","language":"python","status":"ran_honours","verification_level":1,"contract_check":"HONOURS","metamorphic_tier":"well_formed","behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"4a6768de473fef0d"}},{"code_sha256_prefix":"833b7b44cb181c6d","entry":"AMMI","repo":"karlstratos/ammi","repo_kind":"official","path":"ammi.py","file_url":"https://github.com/karlstratos/ammi/blob/HEAD/ammi.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":"833b7b44cb181c6d"}},{"code_sha256_prefix":"832329ad3f5db304","entry":"Data","repo":"karlstratos/ammi","repo_kind":"official","path":"ammi.py","file_url":"https://github.com/karlstratos/ammi/blob/HEAD/ammi.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":"832329ad3f5db304"}},{"code_sha256_prefix":"1994d2ff3d492940","entry":"EntropyHelper","repo":"karlstratos/ammi","repo_kind":"official","path":"ammi.py","file_url":"https://github.com/karlstratos/ammi/blob/HEAD/ammi.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":"1994d2ff3d492940"}},{"code_sha256_prefix":"d784281de8217a41","entry":"LabeledDocuments","repo":"karlstratos/ammi","repo_kind":"official","path":"ammi.py","file_url":"https://github.com/karlstratos/ammi/blob/HEAD/ammi.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":"d784281de8217a41"}},{"code_sha256_prefix":"277398c5b8f05b33","entry":"Model","repo":"karlstratos/ammi","repo_kind":"official","path":"ammi.py","file_url":"https://github.com/karlstratos/ammi/blob/HEAD/ammi.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":"277398c5b8f05b33"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}