{"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/advancing-graph-convolutional-networks-via","title":"A General Graph Spectral Wavelet Convolution via Chebyshev Order Decomposition","arxiv_id":"2405.13806","date":"2024-05-22","proceeding":null,"authors":["Nian Liu","Xiaoxin He","Thomas Laurent","Francesco Di Giovanni","Michael M. Bronstein","Xavier Bresson"],"abstract":"Spectral graph convolution, an important tool of data filtering on graphs, relies on two essential decisions: selecting spectral bases for signal transformation and parameterizing the kernel for frequency analysis. While recent techniques mainly focus on standard Fourier transform and vector-valued spectral functions, they fall short in flexibility to model signal distributions over large spatial ranges, and capacity of spectral function. In this paper, we present a novel wavelet-based graph convolution network, namely WaveGC, which integrates multi-resolution spectral bases and a matrix-valued filter kernel. Theoretically, we establish that WaveGC can effectively capture and decouple short-range and long-range information, providing superior filtering flexibility, surpassing existing graph wavelet neural networks. To instantiate WaveGC, we introduce a novel technique for learning general graph wavelets by separately combining odd and even terms of Chebyshev polynomials. This approach strictly satisfies wavelet admissibility criteria. Our numerical experiments showcase the consistent improvements in both short-range and long-range tasks. This underscores the effectiveness of the proposed model in handling different scenarios. Our code is available at https://github.com/liun-online/WaveGC.","url_abs":"https://arxiv.org/abs/2405.13806v2","url_pdf":"https://arxiv.org/pdf/2405.13806v2.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":"advancing-graph-convolutional-networks-via","repo_url":"https://github.com/liun-online/wavegc","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":0,"framework":"pytorch","reach":{"status":"ok"}}],"tasks":[],"methods":[{"method_slug":"absolute-position-encodings","method_name":"Absolute Position Encodings"},{"method_slug":"adam","method_name":"Adam"},{"method_slug":"attention","method_name":"Attention"},{"method_slug":"bpe","method_name":"BPE"},{"method_slug":"convolution","method_name":"Convolution"},{"method_slug":"dense-connections","method_name":"Dense Connections"},{"method_slug":"dropout","method_name":"Dropout"},{"method_slug":"focus","method_name":"Focus"},{"method_slug":"label-smoothing","method_name":"Label Smoothing"},{"method_slug":"layer-normalization","method_name":"Layer Normalization"},{"method_slug":"linear-layer","method_name":"Linear Layer"},{"method_slug":"multi-head-attention","method_name":"Multi-Head Attention"},{"method_slug":"position-wise-feed-forward-layer","method_name":"Position-Wise Feed-Forward Layer"},{"method_slug":"residual-connection","method_name":"Residual Connection"},{"method_slug":"softmax","method_name":"Softmax"},{"method_slug":"transformer","method_name":"Transformer"}],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2405.13806","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2405.13806"}},"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":"deterministic:regex_extraction","url":"https://github.com/liun-online/WaveGC","reach":{"status":"ok"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/liun-online/wavegc","reach":{"status":"ok"}}],"summary":{"ran":3,"unverified":9},"by_repo_kind":{"official":{"samples":12,"ran":3,"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":12,"samples":[{"code_sha256_prefix":"a1d5bf35ac91c30c","entry":"accuracy_SBM","repo":"liun-online/WaveGC","repo_kind":"official","path":"WaveGC_graph/graphgps/logger.py","file_url":"https://github.com/liun-online/WaveGC/blob/HEAD/WaveGC_graph/graphgps/logger.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":"a1d5bf35ac91c30c"}},{"code_sha256_prefix":"9dc78001d467fc9d","entry":"eval_spearmanr","repo":"liun-online/WaveGC","repo_kind":"official","path":"WaveGC_graph/graphgps/logger.py","file_url":"https://github.com/liun-online/WaveGC/blob/HEAD/WaveGC_graph/graphgps/logger.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"9dc78001d467fc9d"}},{"code_sha256_prefix":"1bb331bf70a78136","entry":"get_final_pretrained_ckpt","repo":"liun-online/WaveGC","repo_kind":"official","path":"WaveGC_graph/graphgps/finetuning.py","file_url":"https://github.com/liun-online/WaveGC/blob/HEAD/WaveGC_graph/graphgps/finetuning.py","link_basis":"harvester_set","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":"1bb331bf70a78136"}},{"code_sha256_prefix":"8697ff02800c4640","entry":"Wave_Conv","repo":"liun-online/wavegc","repo_kind":"official","path":"WaveGC_graph/graphgps/layer/wave_layer.py","file_url":"https://github.com/liun-online/wavegc/blob/HEAD/WaveGC_graph/graphgps/layer/wave_layer.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":"8697ff02800c4640"}},{"code_sha256_prefix":"3db4474abe13fdee","entry":"init_model_from_pretrained","repo":"liun-online/WaveGC","repo_kind":"official","path":"WaveGC_graph/graphgps/finetuning.py","file_url":"https://github.com/liun-online/WaveGC/blob/HEAD/WaveGC_graph/graphgps/finetuning.py","link_basis":"harvester_set","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":"3db4474abe13fdee"}},{"code_sha256_prefix":"c98a702be0660ac9","entry":"is_seed","repo":"liun-online/WaveGC","repo_kind":"official","path":"WaveGC_graph/graphgps/agg_runs.py","file_url":"https://github.com/liun-online/WaveGC/blob/HEAD/WaveGC_graph/graphgps/agg_runs.py","link_basis":"harvester_set","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":"c98a702be0660ac9"}},{"code_sha256_prefix":"438635c08adfe2aa","entry":"is_split","repo":"liun-online/WaveGC","repo_kind":"official","path":"WaveGC_graph/graphgps/agg_runs.py","file_url":"https://github.com/liun-online/WaveGC/blob/HEAD/WaveGC_graph/graphgps/agg_runs.py","link_basis":"harvester_set","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":"438635c08adfe2aa"}},{"code_sha256_prefix":"40e98e1ecbf39f34","entry":"join_list","repo":"liun-online/WaveGC","repo_kind":"official","path":"WaveGC_graph/graphgps/agg_runs.py","file_url":"https://github.com/liun-online/WaveGC/blob/HEAD/WaveGC_graph/graphgps/agg_runs.py","link_basis":"harvester_set","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":"40e98e1ecbf39f34"}},{"code_sha256_prefix":"d59c374db2cf64ae","entry":"l1_losses","repo":"liun-online/WaveGC","repo_kind":"official","path":"WaveGC_graph/graphgps/loss/l1.py","file_url":"https://github.com/liun-online/WaveGC/blob/HEAD/WaveGC_graph/graphgps/loss/l1.py","link_basis":"harvester_set","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":"d59c374db2cf64ae"}},{"code_sha256_prefix":"d796cdea5889c847","entry":"load_pretrained_model_cfg","repo":"liun-online/WaveGC","repo_kind":"official","path":"WaveGC_node/graphgps/finetuning.py","file_url":"https://github.com/liun-online/WaveGC/blob/HEAD/WaveGC_node/graphgps/finetuning.py","link_basis":"harvester_set","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":"d796cdea5889c847"}},{"code_sha256_prefix":"ff6311bdcedb5d01","entry":"load_pretrained_model_cfg","repo":"liun-online/WaveGC","repo_kind":"official","path":"WaveGC_graph/graphgps/finetuning.py","file_url":"https://github.com/liun-online/WaveGC/blob/HEAD/WaveGC_graph/graphgps/finetuning.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":"ff6311bdcedb5d01"}},{"code_sha256_prefix":"f1cbbbc857d8b871","entry":"multilabel_cross_entropy","repo":"liun-online/WaveGC","repo_kind":"official","path":"WaveGC_graph/graphgps/loss/multilabel_classification_loss.py","file_url":"https://github.com/liun-online/WaveGC/blob/HEAD/WaveGC_graph/graphgps/loss/multilabel_classification_loss.py","link_basis":"harvester_set","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":"f1cbbbc857d8b871"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}