{"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/neuro-symbolic-continual-learning-knowledge","title":"Neuro-Symbolic Continual Learning: Knowledge, Reasoning Shortcuts and Concept Rehearsal","arxiv_id":"2302.01242","date":"2023-02-02","proceeding":null,"authors":["Emanuele Marconato","Gianpaolo Bontempo","Elisa Ficarra","Simone Calderara","Andrea Passerini","Stefano Teso"],"abstract":"We introduce Neuro-Symbolic Continual Learning, where a model has to solve a sequence of neuro-symbolic tasks, that is, it has to map sub-symbolic inputs to high-level concepts and compute predictions by reasoning consistently with prior knowledge. Our key observation is that neuro-symbolic tasks, although different, often share concepts whose semantics remains stable over time. Traditional approaches fall short: existing continual strategies ignore knowledge altogether, while stock neuro-symbolic architectures suffer from catastrophic forgetting. We show that leveraging prior knowledge by combining neuro-symbolic architectures with continual strategies does help avoid catastrophic forgetting, but also that doing so can yield models affected by reasoning shortcuts. These undermine the semantics of the acquired concepts, even when detailed prior knowledge is provided upfront and inference is exact, and in turn continual performance. To overcome these issues, we introduce COOL, a COncept-level cOntinual Learning strategy tailored for neuro-symbolic continual problems that acquires high-quality concepts and remembers them over time. Our experiments on three novel benchmarks highlights how COOL attains sustained high performance on neuro-symbolic continual learning tasks in which other strategies fail.","url_abs":"https://arxiv.org/abs/2302.01242v2","url_pdf":"https://arxiv.org/pdf/2302.01242v2.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":"neuro-symbolic-continual-learning-knowledge","repo_url":"https://github.com/ema-marconato/nesy-cl","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":null}],"tasks":[{"task_slug":"continual-learning","task_name":"Continual Learning"}],"methods":[{"method_slug":"fail","method_name":"fail"}],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2302.01242","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2302.01242"}},"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/ema-marconato/nesy-cl","reach":null}],"summary":{"ran":2,"ran_fixture":1,"unverified":4},"by_repo_kind":{"official":{"samples":7,"ran":3,"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":"d9319734afd720b0","entry":"Buffer","repo":"ema-marconato/nesy-cl","repo_kind":"official","path":"models/cool.py","file_url":"https://github.com/ema-marconato/nesy-cl/blob/HEAD/models/cool.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":"d9319734afd720b0"}},{"code_sha256_prefix":"68ac932d64459c47","entry":"ContinualModel","repo":"ema-marconato/nesy-cl","repo_kind":"official","path":"models/cool.py","file_url":"https://github.com/ema-marconato/nesy-cl/blob/HEAD/models/cool.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"68ac932d64459c47"}},{"code_sha256_prefix":"79ad7949ae4becd4","entry":"kl_divergence","repo":"ema-marconato/nesy-cl","repo_kind":"official","path":"models/cool.py","file_url":"https://github.com/ema-marconato/nesy-cl/blob/HEAD/models/cool.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":"79ad7949ae4becd4"}},{"code_sha256_prefix":"b2e185f86bccea7a","entry":"COOL","repo":"ema-marconato/nesy-cl","repo_kind":"official","path":"models/cool.py","file_url":"https://github.com/ema-marconato/nesy-cl/blob/HEAD/models/cool.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":"b2e185f86bccea7a"}},{"code_sha256_prefix":"17f4941b9c6da030","entry":"launch_addition_mnist","repo":"ema-marconato/nesy-cl","repo_kind":"official","path":"experiments.py","file_url":"https://github.com/ema-marconato/nesy-cl/blob/HEAD/experiments.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":"17f4941b9c6da030"}},{"code_sha256_prefix":"0ebffe9e2281cd63","entry":"launch_cle4evr","repo":"ema-marconato/nesy-cl","repo_kind":"official","path":"experiments.py","file_url":"https://github.com/ema-marconato/nesy-cl/blob/HEAD/experiments.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":"0ebffe9e2281cd63"}},{"code_sha256_prefix":"643a5c5e5c5368f6","entry":"launch_shortcut_mnist","repo":"ema-marconato/nesy-cl","repo_kind":"official","path":"experiments.py","file_url":"https://github.com/ema-marconato/nesy-cl/blob/HEAD/experiments.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":"643a5c5e5c5368f6"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}