{"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-2602-21342","title":"Archetypal Graph Generative Models: Explainable and Identifiable Communities via Anchor-Dominant Convex Hulls","arxiv_id":"2602.21342","date":"2026-02-24","proceeding":null,"authors":["Nikolaos Nakis","Chrysoula Kosma","Panagiotis Promponas","Michail Chatzianastasis","Giannis Nikolentzos"],"abstract":"Representation learning has been essential for graph machine learning tasks such as link prediction, community detection, and network visualization. Despite recent advances in achieving high performance on these downstream tasks, little progress has been made toward self-explainable models. Understanding the patterns behind predictions is equally important, motivating recent interest in explainable machine learning. In this paper, we present GraphHull, an explainable generative model that represents networks using two levels of convex hulls. At the global level, the vertices of a convex hull are treated as archetypes, each corresponding to a pure community in the network. At the local level, each community is refined by a prototypical hull whose vertices act as representative profiles, capturing community-specific variation. This two-level construction yields clear multi-scale explanations: a node's position relative to global archetypes and its local prototypes directly accounts for its edges. The geometry is well-behaved by design, while local hulls are kept disjoint by construction. To further encourage diversity and stability, we place principled priors, including determinantal point processes, and fit the model under MAP estimation with scalable subsampling. Experiments on real networks demonstrate the ability of GraphHull to recover multi-level community structure and to achieve competitive or superior performance in link prediction and community detection, while naturally providing interpretable predictions.","url_abs":"https://arxiv.org/abs/2602.21342","url_pdf":"https://arxiv.org/pdf/2602.21342","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=2602.21342","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2602.21342"}},"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/Nicknakis/GraphHull","reach":null}],"summary":{"unverified":7},"by_repo_kind":{"found_in_text":{"samples":7,"ran":0,"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":7,"samples":[{"code_sha256_prefix":"5d2905f4bb5a85d3","entry":"canonicalize_spectral","repo":"Nicknakis/GraphHull","repo_kind":"found_in_text","path":"lsm-clustering/lsm/initializers.py","file_url":"https://github.com/Nicknakis/GraphHull/blob/HEAD/lsm-clustering/lsm/initializers.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":"5d2905f4bb5a85d3"}},{"code_sha256_prefix":"e42fdbac42c1b3c0","entry":"farthest_first_anchors","repo":"Nicknakis/GraphHull","repo_kind":"found_in_text","path":"lsm-clustering/lsm/initializers.py","file_url":"https://github.com/Nicknakis/GraphHull/blob/HEAD/lsm-clustering/lsm/initializers.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":"e42fdbac42c1b3c0"}},{"code_sha256_prefix":"95d8a363f7e462c1","entry":"load_dataset","repo":"Nicknakis/GraphHull","repo_kind":"found_in_text","path":"lsm-clustering/lsm/data.py","file_url":"https://github.com/Nicknakis/GraphHull/blob/HEAD/lsm-clustering/lsm/data.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":"95d8a363f7e462c1"}},{"code_sha256_prefix":"8e0526aa4f9e6e8d","entry":"load_dataset","repo":"Nicknakis/GraphHull","repo_kind":"found_in_text","path":"lsm-link-prediction/lsm/data.py","file_url":"https://github.com/Nicknakis/GraphHull/blob/HEAD/lsm-link-prediction/lsm/data.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":"8e0526aa4f9e6e8d"}},{"code_sha256_prefix":"4cd80c749e315685","entry":"logits_from_anchors","repo":"Nicknakis/GraphHull","repo_kind":"found_in_text","path":"lsm-clustering/lsm/initializers.py","file_url":"https://github.com/Nicknakis/GraphHull/blob/HEAD/lsm-clustering/lsm/initializers.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":"4cd80c749e315685"}},{"code_sha256_prefix":"2c904c0a16c6967a","entry":"overlapping_pairs","repo":"Nicknakis/GraphHull","repo_kind":"found_in_text","path":"lsm-clustering/lsm/geometry.py","file_url":"https://github.com/Nicknakis/GraphHull/blob/HEAD/lsm-clustering/lsm/geometry.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":"2c904c0a16c6967a"}},{"code_sha256_prefix":"070f63f23d6c86a0","entry":"simplex_intersection","repo":"Nicknakis/GraphHull","repo_kind":"found_in_text","path":"lsm-clustering/lsm/geometry.py","file_url":"https://github.com/Nicknakis/GraphHull/blob/HEAD/lsm-clustering/lsm/geometry.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":"070f63f23d6c86a0"}}]},"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}