{"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/syntax-directed-variational-autoencoder-for","title":"Syntax-Directed Variational Autoencoder for Structured Data","arxiv_id":"1802.08786","date":"2018-02-24","proceeding":"ICLR 2018 1","authors":["Hanjun Dai","Yingtao Tian","Bo Dai","Steven Skiena","Le Song"],"abstract":"Deep generative models have been enjoying success in modeling continuous\ndata. However it remains challenging to capture the representations for\ndiscrete structures with formal grammars and semantics, e.g., computer programs\nand molecular structures. How to generate both syntactically and semantically\ncorrect data still remains largely an open problem. Inspired by the theory of\ncompiler where the syntax and semantics check is done via syntax-directed\ntranslation (SDT), we propose a novel syntax-directed variational autoencoder\n(SD-VAE) by introducing stochastic lazy attributes. This approach converts the\noffline SDT check into on-the-fly generated guidance for constraining the\ndecoder. Comparing to the state-of-the-art methods, our approach enforces\nconstraints on the output space so that the output will be not only\nsyntactically valid, but also semantically reasonable. We evaluate the proposed\nmodel with applications in programming language and molecules, including\nreconstruction and program/molecule optimization. The results demonstrate the\neffectiveness in incorporating syntactic and semantic constraints in discrete\ngenerative models, which is significantly better than current state-of-the-art\napproaches.","url_abs":"http://arxiv.org/abs/1802.08786v1","url_pdf":"http://arxiv.org/pdf/1802.08786v1.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":"syntax-directed-variational-autoencoder-for","repo_url":"https://github.com/Hanjun-Dai/sdvae","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}}],"tasks":[{"task_slug":"decoder","task_name":"Decoder"},{"task_slug":"translation","task_name":"Translation"},{"task_slug":null,"task_name":"valid"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=1802.08786","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"1802.08786"}},"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/Hanjun-Dai/sdvae","reach":{"status":"ok","spdx":"MIT"}}],"summary":{"unverified":3},"by_repo_kind":{"official":{"samples":3,"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":"80a3e2a84a56eb02","entry":"my_binary_loss","repo":"Hanjun-Dai/sdvae","repo_kind":"official","path":"mol_vae/mol_decoder/custom_loss.py","file_url":"https://github.com/Hanjun-Dai/sdvae/blob/HEAD/mol_vae/mol_decoder/custom_loss.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":"80a3e2a84a56eb02"}},{"code_sha256_prefix":"0e5d4ba1c7e73f4c","entry":"my_perp_loss","repo":"Hanjun-Dai/sdvae","repo_kind":"official","path":"mol_vae/mol_decoder/custom_loss.py","file_url":"https://github.com/Hanjun-Dai/sdvae/blob/HEAD/mol_vae/mol_decoder/custom_loss.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":"0e5d4ba1c7e73f4c"}},{"code_sha256_prefix":"0373d0c88b91050c","entry":"parse","repo":"Hanjun-Dai/sdvae","repo_kind":"official","path":"mol_vae/cfg_parser/cfg_parser.py","file_url":"https://github.com/Hanjun-Dai/sdvae/blob/HEAD/mol_vae/cfg_parser/cfg_parser.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":"0373d0c88b91050c"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}