{"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/one2set-large-language-model-best-partners","title":"One2set + Large Language Model: Best Partners for Keyphrase Generation","arxiv_id":"2410.03421","date":"2024-10-04","proceeding":null,"authors":["Liangying Shao","Liang Zhang","Minlong Peng","Guoqi Ma","Hao Yue","Mingming Sun","Jinsong Su"],"abstract":"Keyphrase generation (KPG) aims to automatically generate a collection of phrases representing the core concepts of a given document. The dominant paradigms in KPG include one2seq and one2set. Recently, there has been increasing interest in applying large language models (LLMs) to KPG. Our preliminary experiments reveal that it is challenging for a single model to excel in both recall and precision. Further analysis shows that: 1) the one2set paradigm owns the advantage of high recall, but suffers from improper assignments of supervision signals during training; 2) LLMs are powerful in keyphrase selection, but existing selection methods often make redundant selections. Given these observations, we introduce a generate-then-select framework decomposing KPG into two steps, where we adopt a one2set-based model as generator to produce candidates and then use an LLM as selector to select keyphrases from these candidates. Particularly, we make two important improvements on our generator and selector: 1) we design an Optimal Transport-based assignment strategy to address the above improper assignments; 2) we model the keyphrase selection as a sequence labeling task to alleviate redundant selections. Experimental results on multiple benchmark datasets show that our framework significantly surpasses state-of-the-art models, especially in absent keyphrase prediction.","url_abs":"https://arxiv.org/abs/2410.03421v2","url_pdf":"https://arxiv.org/pdf/2410.03421v2.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":"one2set-large-language-model-best-partners","repo_url":"https://github.com/deeplearnxmu/kpg-setllm","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":0,"framework":"pytorch","reach":null}],"tasks":[{"task_slug":"keyphrase-generation","task_name":"Keyphrase Generation"},{"task_slug":"language-modeling","task_name":"Language Modeling"},{"task_slug":"language-modelling","task_name":"Language Modelling"},{"task_slug":"large-language-model","task_name":"Large Language Model"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2410.03421","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2410.03421"}},"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/DeepLearnXMU/KPG-SetLLM","reach":null}],"summary":{"ran":2,"ran_fixture":1,"ran_draft_wrong":2,"unverified":1},"by_repo_kind":{"official":{"samples":6,"ran":5,"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":6,"samples":[{"code_sha256_prefix":"8f2adc892dfd51c1","entry":"assign_for_one_instance_np","repo":"DeepLearnXMU/KPG-SetLLM","repo_kind":"official","path":"OTA_One2Set/pykp/utils/label_assign.py","file_url":"https://github.com/DeepLearnXMU/KPG-SetLLM/blob/HEAD/OTA_One2Set/pykp/utils/label_assign.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"8f2adc892dfd51c1"}},{"code_sha256_prefix":"47476f2ca16b3225","entry":"dynamic_k_strategy_np","repo":"DeepLearnXMU/KPG-SetLLM","repo_kind":"official","path":"OTA_One2Set/pykp/utils/label_assign.py","file_url":"https://github.com/DeepLearnXMU/KPG-SetLLM/blob/HEAD/OTA_One2Set/pykp/utils/label_assign.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"47476f2ca16b3225"}},{"code_sha256_prefix":"d60fb9f678e8b992","entry":"normalize_score_np","repo":"DeepLearnXMU/KPG-SetLLM","repo_kind":"official","path":"OTA_One2Set/pykp/utils/label_assign.py","file_url":"https://github.com/DeepLearnXMU/KPG-SetLLM/blob/HEAD/OTA_One2Set/pykp/utils/label_assign.py","link_basis":"first_harvest_node","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"d60fb9f678e8b992"}},{"code_sha256_prefix":"a9c571bd4ca27dd9","entry":"np_topk","repo":"DeepLearnXMU/KPG-SetLLM","repo_kind":"official","path":"OTA_One2Set/pykp/utils/label_assign.py","file_url":"https://github.com/DeepLearnXMU/KPG-SetLLM/blob/HEAD/OTA_One2Set/pykp/utils/label_assign.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"a9c571bd4ca27dd9"}},{"code_sha256_prefix":"466d6129fb137608","entry":"sinkhorn_iter_np","repo":"DeepLearnXMU/KPG-SetLLM","repo_kind":"official","path":"OTA_One2Set/pykp/utils/label_assign.py","file_url":"https://github.com/DeepLearnXMU/KPG-SetLLM/blob/HEAD/OTA_One2Set/pykp/utils/label_assign.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"466d6129fb137608"}},{"code_sha256_prefix":"10d224af1bae71fc","entry":"optimal_transport_assign","repo":"DeepLearnXMU/KPG-SetLLM","repo_kind":"official","path":"OTA_One2Set/pykp/utils/label_assign.py","file_url":"https://github.com/DeepLearnXMU/KPG-SetLLM/blob/HEAD/OTA_One2Set/pykp/utils/label_assign.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"10d224af1bae71fc"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}