{"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/diffgad-a-diffusion-based-unsupervised-graph","title":"DiffGAD: A Diffusion-based Unsupervised Graph Anomaly Detector","arxiv_id":"2410.06549","date":"2024-10-09","proceeding":null,"authors":["Jinghan Li","Yuan Gao","Jinda Lu","Junfeng Fang","Congcong Wen","Hui Lin","Xiang Wang"],"abstract":"Graph Anomaly Detection (GAD) is crucial for identifying abnormal entities within networks, garnering significant attention across various fields. Traditional unsupervised methods, which decode encoded latent representations of unlabeled data with a reconstruction focus, often fail to capture critical discriminative content, leading to suboptimal anomaly detection. To address these challenges, we present a Diffusion-based Graph Anomaly Detector (DiffGAD). At the heart of DiffGAD is a novel latent space learning paradigm, meticulously designed to enhance its proficiency by guiding it with discriminative content. This innovative approach leverages diffusion sampling to infuse the latent space with discriminative content and introduces a content-preservation mechanism that retains valuable information across different scales, significantly improving its adeptness at identifying anomalies with limited time and space complexity. Our comprehensive evaluation of DiffGAD, conducted on six real-world and large-scale datasets with various metrics, demonstrated its exceptional performance.","url_abs":"https://arxiv.org/abs/2410.06549v2","url_pdf":"https://arxiv.org/pdf/2410.06549v2.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":"diffgad-a-diffusion-based-unsupervised-graph","repo_url":"https://github.com/fortunato-all/LJH_DiffGAD","is_official":1,"mentioned_in_paper":0,"mentioned_in_github":0,"framework":"pytorch","reach":{"status":"ok"}}],"tasks":[{"task_slug":"anomaly-detection","task_name":"Anomaly Detection"},{"task_slug":"graph-anomaly-detection","task_name":"Graph Anomaly Detection"}],"methods":[{"method_slug":"attention","method_name":"Attention"},{"method_slug":"diffusion","method_name":"Diffusion"},{"method_slug":"softmax","method_name":"Softmax"}],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2410.06549","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2410.06549"}},"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/fortunato-all/LJH_DiffGAD","reach":{"status":"ok"}}],"summary":{"ran_fixture":1,"ran_honours":1,"ran":2,"unverified":2},"by_repo_kind":{"official":{"samples":6,"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":6,"samples":[{"code_sha256_prefix":"df116dde4bb6ab3e","entry":"extract","repo":"fortunato-all/LJH_DiffGAD","repo_kind":"official","path":"utils.py","file_url":"https://github.com/fortunato-all/LJH_DiffGAD/blob/HEAD/utils.py","link_basis":"harvester_set","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":"invariant","behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"df116dde4bb6ab3e"}},{"code_sha256_prefix":"37a36e71b86103ce","entry":"linear_beta_schedule","repo":"fortunato-all/LJH_DiffGAD","repo_kind":"official","path":"utils.py","file_url":"https://github.com/fortunato-all/LJH_DiffGAD/blob/HEAD/utils.py","link_basis":"plan_row","language":"python","status":"ran_honours","verification_level":1,"contract_check":"HONOURS","metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"37a36e71b86103ce"}},{"code_sha256_prefix":"a064578e1e24a8f3","entry":"sample_dm","repo":"fortunato-all/LJH_DiffGAD","repo_kind":"official","path":"diffusion_model.py","file_url":"https://github.com/fortunato-all/LJH_DiffGAD/blob/HEAD/diffusion_model.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"a064578e1e24a8f3"}},{"code_sha256_prefix":"297d4375ed12cec8","entry":"sample_step","repo":"fortunato-all/LJH_DiffGAD","repo_kind":"official","path":"diffusion_model.py","file_url":"https://github.com/fortunato-all/LJH_DiffGAD/blob/HEAD/diffusion_model.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"297d4375ed12cec8"}},{"code_sha256_prefix":"15562744534ddf59","entry":"sample_step_free","repo":"fortunato-all/LJH_DiffGAD","repo_kind":"official","path":"diffusion_model.py","file_url":"https://github.com/fortunato-all/LJH_DiffGAD/blob/HEAD/diffusion_model.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":"15562744534ddf59"}},{"code_sha256_prefix":"da7581cdd1b2f7ae","entry":"softmax_with_temperature","repo":"fortunato-all/LJH_DiffGAD","repo_kind":"official","path":"utils.py","file_url":"https://github.com/fortunato-all/LJH_DiffGAD/blob/HEAD/utils.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":"da7581cdd1b2f7ae"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}