{"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/timexer-empowering-transformers-for-time","title":"TimeXer: Empowering Transformers for Time Series Forecasting with Exogenous Variables","arxiv_id":"2402.19072","date":"2024-02-29","proceeding":null,"authors":["Yuxuan Wang","Haixu Wu","Jiaxiang Dong","Guo Qin","Haoran Zhang","Yong liu","Yunzhong Qiu","Jianmin Wang","Mingsheng Long"],"abstract":"Deep models have demonstrated remarkable performance in time series forecasting. However, due to the partially-observed nature of real-world applications, solely focusing on the target of interest, so-called endogenous variables, is usually insufficient to guarantee accurate forecasting. Notably, a system is often recorded into multiple variables, where the exogenous variables can provide valuable external information for endogenous variables. Thus, unlike well-established multivariate or univariate forecasting paradigms that either treat all the variables equally or ignore exogenous information, this paper focuses on a more practical setting: time series forecasting with exogenous variables. We propose a novel approach, TimeXer, to ingest external information to enhance the forecasting of endogenous variables. With deftly designed embedding layers, TimeXer empowers the canonical Transformer with the ability to reconcile endogenous and exogenous information, where patch-wise self-attention and variate-wise cross-attention are used simultaneously. Moreover, global endogenous tokens are learned to effectively bridge the causal information underlying exogenous series into endogenous temporal patches. Experimentally, TimeXer achieves consistent state-of-the-art performance on twelve real-world forecasting benchmarks and exhibits notable generality and scalability. Code is available at this repository: https://github.com/thuml/TimeXer.","url_abs":"https://arxiv.org/abs/2402.19072v4","url_pdf":"https://arxiv.org/pdf/2402.19072v4.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":"timexer-empowering-transformers-for-time","repo_url":"https://github.com/thuml/timexer","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok"}},{"paper_slug":"timexer-empowering-transformers-for-time","repo_url":"https://github.com/thuml/iTransformer","is_official":0,"mentioned_in_paper":0,"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":"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":"dense-connections","method_name":"Dense Connections"},{"method_slug":"dropout","method_name":"Dropout"},{"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":{"syntology_url":"https://syntology.ai/paper/2402.19072","atlas_url":"https://app.syntology.ai/?focus=2402.19072","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2402.19072"}},"developers":"https://syntology.ai/developers","read_at":"2026-09-25T09:33:49+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/thuml/iTransformer","reach":null},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/thuml/timexer","reach":{"status":"ok"}}],"summary":{"ran":1,"ran_honours":1,"ran_draft_wrong":1,"ran_fixture":2,"unverified":2},"by_repo_kind":{"official":{"samples":7,"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":7,"samples":[{"code_sha256_prefix":"2af0df7394e58e06","entry":"conv1d_fft","repo":"thuml/timexer","repo_kind":"official","path":"layers/ETSformer_EncDec.py","file_url":"https://github.com/thuml/timexer/blob/HEAD/layers/ETSformer_EncDec.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":"2af0df7394e58e06"}},{"code_sha256_prefix":"592ea8b254b006db","entry":"get_frequency_modes","repo":"thuml/timexer","repo_kind":"official","path":"layers/FourierCorrelation.py","file_url":"https://github.com/thuml/timexer/blob/HEAD/layers/FourierCorrelation.py","link_basis":"harvester_set","language":"python","status":"ran_honours","verification_level":1,"contract_check":"HONOURS","metamorphic_tier":"well_formed","behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"592ea8b254b006db"}},{"code_sha256_prefix":"f32036738135c8a8","entry":"get_phi_psi","repo":"thuml/timexer","repo_kind":"official","path":"layers/MultiWaveletCorrelation.py","file_url":"https://github.com/thuml/timexer/blob/HEAD/layers/MultiWaveletCorrelation.py","link_basis":"harvester_set","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"f32036738135c8a8"}},{"code_sha256_prefix":"4ef26472da51e3aa","entry":"legendreDer","repo":"thuml/timexer","repo_kind":"official","path":"layers/MultiWaveletCorrelation.py","file_url":"https://github.com/thuml/timexer/blob/HEAD/layers/MultiWaveletCorrelation.py","link_basis":"harvester_set","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"4ef26472da51e3aa"}},{"code_sha256_prefix":"a54c8c5c47c6a8b8","entry":"phi_","repo":"thuml/timexer","repo_kind":"official","path":"layers/MultiWaveletCorrelation.py","file_url":"https://github.com/thuml/timexer/blob/HEAD/layers/MultiWaveletCorrelation.py","link_basis":"harvester_set","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"a54c8c5c47c6a8b8"}},{"code_sha256_prefix":"fd61ceb881a058a2","entry":"get_mask","repo":"thuml/timexer","repo_kind":"official","path":"layers/Pyraformer_EncDec.py","file_url":"https://github.com/thuml/timexer/blob/HEAD/layers/Pyraformer_EncDec.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":"fd61ceb881a058a2"}},{"code_sha256_prefix":"05bdfb126191dbb0","entry":"refer_points","repo":"thuml/timexer","repo_kind":"official","path":"layers/Pyraformer_EncDec.py","file_url":"https://github.com/thuml/timexer/blob/HEAD/layers/Pyraformer_EncDec.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":"05bdfb126191dbb0"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}