{"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/atat-astronomical-transformer-for-time-series","title":"ATAT: Astronomical Transformer for time series And Tabular data","arxiv_id":"2405.03078","date":"2024-05-05","proceeding":null,"authors":["G. Cabrera-Vives","D. Moreno-Cartagena","N. Astorga","I. Reyes-Jainaga","F. Förster","P. Huijse","J. Arredondo","A. M. Muñoz Arancibia","A. Bayo","M. Catelan","P. A. Estévez","P. Sánchez-Sáez","A. Álvarez","P. Castellanos","P. Gallardo","A. Moya","D. Rodriguez-Mancini"],"abstract":"The advent of next-generation survey instruments, such as the Vera C. Rubin Observatory and its Legacy Survey of Space and Time (LSST), is opening a window for new research in time-domain astronomy. The Extended LSST Astronomical Time-Series Classification Challenge (ELAsTiCC) was created to test the capacity of brokers to deal with a simulated LSST stream. We describe ATAT, the Astronomical Transformer for time series And Tabular data, a classification model conceived by the ALeRCE alert broker to classify light-curves from next-generation alert streams. ATAT was tested in production during the first round of the ELAsTiCC campaigns. ATAT consists of two Transformer models that encode light curves and features using novel time modulation and quantile feature tokenizer mechanisms, respectively. ATAT was trained on different combinations of light curves, metadata, and features calculated over the light curves. We compare ATAT against the current ALeRCE classifier, a Balanced Hierarchical Random Forest (BHRF) trained on human-engineered features derived from light curves and metadata. When trained on light curves and metadata, ATAT achieves a macro F1-score of 82.9 +- 0.4 in 20 classes, outperforming the BHRF model trained on 429 features, which achieves a macro F1-score of 79.4 +- 0.1. The use of Transformer multimodal architectures, combining light curves and tabular data, opens new possibilities for classifying alerts from a new generation of large etendue telescopes, such as the Vera C. Rubin Observatory, in real-world brokering scenarios.","url_abs":"https://arxiv.org/abs/2405.03078v2","url_pdf":"https://arxiv.org/pdf/2405.03078v2.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":"links_only","authors_date_abstract":"arXiv metadata, CC0 1.0 (https://info.arxiv.org/help/license), from the Kaggle arXiv metadata snapshot of 2026-09-12"},"code_links":[{"paper_slug":"atat-astronomical-transformer-for-time-series","repo_url":"https://github.com/alercebroker/atat","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":0,"framework":"pytorch","reach":{"status":"ok","spdx":"Apache-2.0"}}],"tasks":[],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"syntology_url":"https://syntology.ai/paper/2405.03078","atlas_url":"https://app.syntology.ai/?focus=2405.03078","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2405.03078"}},"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/alercebroker/atat","reach":{"status":"ok","spdx":"Apache-2.0"}}],"summary":{"ran":12,"unverified":3},"by_repo_kind":{"official":{"samples":15,"ran":12,"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":"0beb91278b381f19","entry":"add_name_config","repo":"alercebroker/atat","repo_kind":"official","path":"layers/encoder_ellastic.py","file_url":"https://github.com/alercebroker/atat/blob/HEAD/layers/encoder_ellastic.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":"0beb91278b381f19"}},{"code_sha256_prefix":"26385af78390d8dc","entry":"add_name_config","repo":"alercebroker/atat","repo_kind":"official","path":"layers/time_modulator.py","file_url":"https://github.com/alercebroker/atat/blob/HEAD/layers/time_modulator.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":"26385af78390d8dc"}},{"code_sha256_prefix":"af12e0efd0ca5c63","entry":"add_sample_parser","repo":"alercebroker/atat","repo_kind":"official","path":"layers/encoder_ellastic.py","file_url":"https://github.com/alercebroker/atat/blob/HEAD/layers/encoder_ellastic.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":"af12e0efd0ca5c63"}},{"code_sha256_prefix":"a398f59f3bc6f12f","entry":"add_sample_parser","repo":"alercebroker/atat","repo_kind":"official","path":"layers/mha.py","file_url":"https://github.com/alercebroker/atat/blob/HEAD/layers/mha.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":"a398f59f3bc6f12f"}},{"code_sha256_prefix":"88a5c065620d59c9","entry":"add_sample_parser","repo":"alercebroker/atat","repo_kind":"official","path":"layers/time_modulator.py","file_url":"https://github.com/alercebroker/atat/blob/HEAD/layers/time_modulator.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":"88a5c065620d59c9"}},{"code_sha256_prefix":"3dc3c18308b9955e","entry":"best_model_dir_and_step","repo":"alercebroker/atat","repo_kind":"official","path":"loading.py","file_url":"https://github.com/alercebroker/atat/blob/HEAD/loading.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":"3dc3c18308b9955e"}},{"code_sha256_prefix":"52d10a10fb72fb9f","entry":"find_classes","repo":"alercebroker/atat","repo_kind":"official","path":"datasets.py","file_url":"https://github.com/alercebroker/atat/blob/HEAD/datasets.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":"52d10a10fb72fb9f"}},{"code_sha256_prefix":"89cd0c4b1573f937","entry":"mask_errors","repo":"alercebroker/atat","repo_kind":"official","path":"datasets.py","file_url":"https://github.com/alercebroker/atat/blob/HEAD/datasets.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"89cd0c4b1573f937"}},{"code_sha256_prefix":"48af8335729d239c","entry":"mask_mags","repo":"alercebroker/atat","repo_kind":"official","path":"datasets.py","file_url":"https://github.com/alercebroker/atat/blob/HEAD/datasets.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"48af8335729d239c"}},{"code_sha256_prefix":"e88492ba48e57733","entry":"obtain_valid_mask","repo":"alercebroker/atat","repo_kind":"official","path":"get_metrics.py","file_url":"https://github.com/alercebroker/atat/blob/HEAD/get_metrics.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":"e88492ba48e57733"}},{"code_sha256_prefix":"8aac396beeb74be1","entry":"trial_name_string","repo":"alercebroker/atat","repo_kind":"official","path":"loading.py","file_url":"https://github.com/alercebroker/atat/blob/HEAD/loading.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":"8aac396beeb74be1"}},{"code_sha256_prefix":"37e9f414d2e70de7","entry":"update_input_str","repo":"alercebroker/atat","repo_kind":"official","path":"loading.py","file_url":"https://github.com/alercebroker/atat/blob/HEAD/loading.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":"37e9f414d2e70de7"}},{"code_sha256_prefix":"256abfbef79e3d4a","entry":"get_tabular_data","repo":"alercebroker/atat","repo_kind":"official","path":"get_metrics.py","file_url":"https://github.com/alercebroker/atat/blob/HEAD/get_metrics.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":"256abfbef79e3d4a"}},{"code_sha256_prefix":"b9bc31cbaee4ee1e","entry":"load_data","repo":"alercebroker/atat","repo_kind":"official","path":"get_metrics.py","file_url":"https://github.com/alercebroker/atat/blob/HEAD/get_metrics.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":"b9bc31cbaee4ee1e"}},{"code_sha256_prefix":"d507fb2b0b68321a","entry":"obtain_optimizer","repo":"alercebroker/atat","repo_kind":"official","path":"layers/optimizers.py","file_url":"https://github.com/alercebroker/atat/blob/HEAD/layers/optimizers.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":"d507fb2b0b68321a"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}