{"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/unimts-unified-pre-training-for-motion-time","title":"UniMTS: Unified Pre-training for Motion Time Series","arxiv_id":"2410.19818","date":"2024-10-18","proceeding":null,"authors":["Xiyuan Zhang","Diyan Teng","Ranak Roy Chowdhury","Shuheng Li","Dezhi Hong","Rajesh K. Gupta","Jingbo Shang"],"abstract":"Motion time series collected from mobile and wearable devices such as smartphones and smartwatches offer significant insights into human behavioral patterns, with wide applications in healthcare, automation, IoT, and AR/XR due to their low-power, always-on nature. However, given security and privacy concerns, building large-scale motion time series datasets remains difficult, preventing the development of pre-trained models for human activity analysis. Typically, existing models are trained and tested on the same dataset, leading to poor generalizability across variations in device location, device mounting orientation and human activity type. In this paper, we introduce UniMTS, the first unified pre-training procedure for motion time series that generalizes across diverse device latent factors and activities. Specifically, we employ a contrastive learning framework that aligns motion time series with text descriptions enriched by large language models. This helps the model learn the semantics of time series to generalize across activities. Given the absence of large-scale motion time series data, we derive and synthesize time series from existing motion skeleton data with all-joint coverage. Spatio-temporal graph networks are utilized to capture the relationships across joints for generalization across different device locations. We further design rotation-invariant augmentation to make the model agnostic to changes in device mounting orientations. Our model shows exceptional generalizability across 18 motion time series classification benchmark datasets, outperforming the best baselines by 340% in the zero-shot setting, 16.3% in the few-shot setting, and 9.2% in the full-shot setting.","url_abs":"https://arxiv.org/abs/2410.19818v1","url_pdf":"https://arxiv.org/pdf/2410.19818v1.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":"unimts-unified-pre-training-for-motion-time","repo_url":"https://github.com/xiyuanzh/unimts","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok"}}],"tasks":[{"task_slug":"contrastive-learning","task_name":"Contrastive Learning"},{"task_slug":"time-series-1","task_name":"Time Series"},{"task_slug":"time-series-classification","task_name":"Time Series Classification"}],"methods":[{"method_slug":"contrastive-learning","method_name":"Contrastive Learning"}],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"syntology_url":"https://syntology.ai/paper/2410.19818","atlas_url":"https://app.syntology.ai/?focus=2410.19818","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2410.19818"}},"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/xiyuanzh/unimts","reach":{"status":"ok"}}],"summary":{"ran_draft_wrong":1,"ran_violates":1,"ran":1,"unverified":5},"by_repo_kind":{"official":{"samples":8,"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":8,"samples":[{"code_sha256_prefix":"c257ac36cba643a2","entry":"get_hop_distance","repo":"xiyuanzh/unimts","repo_kind":"official","path":"model.py","file_url":"https://github.com/xiyuanzh/unimts/blob/HEAD/model.py","link_basis":"plan_row","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":"well_formed","behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"c257ac36cba643a2"}},{"code_sha256_prefix":"8158f4435afa26b7","entry":"normalize_digraph","repo":"xiyuanzh/unimts","repo_kind":"official","path":"model.py","file_url":"https://github.com/xiyuanzh/unimts/blob/HEAD/model.py","link_basis":"plan_row","language":"python","status":"ran_violates","verification_level":1,"contract_check":"VIOLATES","metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"8158f4435afa26b7"}},{"code_sha256_prefix":"f3dfe2628c96a73d","entry":"normalize_undigraph","repo":"xiyuanzh/unimts","repo_kind":"official","path":"model.py","file_url":"https://github.com/xiyuanzh/unimts/blob/HEAD/model.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":"f3dfe2628c96a73d"}},{"code_sha256_prefix":"a7a90479c224d2be","entry":"augment_data","repo":"xiyuanzh/unimts","repo_kind":"official","path":"utils.py","file_url":"https://github.com/xiyuanzh/unimts/blob/HEAD/utils.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":"a7a90479c224d2be"}},{"code_sha256_prefix":"c1bf9f2229ec2d0e","entry":"load_api_key","repo":"xiyuanzh/unimts","repo_kind":"official","path":"text_aug.py","file_url":"https://github.com/xiyuanzh/unimts/blob/HEAD/text_aug.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":"c1bf9f2229ec2d0e"}},{"code_sha256_prefix":"cf62236765805405","entry":"plot_skeleton","repo":"xiyuanzh/unimts","repo_kind":"official","path":"utils.py","file_url":"https://github.com/xiyuanzh/unimts/blob/HEAD/utils.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":"cf62236765805405"}},{"code_sha256_prefix":"9b7182219787a9e4","entry":"select_samples","repo":"xiyuanzh/unimts","repo_kind":"official","path":"data.py","file_url":"https://github.com/xiyuanzh/unimts/blob/HEAD/data.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":"9b7182219787a9e4"}},{"code_sha256_prefix":"6178ce79acb84050","entry":"update_limits","repo":"xiyuanzh/unimts","repo_kind":"official","path":"utils.py","file_url":"https://github.com/xiyuanzh/unimts/blob/HEAD/utils.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":"6178ce79acb84050"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}