{"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/are-we-really-making-much-progress-in","title":"Unsupervised Graph Outlier Detection: Problem Revisit, New Insight, and Superior Method","arxiv_id":"2210.12941","date":"2022-10-24","proceeding":null,"authors":["Yihong Huang","Liping Wang","Fan Zhang","Xuemin Lin"],"abstract":"A large number of studies on Graph Outlier Detection (GOD) have emerged in recent years due to its wide applications, in which Unsupervised Node Outlier Detection (UNOD) on attributed networks is an important area. UNOD focuses on detecting two kinds of typical outliers in graphs: the structural outlier and the contextual outlier. Most existing works conduct experiments based on datasets with injected outliers. However, we find that the most widely-used outlier injection approach has a serious data leakage issue. By only utilizing such data leakage, a simple approach can achieve state-of-the-art performance in detecting outliers. In addition, we observe that existing algorithms have a performance drop with the mitigated data leakage issue. The other major issue is on balanced detection performance between the two types of outliers, which has not been considered by existing studies. In this paper, we analyze the cause of the data leakage issue in depth since the injection approach is a building block to advance UNOD. Moreover, we devise a novel variance-based model to detect structural outliers, which outperforms existing algorithms significantly and is more robust at kinds of injection settings. On top of this, we propose a new framework, Variance based Graph Outlier Detection (VGOD), which combines our variance-based model and attribute reconstruction model to detect outliers in a balanced way. Finally, we conduct extensive experiments to demonstrate the effectiveness and efficiency of VGOD. The results on 5 real-world datasets validate that VGOD achieves not only the best performance in detecting outliers but also a balanced detection performance between structural and contextual outliers.","url_abs":"https://arxiv.org/abs/2210.12941v3","url_pdf":"https://arxiv.org/pdf/2210.12941v3.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":"are-we-really-making-much-progress-in","repo_url":"https://github.com/goldennormal/vgod-github","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":null}],"tasks":[{"task_slug":"attribute","task_name":"Attribute"},{"task_slug":"graph-outlier-detection","task_name":"Graph Outlier Detection"},{"task_slug":"outlier-detection","task_name":"Outlier Detection"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2210.12941","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2210.12941"}},"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/goldennormal/vgod-github","reach":null}],"summary":{"ran_violates":3,"ran_draft_wrong":1,"ran_honours":2},"by_repo_kind":{"official":{"samples":5,"ran":5,"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":1,"samples":[{"code_sha256_prefix":"fb61617ae238643d","entry":"add_two_score","repo":"goldennormal/vgod-github","repo_kind":"official","path":"train_sep.py","file_url":"https://github.com/goldennormal/vgod-github/blob/HEAD/train_sep.py","link_basis":"first_harvest_node","language":"python","status":"ran_violates","verification_level":1,"contract_check":"VIOLATES","metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"fb61617ae238643d"}},{"code_sha256_prefix":"b680686be4407f53","entry":"add_two_score_std","repo":"goldennormal/vgod-github","repo_kind":"official","path":"train_sep.py","file_url":"https://github.com/goldennormal/vgod-github/blob/HEAD/train_sep.py","link_basis":"first_harvest_node","language":"python","status":"ran_violates","verification_level":1,"contract_check":"VIOLATES","metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"b680686be4407f53"}},{"code_sha256_prefix":"38ee1504357fe5d7","entry":"dense_to_sparse","repo":"goldennormal/vgod-github","repo_kind":"official","path":"inject_anomaly.py","file_url":"https://github.com/goldennormal/vgod-github/blob/HEAD/inject_anomaly.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"38ee1504357fe5d7"}},{"code_sha256_prefix":"ff0b149704b05b22","entry":"loss_var_fn","repo":"goldennormal/vgod-github","repo_kind":"official","path":"struct_ano_detect_groups.py","file_url":"https://github.com/goldennormal/vgod-github/blob/HEAD/struct_ano_detect_groups.py","link_basis":"first_harvest_node","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":"ff0b149704b05b22"}},{"code_sha256_prefix":"c1d6392f89c5e495","entry":"parse_index_file","repo":null,"repo_kind":null,"path":null,"file_url":null,"link_basis":"identical_code_first_harvested_elsewhere","language":"python","status":"ran_honours","verification_level":1,"contract_check":"HONOURS","metamorphic_tier":"well_formed","behaviour_fingerprint":false,"licence":null,"inline_ok":false,"mcp_get_code":{"code_sha256":"c1d6392f89c5e495"}},{"code_sha256_prefix":"8f0b433b12f9f26c","entry":"std_scale","repo":"goldennormal/vgod-github","repo_kind":"official","path":"train_sep.py","file_url":"https://github.com/goldennormal/vgod-github/blob/HEAD/train_sep.py","link_basis":"first_harvest_node","language":"python","status":"ran_violates","verification_level":1,"contract_check":"VIOLATES","metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"8f0b433b12f9f26c"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}