{"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/filternet-harnessing-frequency-filters-for","title":"FilterNet: Harnessing Frequency Filters for Time Series Forecasting","arxiv_id":"2411.01623","date":"2024-11-03","proceeding":null,"authors":["Kun Yi","Jingru Fei","Qi Zhang","Hui He","Shufeng Hao","Defu Lian","Wei Fan"],"abstract":"While numerous forecasters have been proposed using different network architectures, the Transformer-based models have state-of-the-art performance in time series forecasting. However, forecasters based on Transformers are still suffering from vulnerability to high-frequency signals, efficiency in computation, and bottleneck in full-spectrum utilization, which essentially are the cornerstones for accurately predicting time series with thousands of points. In this paper, we explore a novel perspective of enlightening signal processing for deep time series forecasting. Inspired by the filtering process, we introduce one simple yet effective network, namely FilterNet, built upon our proposed learnable frequency filters to extract key informative temporal patterns by selectively passing or attenuating certain components of time series signals. Concretely, we propose two kinds of learnable filters in the FilterNet: (i) Plain shaping filter, that adopts a universal frequency kernel for signal filtering and temporal modeling; (ii) Contextual shaping filter, that utilizes filtered frequencies examined in terms of its compatibility with input signals for dependency learning. Equipped with the two filters, FilterNet can approximately surrogate the linear and attention mappings widely adopted in time series literature, while enjoying superb abilities in handling high-frequency noises and utilizing the whole frequency spectrum that is beneficial for forecasting. Finally, we conduct extensive experiments on eight time series forecasting benchmarks, and experimental results have demonstrated our superior performance in terms of both effectiveness and efficiency compared with state-of-the-art methods. Code is available at this repository: https://github.com/aikunyi/FilterNet","url_abs":"https://arxiv.org/abs/2411.01623v2","url_pdf":"https://arxiv.org/pdf/2411.01623v2.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":"filternet-harnessing-frequency-filters-for","repo_url":"https://github.com/aikunyi/filternet","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":null}],"tasks":[{"task_slug":"time-series-1","task_name":"Time Series"},{"task_slug":"time-series-forecasting","task_name":"Time Series Forecasting"}],"methods":[{"method_slug":"attention","method_name":"Attention"},{"method_slug":"softmax","method_name":"Softmax"}],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2411.01623","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2411.01623"}},"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/MAZiqing/FEDformer","reach":null},{"provenance":"deterministic:regex_extraction","url":"https://github.com/aikunyi/FreTS","reach":{"status":"ok","spdx":"Apache-2.0"}},{"provenance":"deterministic:regex_extraction","url":"https://github.com/wanghq21/MICN","reach":{"status":"ok"}},{"provenance":"deterministic:regex_extraction","url":"https://github.com/ant-research/Pyraformer","reach":{"status":"ok","spdx":"Apache-2.0"}},{"provenance":"deterministic:regex_extraction","url":"https://github.com/yuqinie98/PatchTST","reach":{"status":"ok","spdx":"Apache-2.0"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/aikunyi/filternet","reach":null}],"summary":{"ran_honours":2,"ran":2,"unverified":16},"by_repo_kind":{"official":{"samples":2,"ran":2,"repositories":1},"found_in_text":{"samples":18,"ran":2,"repositories":3}},"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":5,"samples":[{"code_sha256_prefix":"3c40a10623118d49","entry":"cal_accuracy","repo":"aikunyi/FilterNet","repo_kind":"official","path":"utils/tools.py","file_url":"https://github.com/aikunyi/FilterNet/blob/HEAD/utils/tools.py","link_basis":"first_harvest_node","language":"python","status":"ran_honours","verification_level":2,"contract_check":"HONOURS","metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"3c40a10623118d49"}},{"code_sha256_prefix":"03d63d172032b256","entry":"CORR","repo":"wanghq21/MICN","repo_kind":"found_in_text","path":"utils/metrics.py","file_url":"https://github.com/wanghq21/MICN/blob/HEAD/utils/metrics.py","link_basis":"plan_row","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":"03d63d172032b256"}},{"code_sha256_prefix":"d320822331f5ef05","entry":"Model","repo":"aikunyi/FreTS","repo_kind":"found_in_text","path":"models/FreTS.py","file_url":"https://github.com/aikunyi/FreTS/blob/HEAD/models/FreTS.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"d320822331f5ef05"}},{"code_sha256_prefix":"a8ddfb9279c3224c","entry":"adjustment","repo":"aikunyi/FilterNet","repo_kind":"official","path":"utils/tools.py","file_url":"https://github.com/aikunyi/FilterNet/blob/HEAD/utils/tools.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":"a8ddfb9279c3224c"}},{"code_sha256_prefix":"75f44993b096bf76","entry":"MAE","repo":"wanghq21/MICN","repo_kind":"found_in_text","path":"utils/metrics.py","file_url":"https://github.com/wanghq21/MICN/blob/HEAD/utils/metrics.py","link_basis":"plan_row","language":"python","status":"unverified","verification_level":0,"contract_check":"VIOLATES","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"75f44993b096bf76"}},{"code_sha256_prefix":"b40a11875ebd0cd2","entry":"RSE","repo":"wanghq21/MICN","repo_kind":"found_in_text","path":"utils/metrics.py","file_url":"https://github.com/wanghq21/MICN/blob/HEAD/utils/metrics.py","link_basis":"plan_row","language":"python","status":"unverified","verification_level":0,"contract_check":"VIOLATES","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"b40a11875ebd0cd2"}},{"code_sha256_prefix":"2c381e7c9e1219be","entry":"dataset_parameters","repo":"ant-research/Pyraformer","repo_kind":"found_in_text","path":"long_range_main.py","file_url":"https://github.com/ant-research/Pyraformer/blob/HEAD/long_range_main.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"2c381e7c9e1219be"}},{"code_sha256_prefix":"f48b56feaccf9194","entry":"gen_covariates","repo":"ant-research/Pyraformer","repo_kind":"found_in_text","path":"data_loader.py","file_url":"https://github.com/ant-research/Pyraformer/blob/HEAD/data_loader.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"f48b56feaccf9194"}},{"code_sha256_prefix":"614ba542a3cd4f70","entry":"gen_covariates","repo":"ant-research/Pyraformer","repo_kind":"found_in_text","path":"preprocess_elect.py","file_url":"https://github.com/ant-research/Pyraformer/blob/HEAD/preprocess_elect.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"614ba542a3cd4f70"}},{"code_sha256_prefix":"18f1be69d346efd2","entry":"get_all_v","repo":"ant-research/Pyraformer","repo_kind":"found_in_text","path":"data_loader.py","file_url":"https://github.com/ant-research/Pyraformer/blob/HEAD/data_loader.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"18f1be69d346efd2"}},{"code_sha256_prefix":"308b15ff903370f8","entry":"get_k_q","repo":"ant-research/Pyraformer","repo_kind":"found_in_text","path":"pyraformer/graph_attention.py","file_url":"https://github.com/ant-research/Pyraformer/blob/HEAD/pyraformer/graph_attention.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"308b15ff903370f8"}},{"code_sha256_prefix":"5e73be8826ea1181","entry":"get_mask","repo":"ant-research/Pyraformer","repo_kind":"found_in_text","path":"pyraformer/Layers.py","file_url":"https://github.com/ant-research/Pyraformer/blob/HEAD/pyraformer/Layers.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"5e73be8826ea1181"}},{"code_sha256_prefix":"29fc69aabb4915c6","entry":"get_q_k","repo":"ant-research/Pyraformer","repo_kind":"found_in_text","path":"pyraformer/graph_attention.py","file_url":"https://github.com/ant-research/Pyraformer/blob/HEAD/pyraformer/graph_attention.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"29fc69aabb4915c6"}},{"code_sha256_prefix":"d9606e9421f56201","entry":"get_subsequent_mask","repo":"ant-research/Pyraformer","repo_kind":"found_in_text","path":"pyraformer/Layers.py","file_url":"https://github.com/ant-research/Pyraformer/blob/HEAD/pyraformer/Layers.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"d9606e9421f56201"}},{"code_sha256_prefix":"b688d662492743b0","entry":"prepare_dataloader","repo":"ant-research/Pyraformer","repo_kind":"found_in_text","path":"long_range_main.py","file_url":"https://github.com/ant-research/Pyraformer/blob/HEAD/long_range_main.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"b688d662492743b0"}},{"code_sha256_prefix":"dc7d51e598eebc2f","entry":"preprocess_elect","repo":"ant-research/Pyraformer","repo_kind":"found_in_text","path":"data_loader.py","file_url":"https://github.com/ant-research/Pyraformer/blob/HEAD/data_loader.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"dc7d51e598eebc2f"}},{"code_sha256_prefix":"c3f3fa218d235d6a","entry":"refer_points","repo":"ant-research/Pyraformer","repo_kind":"found_in_text","path":"pyraformer/Layers.py","file_url":"https://github.com/ant-research/Pyraformer/blob/HEAD/pyraformer/Layers.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"c3f3fa218d235d6a"}},{"code_sha256_prefix":"2dca999d536a049d","entry":"sample_mining_scheduler","repo":"ant-research/Pyraformer","repo_kind":"found_in_text","path":"long_range_main.py","file_url":"https://github.com/ant-research/Pyraformer/blob/HEAD/long_range_main.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"2dca999d536a049d"}},{"code_sha256_prefix":"ed90b1ac380a468e","entry":"time_features","repo":"wanghq21/MICN","repo_kind":"found_in_text","path":"utils/timefeatures.py","file_url":"https://github.com/wanghq21/MICN/blob/HEAD/utils/timefeatures.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":"ed90b1ac380a468e"}},{"code_sha256_prefix":"f8544563682146e5","entry":"time_features_from_frequency_str","repo":"wanghq21/MICN","repo_kind":"found_in_text","path":"utils/timefeatures.py","file_url":"https://github.com/wanghq21/MICN/blob/HEAD/utils/timefeatures.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":"MISDECLARED","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"f8544563682146e5"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}