{"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/discrete-compositional-and-symbolic","title":"Discrete, compositional, and symbolic representations through attractor dynamics","arxiv_id":"2310.01807","date":"2023-10-03","proceeding":null,"authors":["Andrew Nam","Eric Elmoznino","Nikolay Malkin","James McClelland","Yoshua Bengio","Guillaume Lajoie"],"abstract":"Symbolic systems are powerful frameworks for modeling cognitive processes as they encapsulate the rules and relationships fundamental to many aspects of human reasoning and behavior. Central to these models are systematicity, compositionality, and productivity, making them invaluable in both cognitive science and artificial intelligence. However, certain limitations remain. For instance, the integration of structured symbolic processes and latent sub-symbolic processes has been implemented at the computational level through fiat methods such as quantization or softmax sampling, which assume, rather than derive, the operations underpinning discretization and symbolicization. In this work, we introduce a novel neural stochastic dynamical systems model that integrates attractor dynamics with symbolic representations to model cognitive processes akin to the probabilistic language of thought (PLoT). Our model segments the continuous representational space into discrete basins, with attractor states corresponding to symbolic sequences, that reflect the semanticity and compositionality characteristic of symbolic systems through unsupervised learning, rather than relying on pre-defined primitives. Moreover, like PLoT, our model learns to sample a diverse distribution of attractor states that reflect the mutual information between the input data and the symbolic encodings. This approach establishes a unified framework that integrates both symbolic and sub-symbolic processing through neural dynamics, a neuro-plausible substrate with proven expressivity in AI, offering a more comprehensive model that mirrors the complex duality of cognitive operations.","url_abs":"https://arxiv.org/abs/2310.01807v2","url_pdf":"https://arxiv.org/pdf/2310.01807v2.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":"discrete-compositional-and-symbolic","repo_url":"https://github.com/andrewnam/gfn_attractors","is_official":1,"mentioned_in_paper":0,"mentioned_in_github":0,"framework":"pytorch","reach":{"status":"ok"}}],"tasks":[{"task_slug":"quantization","task_name":"Quantization"}],"methods":[{"method_slug":"softmax","method_name":"Softmax"}],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"syntology_url":"https://syntology.ai/paper/2310.01807","atlas_url":"https://app.syntology.ai/?focus=2310.01807","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2310.01807"}},"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/andrewnam/gfn_attractors","reach":{"status":"ok"}}],"summary":{"ran":2,"unverified":7},"by_repo_kind":{"official":{"samples":9,"ran":2,"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":9,"samples":[{"code_sha256_prefix":"76e33ce166b1f403","entry":"load_partial_state_dict","repo":"andrewnam/gfn_attractors","repo_kind":"official","path":"src/gfn_attractors/misc/torch_utils.py","file_url":"https://github.com/andrewnam/gfn_attractors/blob/HEAD/src/gfn_attractors/misc/torch_utils.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"76e33ce166b1f403"}},{"code_sha256_prefix":"5814072d1259895c","entry":"to_strings","repo":"andrewnam/gfn_attractors","repo_kind":"official","path":"src/gfn_attractors/misc/torch_utils.py","file_url":"https://github.com/andrewnam/gfn_attractors/blob/HEAD/src/gfn_attractors/misc/torch_utils.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"5814072d1259895c"}},{"code_sha256_prefix":"6a14b28ccccf6595","entry":"compose_grid","repo":"andrewnam/gfn_attractors","repo_kind":"official","path":"src/gfn_attractors/misc/image_utils.py","file_url":"https://github.com/andrewnam/gfn_attractors/blob/HEAD/src/gfn_attractors/misc/image_utils.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"6a14b28ccccf6595"}},{"code_sha256_prefix":"697e233d3781cd07","entry":"draw_simple_text","repo":"andrewnam/gfn_attractors","repo_kind":"official","path":"src/gfn_attractors/misc/image_utils.py","file_url":"https://github.com/andrewnam/gfn_attractors/blob/HEAD/src/gfn_attractors/misc/image_utils.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"697e233d3781cd07"}},{"code_sha256_prefix":"731bc673d805dae2","entry":"extract_args","repo":"andrewnam/gfn_attractors","repo_kind":"official","path":"src/gfn_attractors/misc/utils.py","file_url":"https://github.com/andrewnam/gfn_attractors/blob/HEAD/src/gfn_attractors/misc/utils.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"731bc673d805dae2"}},{"code_sha256_prefix":"0ca5b8c6d6c73ef3","entry":"is_iterable","repo":"andrewnam/gfn_attractors","repo_kind":"official","path":"src/gfn_attractors/misc/utils.py","file_url":"https://github.com/andrewnam/gfn_attractors/blob/HEAD/src/gfn_attractors/misc/utils.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"0ca5b8c6d6c73ef3"}},{"code_sha256_prefix":"210500698f3f508e","entry":"kv_str","repo":"andrewnam/gfn_attractors","repo_kind":"official","path":"src/gfn_attractors/misc/utils.py","file_url":"https://github.com/andrewnam/gfn_attractors/blob/HEAD/src/gfn_attractors/misc/utils.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"210500698f3f508e"}},{"code_sha256_prefix":"c481af10739bfe2a","entry":"plot_to_image","repo":"andrewnam/gfn_attractors","repo_kind":"official","path":"src/gfn_attractors/misc/image_utils.py","file_url":"https://github.com/andrewnam/gfn_attractors/blob/HEAD/src/gfn_attractors/misc/image_utils.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"c481af10739bfe2a"}},{"code_sha256_prefix":"5892855bee689c8c","entry":"prepend_shape","repo":"andrewnam/gfn_attractors","repo_kind":"official","path":"src/gfn_attractors/misc/torch_utils.py","file_url":"https://github.com/andrewnam/gfn_attractors/blob/HEAD/src/gfn_attractors/misc/torch_utils.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"5892855bee689c8c"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}