{"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/variational-item-response-theory-fast","title":"Variational Item Response Theory: Fast, Accurate, and Expressive","arxiv_id":"2002.00276","date":"2020-02-01","proceeding":null,"authors":["Mike Wu","Richard L. Davis","Benjamin W. Domingue","Chris Piech","Noah Goodman"],"abstract":"Item Response Theory (IRT) is a ubiquitous model for understanding humans based on their responses to questions, used in fields as diverse as education, medicine and psychology. Large modern datasets offer opportunities to capture more nuances in human behavior, potentially improving test scoring and better informing public policy. Yet larger datasets pose a difficult speed / accuracy challenge to contemporary algorithms for fitting IRT models. We introduce a variational Bayesian inference algorithm for IRT, and show that it is fast and scaleable without sacrificing accuracy. Using this inference approach we then extend classic IRT with expressive Bayesian models of responses. Applying this method to five large-scale item response datasets from cognitive science and education yields higher log likelihoods and improvements in imputing missing data. The algorithm implementation is open-source, and easily usable.","url_abs":"https://arxiv.org/abs/2002.00276v2","url_pdf":"https://arxiv.org/pdf/2002.00276v2.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":"variational-item-response-theory-fast","repo_url":"https://github.com/mhw32/variational-item-response-theory-public","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}}],"tasks":[{"task_slug":"bayesian-inference","task_name":"Bayesian Inference"}],"methods":[{"method_slug":"speed","method_name":"SPEED"},{"method_slug":"test","method_name":"Test"}],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2002.00276","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2002.00276"}},"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/mhw32/variational-item-response-theory-public","reach":{"status":"ok","spdx":"MIT"}}],"summary":{"unverified":8},"by_repo_kind":{"listed":{"samples":8,"ran":0,"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":"f831ca6269735c91","entry":"artificially_mask_dataset","repo":"mhw32/variational-item-response-theory-public","repo_kind":"listed","path":"src/datasets.py","file_url":"https://github.com/mhw32/variational-item-response-theory-public/blob/HEAD/src/datasets.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"f831ca6269735c91"}},{"code_sha256_prefix":"4b64618b391ffc2f","entry":"bernoulli_log_pdf","repo":"mhw32/variational-item-response-theory-public","repo_kind":"listed","path":"src/utils.py","file_url":"https://github.com/mhw32/variational-item-response-theory-public/blob/HEAD/src/utils.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"4b64618b391ffc2f"}},{"code_sha256_prefix":"1621e43a1615fa8c","entry":"irt_model_1pl","repo":"mhw32/variational-item-response-theory-public","repo_kind":"listed","path":"src/pyro_core/models.py","file_url":"https://github.com/mhw32/variational-item-response-theory-public/blob/HEAD/src/pyro_core/models.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"1621e43a1615fa8c"}},{"code_sha256_prefix":"3bcb9998694c54d2","entry":"irt_model_2pl","repo":"mhw32/variational-item-response-theory-public","repo_kind":"listed","path":"src/pyro_core/models.py","file_url":"https://github.com/mhw32/variational-item-response-theory-public/blob/HEAD/src/pyro_core/models.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"3bcb9998694c54d2"}},{"code_sha256_prefix":"e411b7d66330b8e6","entry":"irt_model_3pl","repo":"mhw32/variational-item-response-theory-public","repo_kind":"listed","path":"src/pyro_core/models.py","file_url":"https://github.com/mhw32/variational-item-response-theory-public/blob/HEAD/src/pyro_core/models.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"e411b7d66330b8e6"}},{"code_sha256_prefix":"a3be65efed66ac82","entry":"masked_bernoulli_log_pdf","repo":"mhw32/variational-item-response-theory-public","repo_kind":"listed","path":"src/utils.py","file_url":"https://github.com/mhw32/variational-item-response-theory-public/blob/HEAD/src/utils.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"a3be65efed66ac82"}},{"code_sha256_prefix":"d60cbec4da59c869","entry":"masked_gaussian_log_pdf","repo":"mhw32/variational-item-response-theory-public","repo_kind":"listed","path":"src/utils.py","file_url":"https://github.com/mhw32/variational-item-response-theory-public/blob/HEAD/src/utils.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"d60cbec4da59c869"}},{"code_sha256_prefix":"65a0676bbacf26f9","entry":"sample_posterior_predictive","repo":"mhw32/variational-item-response-theory-public","repo_kind":"listed","path":"src/pyro_core/hmc.py","file_url":"https://github.com/mhw32/variational-item-response-theory-public/blob/HEAD/src/pyro_core/hmc.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"65a0676bbacf26f9"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}