{"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/covariance-neural-networks","title":"coVariance Neural Networks","arxiv_id":"2205.15856","date":"2022-05-31","proceeding":null,"authors":["Saurabh Sihag","Gonzalo Mateos","Corey McMillan","Alejandro Ribeiro"],"abstract":"Graph neural networks (GNN) are an effective framework that exploit inter-relationships within graph-structured data for learning. Principal component analysis (PCA) involves the projection of data on the eigenspace of the covariance matrix and draws similarities with the graph convolutional filters in GNNs. Motivated by this observation, we study a GNN architecture, called coVariance neural network (VNN), that operates on sample covariance matrices as graphs. We theoretically establish the stability of VNNs to perturbations in the covariance matrix, thus, implying an advantage over standard PCA-based data analysis approaches that are prone to instability due to principal components associated with close eigenvalues. Our experiments on real-world datasets validate our theoretical results and show that VNN performance is indeed more stable than PCA-based statistical approaches. Moreover, our experiments on multi-resolution datasets also demonstrate that VNNs are amenable to transferability of performance over covariance matrices of different dimensions; a feature that is infeasible for PCA-based approaches.","url_abs":"https://arxiv.org/abs/2205.15856v4","url_pdf":"https://arxiv.org/pdf/2205.15856v4.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":"covariance-neural-networks","repo_url":"https://github.com/sihags/VNN","is_official":1,"mentioned_in_paper":0,"mentioned_in_github":0,"framework":"pytorch","reach":{"status":"ok","spdx":"CC0-1.0"}}],"tasks":[],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2205.15856","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2205.15856"}},"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/sihags/VNN","reach":{"status":"ok","spdx":"CC0-1.0"}}],"summary":{"ran_fixture":1,"ran_honours":1,"unverified":8},"by_repo_kind":{"official":{"samples":10,"ran":2,"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":"6d0896b0e3e846ea","entry":"LSIGF","repo":"sihags/VNN","repo_kind":"official","path":"Utils/graphML.py","file_url":"https://github.com/sihags/VNN/blob/HEAD/Utils/graphML.py","link_basis":"harvester_set","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"CC0-1.0","inline_ok":true,"mcp_get_code":{"code_sha256":"6d0896b0e3e846ea"}},{"code_sha256_prefix":"1954ef73e2e3d18b","entry":"changeDataType","repo":"sihags/VNN","repo_kind":"official","path":"Utils/dataTools.py","file_url":"https://github.com/sihags/VNN/blob/HEAD/Utils/dataTools.py","link_basis":"harvester_set","language":"python","status":"ran_honours","verification_level":1,"contract_check":"HONOURS","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"CC0-1.0","inline_ok":true,"mcp_get_code":{"code_sha256":"1954ef73e2e3d18b"}},{"code_sha256_prefix":"fd4431f7eb5fea08","entry":"NVGF","repo":"sihags/VNN","repo_kind":"official","path":"Utils/graphML.py","file_url":"https://github.com/sihags/VNN/blob/HEAD/Utils/graphML.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"CC0-1.0","inline_ok":true,"mcp_get_code":{"code_sha256":"fd4431f7eb5fea08"}},{"code_sha256_prefix":"6a8e17a328f64d70","entry":"adjacencyToLaplacian","repo":"sihags/VNN","repo_kind":"official","path":"Utils/graphTools.py","file_url":"https://github.com/sihags/VNN/blob/HEAD/Utils/graphTools.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"CC0-1.0","inline_ok":true,"mcp_get_code":{"code_sha256":"6a8e17a328f64d70"}},{"code_sha256_prefix":"5e96daeb5f6baa95","entry":"invertTensorEW","repo":"sihags/VNN","repo_kind":"official","path":"Utils/dataTools.py","file_url":"https://github.com/sihags/VNN/blob/HEAD/Utils/dataTools.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"CC0-1.0","inline_ok":true,"mcp_get_code":{"code_sha256":"5e96daeb5f6baa95"}},{"code_sha256_prefix":"37d7a204626c1b97","entry":"normalizeAdjacency","repo":"sihags/VNN","repo_kind":"official","path":"Utils/graphTools.py","file_url":"https://github.com/sihags/VNN/blob/HEAD/Utils/graphTools.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"CC0-1.0","inline_ok":true,"mcp_get_code":{"code_sha256":"37d7a204626c1b97"}},{"code_sha256_prefix":"6af33610557672fd","entry":"normalizeData","repo":"sihags/VNN","repo_kind":"official","path":"Utils/dataTools.py","file_url":"https://github.com/sihags/VNN/blob/HEAD/Utils/dataTools.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"CC0-1.0","inline_ok":true,"mcp_get_code":{"code_sha256":"6af33610557672fd"}},{"code_sha256_prefix":"34108c985800f583","entry":"num2filename","repo":"sihags/VNN","repo_kind":"official","path":"Utils/miscTools.py","file_url":"https://github.com/sihags/VNN/blob/HEAD/Utils/miscTools.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"CC0-1.0","inline_ok":true,"mcp_get_code":{"code_sha256":"34108c985800f583"}},{"code_sha256_prefix":"3ea569d163fdaa83","entry":"plotGraph","repo":"sihags/VNN","repo_kind":"official","path":"Utils/graphTools.py","file_url":"https://github.com/sihags/VNN/blob/HEAD/Utils/graphTools.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"CC0-1.0","inline_ok":true,"mcp_get_code":{"code_sha256":"3ea569d163fdaa83"}},{"code_sha256_prefix":"718ceaf5f15442c3","entry":"spectralGF","repo":"sihags/VNN","repo_kind":"official","path":"Utils/graphML.py","file_url":"https://github.com/sihags/VNN/blob/HEAD/Utils/graphML.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"CC0-1.0","inline_ok":true,"mcp_get_code":{"code_sha256":"718ceaf5f15442c3"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}