{"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/pseudo-poincare-a-unification-framework-for","title":"A Unification Framework for Euclidean and Hyperbolic Graph Neural Networks","arxiv_id":"2206.04285","date":"2022-06-09","proceeding":null,"authors":["Mehrdad Khatir","Nurendra Choudhary","Sutanay Choudhury","Khushbu Agarwal","Chandan K. Reddy"],"abstract":"Hyperbolic neural networks can effectively capture the inherent hierarchy of graph datasets, and consequently a powerful choice of GNNs. However, they entangle multiple incongruent (gyro-)vector spaces within a layer, which makes them limited in terms of generalization and scalability. In this work, we propose the Poincare disk model as our search space, and apply all approximations on the disk (as if the disk is a tangent space derived from the origin), thus getting rid of all inter-space transformations. Such an approach enables us to propose a hyperbolic normalization layer and to further simplify the entire hyperbolic model to a Euclidean model cascaded with our hyperbolic normalization layer. We applied our proposed nonlinear hyperbolic normalization to the current state-of-the-art homogeneous and multi-relational graph networks. We demonstrate that our model not only leverages the power of Euclidean networks such as interpretability and efficient execution of various model components, but also outperforms both Euclidean and hyperbolic counterparts on various benchmarks. Our code is made publicly available at https://github.com/oom-debugger/ijcai23.","url_abs":"https://arxiv.org/abs/2206.04285v3","url_pdf":"https://arxiv.org/pdf/2206.04285v3.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":"pseudo-poincare-a-unification-framework-for","repo_url":"https://github.com/oom-debugger/ijcai23","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"Apache-2.0"}}],"tasks":[{"task_slug":"link-prediction","task_name":"Link Prediction"},{"task_slug":"node-classification","task_name":"Node Classification"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2206.04285","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2206.04285"}},"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/oom-debugger/ijcai23","reach":{"status":"ok","spdx":"Apache-2.0"}}],"summary":{"ran_honours":2,"ran_violates":1,"ran":1,"unverified":8},"by_repo_kind":{"official":{"samples":12,"ran":4,"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":"18557871f0c93b3f","entry":"accuracy","repo":"oom-debugger/ijcai23","repo_kind":"official","path":"GCNII-master/utils.py","file_url":"https://github.com/oom-debugger/ijcai23/blob/HEAD/GCNII-master/utils.py","link_basis":"harvester_set","language":"python","status":"ran_honours","verification_level":1,"contract_check":"HONOURS","metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"18557871f0c93b3f"}},{"code_sha256_prefix":"c1d6392f89c5e495","entry":"parse_index_file","repo":"oom-debugger/ijcai23","repo_kind":"official","path":"GCNII-master/process.py","file_url":"https://github.com/oom-debugger/ijcai23/blob/HEAD/GCNII-master/process.py","link_basis":"harvester_set","language":"python","status":"ran_honours","verification_level":1,"contract_check":"HONOURS","metamorphic_tier":"well_formed","behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"c1d6392f89c5e495"}},{"code_sha256_prefix":"b32fd748b4bbe3bf","entry":"sample_mask","repo":"oom-debugger/ijcai23","repo_kind":"official","path":"GCNII-master/process.py","file_url":"https://github.com/oom-debugger/ijcai23/blob/HEAD/GCNII-master/process.py","link_basis":"harvester_set","language":"python","status":"ran_violates","verification_level":1,"contract_check":"VIOLATES","metamorphic_tier":"deterministic","behaviour_fingerprint":true,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"b32fd748b4bbe3bf"}},{"code_sha256_prefix":"55d314d6731edc0a","entry":"sys_normalized_adjacency","repo":"oom-debugger/ijcai23","repo_kind":"official","path":"GCNII-master/utils.py","file_url":"https://github.com/oom-debugger/ijcai23/blob/HEAD/GCNII-master/utils.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"55d314d6731edc0a"}},{"code_sha256_prefix":"bbf43036d0d1be94","entry":"artanh","repo":"oom-debugger/ijcai23","repo_kind":"official","path":"multirelational-normalized/utils.py","file_url":"https://github.com/oom-debugger/ijcai23/blob/HEAD/multirelational-normalized/utils.py","link_basis":"harvester_set","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":"bbf43036d0d1be94"}},{"code_sha256_prefix":"887d1966dc7d5944","entry":"euclidean_update","repo":"oom-debugger/ijcai23","repo_kind":"official","path":"multirelational-normalized/rsgd.py","file_url":"https://github.com/oom-debugger/ijcai23/blob/HEAD/multirelational-normalized/rsgd.py","link_basis":"harvester_set","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":"887d1966dc7d5944"}},{"code_sha256_prefix":"08311aa668365d42","entry":"full_load_citation","repo":"oom-debugger/ijcai23","repo_kind":"official","path":"GCNII-master/process.py","file_url":"https://github.com/oom-debugger/ijcai23/blob/HEAD/GCNII-master/process.py","link_basis":"harvester_set","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":"08311aa668365d42"}},{"code_sha256_prefix":"ed47211c38204dd5","entry":"normalize","repo":"oom-debugger/ijcai23","repo_kind":"official","path":"GCNII-master/utils.py","file_url":"https://github.com/oom-debugger/ijcai23/blob/HEAD/GCNII-master/utils.py","link_basis":"harvester_set","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":"ed47211c38204dd5"}},{"code_sha256_prefix":"ef981fc4bad4a22b","entry":"p_exp_map","repo":"oom-debugger/ijcai23","repo_kind":"official","path":"multirelational-normalized/utils.py","file_url":"https://github.com/oom-debugger/ijcai23/blob/HEAD/multirelational-normalized/utils.py","link_basis":"harvester_set","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":"ef981fc4bad4a22b"}},{"code_sha256_prefix":"3d6121c6b6728621","entry":"p_log_map","repo":"oom-debugger/ijcai23","repo_kind":"official","path":"multirelational-normalized/utils.py","file_url":"https://github.com/oom-debugger/ijcai23/blob/HEAD/multirelational-normalized/utils.py","link_basis":"harvester_set","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":"3d6121c6b6728621"}},{"code_sha256_prefix":"9e8a3bc865c35646","entry":"poincare_grad","repo":"oom-debugger/ijcai23","repo_kind":"official","path":"multirelational-normalized/rsgd.py","file_url":"https://github.com/oom-debugger/ijcai23/blob/HEAD/multirelational-normalized/rsgd.py","link_basis":"harvester_set","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":"9e8a3bc865c35646"}},{"code_sha256_prefix":"97c4be1bf3b277b5","entry":"poincare_update","repo":"oom-debugger/ijcai23","repo_kind":"official","path":"multirelational-normalized/rsgd.py","file_url":"https://github.com/oom-debugger/ijcai23/blob/HEAD/multirelational-normalized/rsgd.py","link_basis":"harvester_set","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":"97c4be1bf3b277b5"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}