{"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/arxiv-2508-18142","title":"Mirroring Users: Towards Building Preference-aligned User Simulator with User Feedback in Recommendation","arxiv_id":"2508.18142","date":"2025-08-25","proceeding":null,"authors":["Tianjun Wei","Huizhong Guo","Yingpeng Du","Zhu Sun","Huang Chen","Dongxia Wang","Jie Zhang"],"abstract":"User simulation is increasingly vital to develop and evaluate recommender systems (RSs). While Large Language Models (LLMs) offer promising avenues to simulate user behavior, they often struggle with the absence of specific task alignment required for RSs and the efficiency demands of large-scale simulation. A vast yet underutilized resource for enhancing this alignment is the extensive user feedback inherent in RSs, but leveraging it is challenging due to its ambiguity, noise and massive volume, which hinders efficient preference alignment. To overcome these hurdles, we introduce a novel data construction framework that leverages user feedback in RSs with advanced LLM capabilities to generate high-quality simulation data. Our framework unfolds in two key phases: (1) using LLMs to generate decision-making processes as explanatory rationales on simulation samples, thereby reducing ambiguity; and (2) data distillation based on uncertainty estimation and behavior sampling to efficiently filter the most informative, denoised samples. Accordingly, we fine-tune lightweight LLMs, as user simulators, using such high-quality dataset with corresponding decision-making processes. Extensive experiments confirm that our framework significantly boosts the alignment with human preferences and the in-domain reasoning capabilities of the fine-tuned LLMs, providing more insightful and interpretable signals for RS interaction. We believe our work, together with publicly available developed framework, high-quality mixed-domain dataset, and fine-tuned LLM checkpoints, will advance the RS community and offer valuable insights for broader human-centric AI research. Our code is available at https://github.com/Joinn99/UserMirrorer.","url_abs":"https://arxiv.org/abs/2508.18142","url_pdf":"https://arxiv.org/pdf/2508.18142","source":{"archive":null,"snapshot":"2025-07-28","note":"not in the Papers with Code archive (frozen at the snapshot)","row_kind":"graph","title_abstract_authors_date":"arXiv metadata, CC0 1.0 (https://info.arxiv.org/help/license)"},"code_links":[],"tasks":[],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"syntology_url":"https://syntology.ai/paper/2508.18142","atlas_url":"https://app.syntology.ai/?focus=2508.18142","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2508.18142"}},"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":[{"mentioned_in_github":null,"is_official":null,"provenance":"deterministic:regex_extraction","mentioned_in_paper":null,"url":"https://github.com/Joinn99/UserMirrorer","reach":null}],"summary":{"ran_draft_wrong":3,"unverified":1},"by_repo_kind":{"found_in_text":{"samples":4,"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":"f1ea53e4510d8222","entry":"convert_action_list","repo":"Joinn99/UserMirrorer","repo_kind":"found_in_text","path":"usermirrorer/data_filtering.py","file_url":"https://github.com/Joinn99/UserMirrorer/blob/HEAD/usermirrorer/data_filtering.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"f1ea53e4510d8222"}},{"code_sha256_prefix":"0defb1bec1523703","entry":"enumerate_action_list","repo":"Joinn99/UserMirrorer","repo_kind":"found_in_text","path":"usermirrorer/data_filtering.py","file_url":"https://github.com/Joinn99/UserMirrorer/blob/HEAD/usermirrorer/data_filtering.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"0defb1bec1523703"}},{"code_sha256_prefix":"a97684e2170c0281","entry":"texts_to_messages","repo":"Joinn99/UserMirrorer","repo_kind":"found_in_text","path":"usermirrorer/data_filtering.py","file_url":"https://github.com/Joinn99/UserMirrorer/blob/HEAD/usermirrorer/data_filtering.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"a97684e2170c0281"}},{"code_sha256_prefix":"a5b0869f39f6c414","entry":"create_final_dataset","repo":"Joinn99/UserMirrorer","repo_kind":"found_in_text","path":"usermirrorer/data_filtering.py","file_url":"https://github.com/Joinn99/UserMirrorer/blob/HEAD/usermirrorer/data_filtering.py","link_basis":"first_harvest_node","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":"a5b0869f39f6c414"}}]},"arxiv_metadata":{"licence":"arXiv metadata, CC0 1.0 (https://info.arxiv.org/help/license)","fields":["title","abstract","authors","date"],"primary_category":"cs.HC","source":"arxiv_api"},"syntology_extracted_results":null}