{"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/modeling-dynamic-user-preference-via-1","title":"Modeling Dynamic User Preference via Dictionary Learning for Sequential Recommendation","arxiv_id":"2204.00752","date":"2022-04-02","proceeding":"IEEE Transactions on Knowledge and Data Engineering 2021 1","authors":["Chao Chen","Dongsheng Li","Junchi Yan","Xiaokang Yang"],"abstract":"Capturing the dynamics in user preference is crucial to better predict user future behaviors because user preferences often drift over time. Many existing recommendation algorithms -- including both shallow and deep ones -- often model such dynamics independently, i.e., user static and dynamic preferences are not modeled under the same latent space, which makes it difficult to fuse them for recommendation. This paper considers the problem of embedding a user's sequential behavior into the latent space of user preferences, namely translating sequence to preference. To this end, we formulate the sequential recommendation task as a dictionary learning problem, which learns: 1) a shared dictionary matrix, each row of which represents a partial signal of user dynamic preferences shared across users; and 2) a posterior distribution estimator using a deep autoregressive model integrated with Gated Recurrent Unit (GRU), which can select related rows of the dictionary to represent a user's dynamic preferences conditioned on his/her past behaviors. Qualitative studies on the Netflix dataset demonstrate that the proposed method can capture the user preference drifts over time and quantitative studies on multiple real-world datasets demonstrate that the proposed method can achieve higher accuracy compared with state-of-the-art factorization and neural sequential recommendation methods. The code is available at https://github.com/cchao0116/S2PNM-TKDE2021.","url_abs":"https://arxiv.org/abs/2204.00752v1","url_pdf":"https://arxiv.org/pdf/2204.00752v1.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":"modeling-dynamic-user-preference-via-1","repo_url":"https://github.com/cchao0116/S2PNM-TKDE2021","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":0,"framework":"tf","reach":{"status":"ok","spdx":"MIT"}}],"tasks":[{"task_slug":"dictionary-learning","task_name":"Dictionary Learning"},{"task_slug":"sequential-recommendation","task_name":"Sequential Recommendation"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2204.00752","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2204.00752"}},"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/cchao0116/S2PNM-TKDE2021","reach":{"status":"ok","spdx":"MIT"}}],"summary":{"unverified":5},"by_repo_kind":{"official":{"samples":5,"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":"f7109cad8993a8eb","entry":"choice","repo":"cchao0116/S2PNM-TKDE2021","repo_kind":"official","path":"src/dataloader.py","file_url":"https://github.com/cchao0116/S2PNM-TKDE2021/blob/HEAD/src/dataloader.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":"f7109cad8993a8eb"}},{"code_sha256_prefix":"7370f90d82882f40","entry":"initializer","repo":"cchao0116/S2PNM-TKDE2021","repo_kind":"official","path":"src/module/sequential.py","file_url":"https://github.com/cchao0116/S2PNM-TKDE2021/blob/HEAD/src/module/sequential.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":"7370f90d82882f40"}},{"code_sha256_prefix":"5b095cb6e45831ff","entry":"layernorm","repo":"cchao0116/S2PNM-TKDE2021","repo_kind":"official","path":"src/model/Base.py","file_url":"https://github.com/cchao0116/S2PNM-TKDE2021/blob/HEAD/src/model/Base.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":"5b095cb6e45831ff"}},{"code_sha256_prefix":"7c8f71c269748452","entry":"layernorm","repo":"cchao0116/S2PNM-TKDE2021","repo_kind":"official","path":"src/module/normalize.py","file_url":"https://github.com/cchao0116/S2PNM-TKDE2021/blob/HEAD/src/module/normalize.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":"7c8f71c269748452"}},{"code_sha256_prefix":"82c59f1847606ad4","entry":"ranking","repo":"cchao0116/S2PNM-TKDE2021","repo_kind":"official","path":"src/util.py","file_url":"https://github.com/cchao0116/S2PNM-TKDE2021/blob/HEAD/src/util.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":"82c59f1847606ad4"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}