{"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/text-r-2-text-ec-towards-large-recommender","title":"$\\text{R}^2\\text{ec}$: Towards Large Recommender Models with Reasoning","arxiv_id":"2505.16994","date":"2025-05-22","proceeding":null,"authors":["Runyang You","Yongqi Li","Xinyu Lin","Xin Zhang","Wenjie Wang","Wenjie Li","Liqiang Nie"],"abstract":"Large recommender models have extended LLMs as powerful recommenders via encoding or item generation, and recent breakthroughs in LLM reasoning synchronously motivate the exploration of reasoning in recommendation. Current studies usually position LLMs as external reasoning modules to yield auxiliary thought for augmenting conventional recommendation pipelines. However, such decoupled designs are limited in significant resource cost and suboptimal joint optimization. To address these issues, we propose \\name, a unified large recommender model with intrinsic reasoning capabilities. Initially, we reconceptualize the model architecture to facilitate interleaved reasoning and recommendation in the autoregressive process. Subsequently, we propose RecPO, a corresponding reinforcement learning framework that optimizes \\name\\ both the reasoning and recommendation capabilities simultaneously in a single policy update; RecPO introduces a fused reward scheme that solely leverages recommendation labels to simulate the reasoning capability, eliminating dependency on specialized reasoning annotations. Experiments on three datasets with various baselines verify the effectiveness of \\name, showing relative improvements of 68.67\\% in Hit@5 and 45.21\\% in NDCG@20. Code available at https://github.com/YRYangang/RRec.","url_abs":"https://arxiv.org/abs/2505.16994v1","url_pdf":"https://arxiv.org/pdf/2505.16994v1.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":"text-r-2-text-ec-towards-large-recommender","repo_url":"https://github.com/yryangang/rrec","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":0,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}}],"tasks":[],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2505.16994","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2505.16994"}},"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":"deterministic:regex_extraction","url":"https://github.com/YRYangang/RRec","reach":{"status":"ok","spdx":"MIT"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/yryangang/rrec","reach":{"status":"ok","spdx":"MIT"}}],"summary":{"unverified":10},"by_repo_kind":{"official":{"samples":10,"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":"0bc8c7e05959c420","entry":"calculate_metrics","repo":"YRYangang/RRec","repo_kind":"official","path":"trainers/utils.py","file_url":"https://github.com/YRYangang/RRec/blob/HEAD/trainers/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":"0bc8c7e05959c420"}},{"code_sha256_prefix":"55f0ea22ac586d34","entry":"format_timedelta","repo":"YRYangang/RRec","repo_kind":"official","path":"prompters/rrec_prompter.py","file_url":"https://github.com/YRYangang/RRec/blob/HEAD/prompters/rrec_prompter.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":"55f0ea22ac586d34"}},{"code_sha256_prefix":"4fa33edb27147e32","entry":"gao","repo":"YRYangang/RRec","repo_kind":"official","path":"preprocess.py","file_url":"https://github.com/YRYangang/RRec/blob/HEAD/preprocess.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":"4fa33edb27147e32"}},{"code_sha256_prefix":"97229b1b0e10f86d","entry":"get_compute_metrics","repo":"YRYangang/RRec","repo_kind":"official","path":"trainers/utils.py","file_url":"https://github.com/YRYangang/RRec/blob/HEAD/trainers/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":"97229b1b0e10f86d"}},{"code_sha256_prefix":"f3f3b1b89e4f7eca","entry":"get_item_info_str","repo":"YRYangang/RRec","repo_kind":"official","path":"prompters/rrec_prompter.py","file_url":"https://github.com/YRYangang/RRec/blob/HEAD/prompters/rrec_prompter.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":"f3f3b1b89e4f7eca"}},{"code_sha256_prefix":"94b32126f25204d7","entry":"get_tokenizer","repo":"YRYangang/RRec","repo_kind":"official","path":"trainers/utils.py","file_url":"https://github.com/YRYangang/RRec/blob/HEAD/trainers/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":"94b32126f25204d7"}},{"code_sha256_prefix":"770265a388d4b61e","entry":"item_info_to_df","repo":"YRYangang/RRec","repo_kind":"official","path":"preprocess.py","file_url":"https://github.com/YRYangang/RRec/blob/HEAD/preprocess.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":"770265a388d4b61e"}},{"code_sha256_prefix":"5e7e71e747850f1b","entry":"load_items","repo":"YRYangang/RRec","repo_kind":"official","path":"preprocess.py","file_url":"https://github.com/YRYangang/RRec/blob/HEAD/preprocess.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":"5e7e71e747850f1b"}},{"code_sha256_prefix":"8ea180f9e40cb5fb","entry":"obtain_prompts","repo":"YRYangang/RRec","repo_kind":"official","path":"prompters/prompts.py","file_url":"https://github.com/YRYangang/RRec/blob/HEAD/prompters/prompts.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":"8ea180f9e40cb5fb"}},{"code_sha256_prefix":"6de9d9e61296e1a1","entry":"timestamp2str","repo":"YRYangang/RRec","repo_kind":"official","path":"prompters/rrec_prompter.py","file_url":"https://github.com/YRYangang/RRec/blob/HEAD/prompters/rrec_prompter.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":"6de9d9e61296e1a1"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}