{"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/towards-an-appropriate-query-key-and-value","title":"Towards an Appropriate Query, Key, and Value Computation for Knowledge Tracing","arxiv_id":"2002.07033","date":"2020-02-14","proceeding":null,"authors":["Youngduck Choi","Youngnam Lee","Junghyun Cho","Jineon Baek","Byung-soo Kim","Yeongmin Cha","Dongmin Shin","Chan Bae","Jaewe Heo"],"abstract":"Knowledge tracing, the act of modeling a student's knowledge through learning activities, is an extensively studied problem in the field of computer-aided education. Although models with attention mechanism have outperformed traditional approaches such as Bayesian knowledge tracing and collaborative filtering, they share two limitations. Firstly, the models rely on shallow attention layers and fail to capture complex relations among exercises and responses over time. Secondly, different combinations of queries, keys and values for the self-attention layer for knowledge tracing were not extensively explored. Usual practice of using exercises and interactions (exercise-response pairs) as queries and keys/values respectively lacks empirical support. In this paper, we propose a novel Transformer based model for knowledge tracing, SAINT: Separated Self-AttentIve Neural Knowledge Tracing. SAINT has an encoder-decoder structure where exercise and response embedding sequence separately enter the encoder and the decoder respectively, which allows to stack attention layers multiple times. To the best of our knowledge, this is the first work to suggest an encoder-decoder model for knowledge tracing that applies deep self-attentive layers to exercises and responses separately. The empirical evaluations on a large-scale knowledge tracing dataset show that SAINT achieves the state-of-the-art performance in knowledge tracing with the improvement of AUC by 1.8% compared to the current state-of-the-art models.","url_abs":"https://arxiv.org/abs/2002.07033v5","url_pdf":"https://arxiv.org/pdf/2002.07033v5.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":"towards-an-appropriate-query-key-and-value","repo_url":"https://github.com/Machine-Learning-for-Everyone-ML4E/CoP-Code-of-Papers","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"tf","reach":{"status":"ok","spdx":"MIT"}},{"paper_slug":"towards-an-appropriate-query-key-and-value","repo_url":"https://github.com/Shivanandmn/Knowledge-Tracing-SAINT","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok"}},{"paper_slug":"towards-an-appropriate-query-key-and-value","repo_url":"https://github.com/Shivanandmn/SAINT_plus-Knowledge-Tracing-","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok"}},{"paper_slug":"towards-an-appropriate-query-key-and-value","repo_url":"https://github.com/arshadshk/SAINT-pytorch","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":null},{"paper_slug":"towards-an-appropriate-query-key-and-value","repo_url":"https://github.com/bcaitech1/p4-dkt-no_caffeine_no_gain","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok"}}],"tasks":[{"task_slug":"collaborative-filtering","task_name":"Collaborative Filtering"},{"task_slug":"decoder","task_name":"Decoder"},{"task_slug":"knowledge-tracing","task_name":"Knowledge Tracing"}],"methods":[{"method_slug":"absolute-position-encodings","method_name":"Absolute Position Encodings"},{"method_slug":"adam","method_name":"Adam"},{"method_slug":"attention","method_name":"Attention"},{"method_slug":"bpe","method_name":"BPE"},{"method_slug":"dense-connections","method_name":"Dense Connections"},{"method_slug":"dropout","method_name":"Dropout"},{"method_slug":"label-smoothing","method_name":"Label Smoothing"},{"method_slug":"layer-normalization","method_name":"Layer Normalization"},{"method_slug":"linear-layer","method_name":"Linear Layer"},{"method_slug":"multi-head-attention","method_name":"Multi-Head Attention"},{"method_slug":"position-wise-feed-forward-layer","method_name":"Position-Wise Feed-Forward Layer"},{"method_slug":"relu","method_name":"ReLU"},{"method_slug":"residual-connection","method_name":"Residual Connection"},{"method_slug":"softmax","method_name":"Softmax"},{"method_slug":"transformer","method_name":"Transformer"}],"datasets_introduced":[],"methods_introduced":[],"results":[{"leaderboard":"/sota/knowledge-tracing-on-ednet","task":"Knowledge Tracing","dataset":"EdNet","model":"SAINT","rank_in_archive_order":2,"of":8,"metrics":{"AUC":"0.7811","Acc":"73.68"},"uses_additional_data":false}],"syntology":{"syntology_url":"https://syntology.ai/paper/2002.07033","atlas_url":"https://app.syntology.ai/?focus=2002.07033","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2002.07033"}},"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/Shivanandmn/SAINT_plus-Knowledge-Tracing-","reach":{"status":"ok"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/bcaitech1/p4-dkt-no_caffeine_no_gain","reach":{"status":"ok"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/arshadshk/SAINT-pytorch","reach":null},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/Shivanandmn/Knowledge-Tracing-SAINT","reach":{"status":"ok"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/Machine-Learning-for-Everyone-ML4E/CoP-Code-of-Papers","reach":{"status":"ok","spdx":"MIT"}}],"summary":{"ran_draft_wrong":1,"ran_violates":1,"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":3,"samples":[{"code_sha256_prefix":"891b8ebab395921f","entry":"get_clones","repo":"arshadshk/SAINT-pytorch","repo_kind":"listed","path":"saint.py","file_url":"https://github.com/arshadshk/SAINT-pytorch/blob/HEAD/saint.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"891b8ebab395921f"}},{"code_sha256_prefix":"bd0f5539ff1d6cbe","entry":"get_mask","repo":"arshadshk/SAINT-pytorch","repo_kind":"listed","path":"saint.py","file_url":"https://github.com/arshadshk/SAINT-pytorch/blob/HEAD/saint.py","link_basis":"first_harvest_node","language":"python","status":"ran_violates","verification_level":1,"contract_check":"VIOLATES","metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"bd0f5539ff1d6cbe"}},{"code_sha256_prefix":"31d0bea1c5a0c6d5","entry":"get_pos","repo":"arshadshk/SAINT-pytorch","repo_kind":"listed","path":"saint.py","file_url":"https://github.com/arshadshk/SAINT-pytorch/blob/HEAD/saint.py","link_basis":"first_harvest_node","language":"python","status":"ran_honours","verification_level":1,"contract_check":"HONOURS","metamorphic_tier":"well_formed","behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"31d0bea1c5a0c6d5"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}