{"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/words-in-motion-representation-engineering","title":"Words in Motion: Extracting Interpretable Control Vectors for Motion Transformers","arxiv_id":"2406.11624","date":"2024-06-17","proceeding":null,"authors":["Omer Sahin Tas","Royden Wagner"],"abstract":"Transformer-based models generate hidden states that are difficult to interpret. In this work, we analyze hidden states and modify them at inference, with a focus on motion forecasting. We use linear probing to analyze whether interpretable features are embedded in hidden states. Our experiments reveal high probing accuracy, indicating latent space regularities with functionally important directions. Building on this, we use the directions between hidden states with opposing features to fit control vectors. At inference, we add our control vectors to hidden states and evaluate their impact on predictions. Remarkably, such modifications preserve the feasibility of predictions. We further refine our control vectors using sparse autoencoders (SAEs). This leads to more linear changes in predictions when scaling control vectors. Our approach enables mechanistic interpretation as well as zero-shot generalization to unseen dataset characteristics with negligible computational overhead.","url_abs":"https://arxiv.org/abs/2406.11624v5","url_pdf":"https://arxiv.org/pdf/2406.11624v5.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":"words-in-motion-representation-engineering","repo_url":"https://github.com/kit-mrt/future-motion","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":0,"framework":"pytorch","reach":null}],"tasks":[{"task_slug":"motion-forecasting","task_name":"Motion Forecasting"},{"task_slug":"zero-shot-generalization","task_name":"Zero-shot Generalization"}],"methods":[{"method_slug":"focus","method_name":"Focus"}],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2406.11624","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2406.11624"}},"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":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/kit-mrt/future-motion","reach":null}],"summary":{"ran_fixture":1,"ran_violates":2},"by_repo_kind":{"official":{"samples":3,"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":3,"samples":[{"code_sha256_prefix":"70a0cd06fc024471","entry":"fit_control_vector","repo":"kit-mrt/future-motion","repo_kind":"official","path":"future_motion/utils/interpretability/control_vectors.py","file_url":"https://github.com/kit-mrt/future-motion/blob/HEAD/future_motion/utils/interpretability/control_vectors.py","link_basis":"first_harvest_node","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":"invariant","behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"70a0cd06fc024471"}},{"code_sha256_prefix":"a2cd46706a0391c7","entry":"flip_direction","repo":"kit-mrt/future-motion","repo_kind":"official","path":"future_motion/utils/interpretability/control_vectors.py","file_url":"https://github.com/kit-mrt/future-motion/blob/HEAD/future_motion/utils/interpretability/control_vectors.py","link_basis":"first_harvest_node","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":"a2cd46706a0391c7"}},{"code_sha256_prefix":"a1517a2b9eff9315","entry":"project_onto_direction","repo":"kit-mrt/future-motion","repo_kind":"official","path":"future_motion/utils/interpretability/control_vectors.py","file_url":"https://github.com/kit-mrt/future-motion/blob/HEAD/future_motion/utils/interpretability/control_vectors.py","link_basis":"first_harvest_node","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":"a1517a2b9eff9315"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}