{"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/imputer-sequence-modelling-via-imputation-and","title":"Imputer: Sequence Modelling via Imputation and Dynamic Programming","arxiv_id":"2002.08926","date":"2020-02-20","proceeding":"ICML 2020 1","authors":["William Chan","Chitwan Saharia","Geoffrey Hinton","Mohammad Norouzi","Navdeep Jaitly"],"abstract":"This paper presents the Imputer, a neural sequence model that generates output sequences iteratively via imputations. The Imputer is an iterative generative model, requiring only a constant number of generation steps independent of the number of input or output tokens. The Imputer can be trained to approximately marginalize over all possible alignments between the input and output sequences, and all possible generation orders. We present a tractable dynamic programming training algorithm, which yields a lower bound on the log marginal likelihood. When applied to end-to-end speech recognition, the Imputer outperforms prior non-autoregressive models and achieves competitive results to autoregressive models. On LibriSpeech test-other, the Imputer achieves 11.1 WER, outperforming CTC at 13.0 WER and seq2seq at 12.5 WER.","url_abs":"https://arxiv.org/abs/2002.08926v2","url_pdf":"https://arxiv.org/pdf/2002.08926v2.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":"imputer-sequence-modelling-via-imputation-and","repo_url":"https://github.com/rosinality/imputer-pytorch","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":null}],"tasks":[{"task_slug":"imputation","task_name":"Imputation"},{"task_slug":"speech-recognition","task_name":"Speech Recognition"},{"task_slug":"speech-recognition-1","task_name":"speech-recognition"}],"methods":[{"method_slug":"lstm","method_name":"LSTM"},{"method_slug":"seq2seq","method_name":"Seq2Seq"},{"method_slug":"sigmoid-activation","method_name":"Sigmoid Activation"},{"method_slug":"tanh-activation","method_name":"Tanh Activation"}],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"syntology_url":null,"atlas_url":"https://app.syntology.ai/?focus=2002.08926","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2002.08926"}},"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/rosinality/imputer-pytorch","reach":null}],"summary":{"ran_fixture":2,"ran_honours":1},"by_repo_kind":{"listed":{"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":0,"samples":[{"code_sha256_prefix":"3c9757a9030277c7","entry":"ctc_decode","repo":"rosinality/imputer-pytorch","repo_kind":"listed","path":"torch_imputer/imputer.py","file_url":"https://github.com/rosinality/imputer-pytorch/blob/HEAD/torch_imputer/imputer.py","link_basis":"first_harvest_node","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":"well_formed","behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"3c9757a9030277c7"}},{"code_sha256_prefix":"e527b150dcb1fcaf","entry":"get_alignment_path","repo":"rosinality/imputer-pytorch","repo_kind":"listed","path":"torch_imputer/imputer.py","file_url":"https://github.com/rosinality/imputer-pytorch/blob/HEAD/torch_imputer/imputer.py","link_basis":"first_harvest_node","language":"python","status":"ran_honours","verification_level":1,"contract_check":"HONOURS","metamorphic_tier":"invariant","behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"e527b150dcb1fcaf"}},{"code_sha256_prefix":"83d03fc368572d13","entry":"get_symbol","repo":"rosinality/imputer-pytorch","repo_kind":"listed","path":"example/asr/extract_best_align.py","file_url":"https://github.com/rosinality/imputer-pytorch/blob/HEAD/example/asr/extract_best_align.py","link_basis":"first_harvest_node","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":"well_formed","behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"83d03fc368572d13"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}