{"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/progressive-memory-banks-for-incremental","title":"Progressive Memory Banks for Incremental Domain Adaptation","arxiv_id":"1811.00239","date":"2018-11-01","proceeding":"ICLR 2020 1","authors":["Nabiha Asghar","Lili Mou","Kira A. Selby","Kevin D. Pantasdo","Pascal Poupart","Xin Jiang"],"abstract":"This paper addresses the problem of incremental domain adaptation (IDA) in natural language processing (NLP). We assume each domain comes one after another, and that we could only access data in the current domain. The goal of IDA is to build a unified model performing well on all the domains that we have encountered. We adopt the recurrent neural network (RNN) widely used in NLP, but augment it with a directly parameterized memory bank, which is retrieved by an attention mechanism at each step of RNN transition. The memory bank provides a natural way of IDA: when adapting our model to a new domain, we progressively add new slots to the memory bank, which increases the number of parameters, and thus the model capacity. We learn the new memory slots and fine-tune existing parameters by back-propagation. Experimental results show that our approach achieves significantly better performance than fine-tuning alone. Compared with expanding hidden states, our approach is more robust for old domains, shown by both empirical and theoretical results. Our model also outperforms previous work of IDA including elastic weight consolidation and progressive neural networks in the experiments.","url_abs":"https://arxiv.org/abs/1811.00239v2","url_pdf":"https://arxiv.org/pdf/1811.00239v2.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":"progressive-memory-banks-for-incremental","repo_url":"https://github.com/nabihach/IDA","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":0,"framework":"pytorch","reach":{"status":"ok","spdx":"Apache-2.0"}}],"tasks":[{"task_slug":"domain-adaptation","task_name":"Domain Adaptation"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=1811.00239","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"1811.00239"}},"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/nabihach/IDA","reach":{"status":"ok","spdx":"Apache-2.0"}}],"summary":{"ran_draft_wrong":1,"unverified":7},"by_repo_kind":{"official":{"samples":8,"ran":1,"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":"3b0218c9534b6ee7","entry":"unicode_to_ascii","repo":"nabihach/IDA","repo_kind":"official","path":"preprocess.py","file_url":"https://github.com/nabihach/IDA/blob/HEAD/preprocess.py","link_basis":"plan_row","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":"deterministic","behaviour_fingerprint":true,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"3b0218c9534b6ee7"}},{"code_sha256_prefix":"b81648f26f1af519","entry":"import_data","repo":"nabihach/IDA","repo_kind":"official","path":"nli/nli_model.py","file_url":"https://github.com/nabihach/IDA/blob/HEAD/nli/nli_model.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"b81648f26f1af519"}},{"code_sha256_prefix":"77a1eb17f2b1a117","entry":"is_valid_pretrained_model","repo":"nabihach/IDA","repo_kind":"official","path":"nli/nli_train.py","file_url":"https://github.com/nabihach/IDA/blob/HEAD/nli/nli_train.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"77a1eb17f2b1a117"}},{"code_sha256_prefix":"e1a3eb4fd8ddcb54","entry":"load_glove_embeddings","repo":"nabihach/IDA","repo_kind":"official","path":"utils.py","file_url":"https://github.com/nabihach/IDA/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":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"e1a3eb4fd8ddcb54"}},{"code_sha256_prefix":"883b38bcfc27ee7b","entry":"normalize","repo":"nabihach/IDA","repo_kind":"official","path":"preprocess.py","file_url":"https://github.com/nabihach/IDA/blob/HEAD/preprocess.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"883b38bcfc27ee7b"}},{"code_sha256_prefix":"13235290819c0b16","entry":"separate","repo":"nabihach/IDA","repo_kind":"official","path":"preprocess.py","file_url":"https://github.com/nabihach/IDA/blob/HEAD/preprocess.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"13235290819c0b16"}},{"code_sha256_prefix":"bc888e22af810165","entry":"sequence_mask","repo":"nabihach/IDA","repo_kind":"official","path":"utils.py","file_url":"https://github.com/nabihach/IDA/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":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"bc888e22af810165"}},{"code_sha256_prefix":"ba22c633bf16181c","entry":"valid_label","repo":"nabihach/IDA","repo_kind":"official","path":"nli/nli_preprocessor.py","file_url":"https://github.com/nabihach/IDA/blob/HEAD/nli/nli_preprocessor.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"ba22c633bf16181c"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}