{"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/change-detection-in-graph-streams-by-learning","title":"Change Detection in Graph Streams by Learning Graph Embeddings on Constant-Curvature Manifolds","arxiv_id":"1805.06299","date":"2018-05-16","proceeding":null,"authors":["Daniele Grattarola","Daniele Zambon","Cesare Alippi","Lorenzo Livi"],"abstract":"The space of graphs is often characterised by a non-trivial geometry, which\ncomplicates learning and inference in practical applications. A common approach\nis to use embedding techniques to represent graphs as points in a conventional\nEuclidean space, but non-Euclidean spaces have often been shown to be better\nsuited for embedding graphs. Among these, constant-curvature Riemannian\nmanifolds (CCMs) offer embedding spaces suitable for studying the statistical\nproperties of a graph distribution, as they provide ways to easily compute\nmetric geodesic distances. In this paper, we focus on the problem of detecting\nchanges in stationarity in a stream of attributed graphs. To this end, we\nintroduce a novel change detection framework based on neural networks and CCMs,\nthat takes into account the non-Euclidean nature of graphs. Our contribution in\nthis work is twofold. First, via a novel approach based on adversarial\nlearning, we compute graph embeddings by training an autoencoder to represent\ngraphs on CCMs. Second, we introduce two novel change detection tests operating\non CCMs. We perform experiments on synthetic data, as well as two real-world\napplication scenarios: the detection of epileptic seizures using functional\nconnectivity brain networks, and the detection of hostility between two\nsubjects, using human skeletal graphs. Results show that the proposed methods\nare able to detect even small changes in a graph-generating process,\nconsistently outperforming approaches based on Euclidean embeddings.","url_abs":"http://arxiv.org/abs/1805.06299v3","url_pdf":"http://arxiv.org/pdf/1805.06299v3.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":"change-detection-in-graph-streams-by-learning","repo_url":"https://github.com/danielegrattarola/cdt-ccm-aae","is_official":1,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"none","reach":{"status":"ok","spdx":"MIT"}}],"tasks":[{"task_slug":"change-detection","task_name":"Change Detection"},{"task_slug":null,"task_name":"Functional Connectivity"},{"task_slug":"seizure-detection","task_name":"Seizure Detection"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"syntology_url":"https://syntology.ai/paper/1805.06299","atlas_url":"https://app.syntology.ai/?focus=1805.06299","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"1805.06299"}},"developers":"https://syntology.ai/developers","read_at":"2026-09-25T09:33:49+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/danielegrattarola/cdt-ccm-aae","reach":{"status":"ok","spdx":"MIT"}}],"summary":{"unverified":9},"by_repo_kind":{"official":{"samples":9,"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":0,"samples":[{"code_sha256_prefix":"7ae13f41008eb7c9","entry":"belongs","repo":"danielegrattarola/cdt-ccm-aae","repo_kind":"official","path":"src/utils/geometry.py","file_url":"https://github.com/danielegrattarola/cdt-ccm-aae/blob/HEAD/src/utils/geometry.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":"7ae13f41008eb7c9"}},{"code_sha256_prefix":"eb9ef1396652ac42","entry":"compute_adj","repo":"danielegrattarola/cdt-ccm-aae","repo_kind":"official","path":"src/utils/delaunay.py","file_url":"https://github.com/danielegrattarola/cdt-ccm-aae/blob/HEAD/src/utils/delaunay.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":"eb9ef1396652ac42"}},{"code_sha256_prefix":"e1e9121257dccfe5","entry":"dataset_load","repo":"danielegrattarola/cdt-ccm-aae","repo_kind":"official","path":"src/utils/utils.py","file_url":"https://github.com/danielegrattarola/cdt-ccm-aae/blob/HEAD/src/utils/utils.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":"e1e9121257dccfe5"}},{"code_sha256_prefix":"c4c01dffec3042bc","entry":"detection_score","repo":"danielegrattarola/cdt-ccm-aae","repo_kind":"official","path":"src/utils/utils.py","file_url":"https://github.com/danielegrattarola/cdt-ccm-aae/blob/HEAD/src/utils/utils.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":"c4c01dffec3042bc"}},{"code_sha256_prefix":"5cca36771ae9d271","entry":"init_logging","repo":"danielegrattarola/cdt-ccm-aae","repo_kind":"official","path":"src/utils/logging.py","file_url":"https://github.com/danielegrattarola/cdt-ccm-aae/blob/HEAD/src/utils/logging.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":"5cca36771ae9d271"}},{"code_sha256_prefix":"468c8c5e8d790a74","entry":"is_hyperbolic","repo":"danielegrattarola/cdt-ccm-aae","repo_kind":"official","path":"src/utils/geometry.py","file_url":"https://github.com/danielegrattarola/cdt-ccm-aae/blob/HEAD/src/utils/geometry.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":"468c8c5e8d790a74"}},{"code_sha256_prefix":"909e9ad0b1b2b06d","entry":"is_spherical","repo":"danielegrattarola/cdt-ccm-aae","repo_kind":"official","path":"src/utils/geometry.py","file_url":"https://github.com/danielegrattarola/cdt-ccm-aae/blob/HEAD/src/utils/geometry.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":"909e9ad0b1b2b06d"}},{"code_sha256_prefix":"1a88135c1e7dab85","entry":"mean_pred","repo":"danielegrattarola/cdt-ccm-aae","repo_kind":"official","path":"src/main_geom.py","file_url":"https://github.com/danielegrattarola/cdt-ccm-aae/blob/HEAD/src/main_geom.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":"1a88135c1e7dab85"}},{"code_sha256_prefix":"d358ed8a298ae287","entry":"model_to_str","repo":"danielegrattarola/cdt-ccm-aae","repo_kind":"official","path":"src/utils/logging.py","file_url":"https://github.com/danielegrattarola/cdt-ccm-aae/blob/HEAD/src/utils/logging.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":"d358ed8a298ae287"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}