{"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/arxiv-2606-19850","title":"Neural Additive and Basis Models with Feature Selection and Interactions","arxiv_id":"2606.19850","date":"2026-06-18","proceeding":null,"authors":["Yasutoshi Kishimoto","Kota Yamanishi","Takuya Matsuda","Shinichi Shirakawa"],"abstract":"Deep neural networks (DNNs) exhibit attractive performance in various fields but often suffer from low interpretability. The neural additive model (NAM) and its variant called the neural basis model (NBM) use neural networks (NNs) as nonlinear shape functions in generalized additive models (GAMs). Both models are highly interpretable and exhibit good performance and flexibility for NN training. NAM and NBM can provide and visualize the contribution of each feature to the prediction owing to GAM-based architectures. However, when using two-input NNs to consider feature interactions or when applying them to high-dimensional datasets, training NAM and NBM becomes intractable due to the increase in the computational resources required. This paper proposes incorporating the feature selection mechanism into NAM and NBM to resolve computational bottlenecks. We introduce the feature selection layer in both models and update the selection weights during training. Our method is simple and can reduce computational costs and model sizes compared to vanilla NAM and NBM. In addition, it enables us to use two-input NNs even in high-dimensional datasets and capture feature interactions. We demonstrate that the proposed models are computationally efficient compared to vanilla NAM and NBM, and they exhibit better or comparable performance with state-of-the-art GAMs.","url_abs":"https://arxiv.org/abs/2606.19850","url_pdf":"https://arxiv.org/pdf/2606.19850","source":{"archive":null,"snapshot":"2025-07-28","note":"not in the Papers with Code archive (frozen at the snapshot)","row_kind":"graph","title_abstract_authors_date":"arXiv metadata, CC0 1.0 (https://info.arxiv.org/help/license)"},"code_links":[],"tasks":[],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2606.19850","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2606.19850"}},"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":[{"mentioned_in_github":null,"is_official":null,"provenance":"deterministic:regex_extraction","mentioned_in_paper":null,"url":"https://github.com/shiralab/NAM-FS","reach":null}],"summary":{"ran":9,"ran_draft_wrong":4,"ran_fixture":1,"unverified":2},"by_repo_kind":{"found_in_text":{"samples":16,"ran":14,"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":"7ec5dc9910a677d7","entry":"ChannelWiseLinear","repo":"shiralab/NAM-FS","repo_kind":"found_in_text","path":"nam_family/nam.py","file_url":"https://github.com/shiralab/NAM-FS/blob/HEAD/nam_family/nam.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":"7ec5dc9910a677d7"}},{"code_sha256_prefix":"503b8234d7ccab6f","entry":"Entmax15Function","repo":"shiralab/NAM-FS","repo_kind":"found_in_text","path":"nam_family/nam.py","file_url":"https://github.com/shiralab/NAM-FS/blob/HEAD/nam_family/nam.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":"503b8234d7ccab6f"}},{"code_sha256_prefix":"2a82ccde6d996754","entry":"Entmax15SelectorLayer","repo":"shiralab/NAM-FS","repo_kind":"found_in_text","path":"nam_family/nam.py","file_url":"https://github.com/shiralab/NAM-FS/blob/HEAD/nam_family/nam.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":"2a82ccde6d996754"}},{"code_sha256_prefix":"d32a6fc8da6802c3","entry":"ExU","repo":"shiralab/NAM-FS","repo_kind":"found_in_text","path":"nam_family/nam.py","file_url":"https://github.com/shiralab/NAM-FS/blob/HEAD/nam_family/nam.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":"d32a6fc8da6802c3"}},{"code_sha256_prefix":"e6bbfa01382c9094","entry":"GAMOutputLayer","repo":"shiralab/NAM-FS","repo_kind":"found_in_text","path":"nam_family/nam.py","file_url":"https://github.com/shiralab/NAM-FS/blob/HEAD/nam_family/nam.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":"e6bbfa01382c9094"}},{"code_sha256_prefix":"ffaa749a9a669b31","entry":"GumbelSelectorLayer","repo":"shiralab/NAM-FS","repo_kind":"found_in_text","path":"nam_family/nam.py","file_url":"https://github.com/shiralab/NAM-FS/blob/HEAD/nam_family/nam.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":"ffaa749a9a669b31"}},{"code_sha256_prefix":"159804ef2f8f9c8d","entry":"NAMBatchNorm1d","repo":"shiralab/NAM-FS","repo_kind":"found_in_text","path":"nam_family/nam.py","file_url":"https://github.com/shiralab/NAM-FS/blob/HEAD/nam_family/nam.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":"159804ef2f8f9c8d"}},{"code_sha256_prefix":"df9f7325d9ee8574","entry":"NAMLayer","repo":"shiralab/NAM-FS","repo_kind":"found_in_text","path":"nam_family/nam.py","file_url":"https://github.com/shiralab/NAM-FS/blob/HEAD/nam_family/nam.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":"df9f7325d9ee8574"}},{"code_sha256_prefix":"cecd4be4a4b96d6d","entry":"RandomSelectorLayer","repo":"shiralab/NAM-FS","repo_kind":"found_in_text","path":"nam_family/nam.py","file_url":"https://github.com/shiralab/NAM-FS/blob/HEAD/nam_family/nam.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":"cecd4be4a4b96d6d"}},{"code_sha256_prefix":"9a114356aeeb0ba1","entry":"_entmax_threshold_and_support","repo":"shiralab/NAM-FS","repo_kind":"found_in_text","path":"nam_family/nam.py","file_url":"https://github.com/shiralab/NAM-FS/blob/HEAD/nam_family/nam.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":"9a114356aeeb0ba1"}},{"code_sha256_prefix":"6ac396d9e4692c05","entry":"_make_ix_like","repo":"shiralab/NAM-FS","repo_kind":"found_in_text","path":"nam_family/nam.py","file_url":"https://github.com/shiralab/NAM-FS/blob/HEAD/nam_family/nam.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"6ac396d9e4692c05"}},{"code_sha256_prefix":"69bf6a5faa8d1de9","entry":"_roll_last","repo":"shiralab/NAM-FS","repo_kind":"found_in_text","path":"nam_family/nam.py","file_url":"https://github.com/shiralab/NAM-FS/blob/HEAD/nam_family/nam.py","link_basis":"first_harvest_node","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"69bf6a5faa8d1de9"}},{"code_sha256_prefix":"599b492ddf87de3f","entry":"entmax15","repo":"shiralab/NAM-FS","repo_kind":"found_in_text","path":"nam_family/nam.py","file_url":"https://github.com/shiralab/NAM-FS/blob/HEAD/nam_family/nam.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"599b492ddf87de3f"}},{"code_sha256_prefix":"89ca8e5cd6a521bd","entry":"get_nam_hidden_layer_list","repo":"shiralab/NAM-FS","repo_kind":"found_in_text","path":"nam_family/nam.py","file_url":"https://github.com/shiralab/NAM-FS/blob/HEAD/nam_family/nam.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":"deterministic","behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"89ca8e5cd6a521bd"}},{"code_sha256_prefix":"5fc93cbd2b9c2e69","entry":"NAMFS","repo":"shiralab/NAM-FS","repo_kind":"found_in_text","path":"nam_family/nam.py","file_url":"https://github.com/shiralab/NAM-FS/blob/HEAD/nam_family/nam.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":"5fc93cbd2b9c2e69"}},{"code_sha256_prefix":"1e56f67f2a8c0545","entry":"get_selector_layer","repo":"shiralab/NAM-FS","repo_kind":"found_in_text","path":"nam_family/nam.py","file_url":"https://github.com/shiralab/NAM-FS/blob/HEAD/nam_family/nam.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":"1e56f67f2a8c0545"}}]},"arxiv_metadata":{"licence":"arXiv metadata, CC0 1.0 (https://info.arxiv.org/help/license)","fields":["title","abstract","authors","date"],"primary_category":"cs.LG","source":"arxiv_2026.jsonl"},"syntology_extracted_results":null}