{"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/improving-conversational-recommendation-4","title":"Improving Conversational Recommendation Systems via Counterfactual Data Simulation","arxiv_id":"2306.02842","date":"2023-06-05","proceeding":null,"authors":["Xiaolei Wang","Kun Zhou","Xinyu Tang","Wayne Xin Zhao","Fan Pan","Zhao Cao","Ji-Rong Wen"],"abstract":"Conversational recommender systems (CRSs) aim to provide recommendation services via natural language conversations. Although a number of approaches have been proposed for developing capable CRSs, they typically rely on sufficient training data for training. Since it is difficult to annotate recommendation-oriented dialogue datasets, existing CRS approaches often suffer from the issue of insufficient training due to the scarcity of training data. To address this issue, in this paper, we propose a CounterFactual data simulation approach for CRS, named CFCRS, to alleviate the issue of data scarcity in CRSs. Our approach is developed based on the framework of counterfactual data augmentation, which gradually incorporates the rewriting to the user preference from a real dialogue without interfering with the entire conversation flow. To develop our approach, we characterize user preference and organize the conversation flow by the entities involved in the dialogue, and design a multi-stage recommendation dialogue simulator based on a conversation flow language model. Under the guidance of the learned user preference and dialogue schema, the flow language model can produce reasonable, coherent conversation flows, which can be further realized into complete dialogues. Based on the simulator, we perform the intervention at the representations of the interacted entities of target users, and design an adversarial training method with a curriculum schedule that can gradually optimize the data augmentation strategy. Extensive experiments show that our approach can consistently boost the performance of several competitive CRSs, and outperform other data augmentation methods, especially when the training data is limited. Our code is publicly available at https://github.com/RUCAIBox/CFCRS.","url_abs":"https://arxiv.org/abs/2306.02842v1","url_pdf":"https://arxiv.org/pdf/2306.02842v1.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":"improving-conversational-recommendation-4","repo_url":"https://github.com/rucaibox/cfcrs","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":0,"framework":"pytorch","reach":null}],"tasks":[{"task_slug":"conversational-recommendation","task_name":"Conversational Recommendation"},{"task_slug":"data-augmentation","task_name":"Data Augmentation"},{"task_slug":"language-modeling","task_name":"Language Modeling"},{"task_slug":"language-modelling","task_name":"Language Modelling"},{"task_slug":"recommendation-systems","task_name":"Recommendation Systems"},{"task_slug":null,"task_name":"counterfactual"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2306.02842","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2306.02842"}},"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/rucaibox/cfcrs","reach":null}],"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":"5c14c68794ff713c","entry":"compute_log_prob","repo":"rucaibox/cfcrs","repo_kind":"official","path":"model/BARCOR/train_cf.py","file_url":"https://github.com/rucaibox/cfcrs/blob/HEAD/model/BARCOR/train_cf.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":"5c14c68794ff713c"}},{"code_sha256_prefix":"940d1f42c93c6bff","entry":"crs_model_evaluation","repo":"rucaibox/cfcrs","repo_kind":"official","path":"model/UniCRS/train_rec.py","file_url":"https://github.com/rucaibox/cfcrs/blob/HEAD/model/UniCRS/train_rec.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":"940d1f42c93c6bff"}},{"code_sha256_prefix":"c4cec3c0e2593e59","entry":"generate_flows","repo":"rucaibox/cfcrs","repo_kind":"official","path":"model/BARCOR/train_cf.py","file_url":"https://github.com/rucaibox/cfcrs/blob/HEAD/model/BARCOR/train_cf.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":"c4cec3c0e2593e59"}},{"code_sha256_prefix":"3e1951433bb993c8","entry":"generate_flows","repo":"rucaibox/cfcrs","repo_kind":"official","path":"model/KBRD/train_cf.py","file_url":"https://github.com/rucaibox/cfcrs/blob/HEAD/model/KBRD/train_cf.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":"3e1951433bb993c8"}},{"code_sha256_prefix":"0d23799e78aa2f78","entry":"predict_meta_paths","repo":"rucaibox/cfcrs","repo_kind":"official","path":"model/BARCOR/train_cf.py","file_url":"https://github.com/rucaibox/cfcrs/blob/HEAD/model/BARCOR/train_cf.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":"0d23799e78aa2f78"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}