{"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/learning-interaction-rules-from-multi-animal","title":"Learning interaction rules from multi-animal trajectories via augmented behavioral models","arxiv_id":"2107.05326","date":"2021-07-12","proceeding":"NeurIPS 2021 12","authors":["Keisuke Fujii","Naoya Takeishi","Kazushi Tsutsui","Emyo Fujioka","Nozomi Nishiumi","Ryoya Tanaka","Mika Fukushiro","Kaoru Ide","Hiroyoshi Kohno","Ken Yoda","Susumu Takahashi","Shizuko Hiryu","Yoshinobu Kawahara"],"abstract":"Extracting the interaction rules of biological agents from movement sequences pose challenges in various domains. Granger causality is a practical framework for analyzing the interactions from observed time-series data; however, this framework ignores the structures and assumptions of the generative process in animal behaviors, which may lead to interpretational problems and sometimes erroneous assessments of causality. In this paper, we propose a new framework for learning Granger causality from multi-animal trajectories via augmented theory-based behavioral models with interpretable data-driven models. We adopt an approach for augmenting incomplete multi-agent behavioral models described by time-varying dynamical systems with neural networks. For efficient and interpretable learning, our model leverages theory-based architectures separating navigation and motion processes, and the theory-guided regularization for reliable behavioral modeling. This can provide interpretable signs of Granger-causal effects over time, i.e., when specific others cause the approach or separation. In experiments using synthetic datasets, our method achieved better performance than various baselines. We then analyzed multi-animal datasets of mice, flies, birds, and bats, which verified our method and obtained novel biological insights.","url_abs":"https://arxiv.org/abs/2107.05326v3","url_pdf":"https://arxiv.org/pdf/2107.05326v3.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":"learning-interaction-rules-from-multi-animal","repo_url":"https://github.com/keisuke198619/abm","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":0,"framework":"pytorch","reach":{"status":"ok"}}],"tasks":[{"task_slug":"time-series-1","task_name":"Time Series"},{"task_slug":"time-series","task_name":"Time Series Analysis"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"syntology_url":null,"atlas_url":"https://app.syntology.ai/?focus=2107.05326","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2107.05326"}},"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":"deterministic:regex_extraction","url":"https://github.com/keisuke198619/ABM","reach":{"status":"ok"}},{"provenance":"deterministic:regex_extraction","url":"https://github.com/sakhanna/SRU_for_GCI","reach":null},{"provenance":"deterministic:regex_extraction","url":"https://github.com/loeweX/AmortizedCausalDiscovery","reach":null},{"provenance":"deterministic:regex_extraction","url":"https://github.com/tailintalent/causal","reach":{"status":"ok","spdx":"MIT"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/keisuke198619/abm","reach":{"status":"ok"}}],"summary":{"ran":2,"unverified":8},"by_repo_kind":{"official":{"samples":1,"ran":0,"repositories":1},"found_in_text":{"samples":9,"ran":2,"repositories":3}},"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":1,"samples":[{"code_sha256_prefix":"5ab9512a153fa0ee","entry":"SRU","repo":"sakhanna/SRU_for_GCI","repo_kind":"found_in_text","path":"models/sru.py","file_url":"https://github.com/sakhanna/SRU_for_GCI/blob/HEAD/models/sru.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":"5ab9512a153fa0ee"}},{"code_sha256_prefix":"3010b5c709d1eeca","entry":"SimulationDecoder","repo":"loeweX/AmortizedCausalDiscovery","repo_kind":"found_in_text","path":"codebase/model/SimulationDecoder.py","file_url":"https://github.com/loeweX/AmortizedCausalDiscovery/blob/HEAD/codebase/model/SimulationDecoder.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":"3010b5c709d1eeca"}},{"code_sha256_prefix":"ca25d6dc0631520e","entry":"SENNGC","repo":"keisuke198619/abm","repo_kind":"official","path":"models/senn.py","file_url":"https://github.com/keisuke198619/abm/blob/HEAD/models/senn.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":"ca25d6dc0631520e"}},{"code_sha256_prefix":"47169daea7d8e22a","entry":"centropy","repo":"tailintalent/causal","repo_kind":"found_in_text","path":"estimators/entropy_estimators.py","file_url":"https://github.com/tailintalent/causal/blob/HEAD/estimators/entropy_estimators.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":"47169daea7d8e22a"}},{"code_sha256_prefix":"d15724b8afacc711","entry":"column","repo":"tailintalent/causal","repo_kind":"found_in_text","path":"estimators/entropy_estimators.py","file_url":"https://github.com/tailintalent/causal/blob/HEAD/estimators/entropy_estimators.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":"d15724b8afacc711"}},{"code_sha256_prefix":"b717486cc49d1dd9","entry":"entropy","repo":"tailintalent/causal","repo_kind":"found_in_text","path":"estimators/entropy_estimators.py","file_url":"https://github.com/tailintalent/causal/blob/HEAD/estimators/entropy_estimators.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":"b717486cc49d1dd9"}},{"code_sha256_prefix":"88d6c4afac57b695","entry":"get_MI_from_cov_np","repo":"tailintalent/causal","repo_kind":"found_in_text","path":"estimators/Gaussian_estimators.py","file_url":"https://github.com/tailintalent/causal/blob/HEAD/estimators/Gaussian_estimators.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":"88d6c4afac57b695"}},{"code_sha256_prefix":"c8b86e9b69171b4a","entry":"new_dict","repo":"tailintalent/causal","repo_kind":"found_in_text","path":"util.py","file_url":"https://github.com/tailintalent/causal/blob/HEAD/util.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":"c8b86e9b69171b4a"}},{"code_sha256_prefix":"557ef711d83b1f0d","entry":"norm","repo":"tailintalent/causal","repo_kind":"found_in_text","path":"util.py","file_url":"https://github.com/tailintalent/causal/blob/HEAD/util.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":"557ef711d83b1f0d"}},{"code_sha256_prefix":"2ebbab2a1572f0df","entry":"train_test_split","repo":"tailintalent/causal","repo_kind":"found_in_text","path":"util.py","file_url":"https://github.com/tailintalent/causal/blob/HEAD/util.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":"2ebbab2a1572f0df"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}