{"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/bob-bert-over-bert-for-training-persona-based","title":"BoB: BERT Over BERT for Training Persona-based Dialogue Models from Limited Personalized Data","arxiv_id":"2106.06169","date":"2021-06-11","proceeding":"ACL 2021 5","authors":["Haoyu Song","Yan Wang","Kaiyan Zhang","Wei-Nan Zhang","Ting Liu"],"abstract":"Maintaining consistent personas is essential for dialogue agents. Although tremendous advancements have been brought, the limited-scale of annotated persona-dense data are still barriers towards training robust and consistent persona-based dialogue models. In this work, we show how the challenges can be addressed by disentangling persona-based dialogue generation into two sub-tasks with a novel BERT-over-BERT (BoB) model. Specifically, the model consists of a BERT-based encoder and two BERT-based decoders, where one decoder is for response generation, and another is for consistency understanding. In particular, to learn the ability of consistency understanding from large-scale non-dialogue inference data, we train the second decoder in an unlikelihood manner. Under different limited data settings, both automatic and human evaluations demonstrate that the proposed model outperforms strong baselines in response quality and persona consistency.","url_abs":"https://arxiv.org/abs/2106.06169v2","url_pdf":"https://arxiv.org/pdf/2106.06169v2.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":"bob-bert-over-bert-for-training-persona-based","repo_url":"https://github.com/songhaoyu/BoB","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"jax","reach":{"status":"ok","spdx":"Apache-2.0"}}],"tasks":[{"task_slug":"decoder","task_name":"Decoder"},{"task_slug":"dialogue-generation","task_name":"Dialogue Generation"},{"task_slug":"response-generation","task_name":"Response Generation"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"syntology_url":"https://syntology.ai/paper/2106.06169","atlas_url":"https://app.syntology.ai/?focus=2106.06169","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2106.06169"}},"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":[{"provenance":"deterministic:regex_extraction","url":"https://github.com/songhaoyu/BoB","reach":{"status":"ok","spdx":"Apache-2.0"}}],"summary":{"ran_violates":1,"ran_draft_wrong":2,"unverified":9},"by_repo_kind":{"official":{"samples":12,"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":"874a42377fa0659f","entry":"invert_mask","repo":"songhaoyu/BoB","repo_kind":"official","path":"xlibs/modeling_bart.py","file_url":"https://github.com/songhaoyu/BoB/blob/HEAD/xlibs/modeling_bart.py","link_basis":"harvester_set","language":"python","status":"ran_violates","verification_level":1,"contract_check":"VIOLATES","metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"874a42377fa0659f"}},{"code_sha256_prefix":"f20c9b1aead27fea","entry":"make_padding_mask","repo":"songhaoyu/BoB","repo_kind":"official","path":"xlibs/modeling_bart.py","file_url":"https://github.com/songhaoyu/BoB/blob/HEAD/xlibs/modeling_bart.py","link_basis":"harvester_set","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":"deterministic","behaviour_fingerprint":true,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"f20c9b1aead27fea"}},{"code_sha256_prefix":"e00ccf7847d12b59","entry":"shift_tokens_right","repo":"songhaoyu/BoB","repo_kind":"official","path":"xlibs/modeling_bart.py","file_url":"https://github.com/songhaoyu/BoB/blob/HEAD/xlibs/modeling_bart.py","link_basis":"harvester_set","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"e00ccf7847d12b59"}},{"code_sha256_prefix":"f6c5033f9640b16f","entry":"corpus_bleu","repo":"songhaoyu/BoB","repo_kind":"official","path":"evaluations.py","file_url":"https://github.com/songhaoyu/BoB/blob/HEAD/evaluations.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"f6c5033f9640b16f"}},{"code_sha256_prefix":"d52e5869b9bdda18","entry":"modified_precision","repo":"songhaoyu/BoB","repo_kind":"official","path":"evaluations.py","file_url":"https://github.com/songhaoyu/BoB/blob/HEAD/evaluations.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"d52e5869b9bdda18"}},{"code_sha256_prefix":"82c47c8c6308eca1","entry":"pad_sequence","repo":"songhaoyu/BoB","repo_kind":"official","path":"evaluations.py","file_url":"https://github.com/songhaoyu/BoB/blob/HEAD/evaluations.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"82c47c8c6308eca1"}},{"code_sha256_prefix":"a4729bdc1b94786a","entry":"prepare_data_batch","repo":"songhaoyu/BoB","repo_kind":"official","path":"bertoverbert.py","file_url":"https://github.com/songhaoyu/BoB/blob/HEAD/bertoverbert.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"a4729bdc1b94786a"}},{"code_sha256_prefix":"771312b20c293c01","entry":"prepare_inference_batch","repo":"songhaoyu/BoB","repo_kind":"official","path":"bertoverbert.py","file_url":"https://github.com/songhaoyu/BoB/blob/HEAD/bertoverbert.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"771312b20c293c01"}},{"code_sha256_prefix":"9a18389a1aeae94a","entry":"read_convai2_split","repo":"songhaoyu/BoB","repo_kind":"official","path":"dataloader.py","file_url":"https://github.com/songhaoyu/BoB/blob/HEAD/dataloader.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"9a18389a1aeae94a"}},{"code_sha256_prefix":"21bf793899236407","entry":"read_ecdt2019_split","repo":"songhaoyu/BoB","repo_kind":"official","path":"dataloader.py","file_url":"https://github.com/songhaoyu/BoB/blob/HEAD/dataloader.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"21bf793899236407"}},{"code_sha256_prefix":"dd28ddd90347931e","entry":"read_nli_split","repo":"songhaoyu/BoB","repo_kind":"official","path":"dataloader.py","file_url":"https://github.com/songhaoyu/BoB/blob/HEAD/dataloader.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"dd28ddd90347931e"}},{"code_sha256_prefix":"2d2b420c01bf3bdc","entry":"set_tokenier_and_model","repo":"songhaoyu/BoB","repo_kind":"official","path":"bertoverbert.py","file_url":"https://github.com/songhaoyu/BoB/blob/HEAD/bertoverbert.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"2d2b420c01bf3bdc"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}