{"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/dialog2flow-pre-training-soft-contrastive","title":"Dialog2Flow: Pre-training Soft-Contrastive Action-Driven Sentence Embeddings for Automatic Dialog Flow Extraction","arxiv_id":"2410.18481","date":"2024-10-24","proceeding":null,"authors":["Sergio Burdisso","Srikanth Madikeri","Petr Motlicek"],"abstract":"Efficiently deriving structured workflows from unannotated dialogs remains an underexplored and formidable challenge in computational linguistics. Automating this process could significantly accelerate the manual design of workflows in new domains and enable the grounding of large language models in domain-specific flowcharts, enhancing transparency and controllability. In this paper, we introduce Dialog2Flow (D2F) embeddings, which differ from conventional sentence embeddings by mapping utterances to a latent space where they are grouped according to their communicative and informative functions (i.e., the actions they represent). D2F allows for modeling dialogs as continuous trajectories in a latent space with distinct action-related regions. By clustering D2F embeddings, the latent space is quantized, and dialogs can be converted into sequences of region/action IDs, facilitating the extraction of the underlying workflow. To pre-train D2F, we build a comprehensive dataset by unifying twenty task-oriented dialog datasets with normalized per-turn action annotations. We also introduce a novel soft contrastive loss that leverages the semantic information of these actions to guide the representation learning process, showing superior performance compared to standard supervised contrastive loss. Evaluation against various sentence embeddings, including dialog-specific ones, demonstrates that D2F yields superior qualitative and quantitative results across diverse domains.","url_abs":"https://arxiv.org/abs/2410.18481v2","url_pdf":"https://arxiv.org/pdf/2410.18481v2.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":"dialog2flow-pre-training-soft-contrastive","repo_url":"https://github.com/idiap/dialog2flow","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}}],"tasks":[{"task_slug":"representation-learning","task_name":"Representation Learning"},{"task_slug":"sentence","task_name":"Sentence"},{"task_slug":"sentence-embeddings","task_name":"Sentence Embeddings"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2410.18481","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2410.18481"}},"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/idiap/dialog2flow","reach":{"status":"ok","spdx":"MIT"}}],"summary":{"unverified":8},"by_repo_kind":{"official":{"samples":8,"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":"a842549ac19ff514","entry":"evaluate_fewshot","repo":"idiap/dialog2flow","repo_kind":"official","path":"evaluate_embeddings.py","file_url":"https://github.com/idiap/dialog2flow/blob/HEAD/evaluate_embeddings.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":"a842549ac19ff514"}},{"code_sha256_prefix":"be8c8402ca5408aa","entry":"get_json_dialog","repo":"idiap/dialog2flow","repo_kind":"official","path":"extract_trajectories.py","file_url":"https://github.com/idiap/dialog2flow/blob/HEAD/extract_trajectories.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":"be8c8402ca5408aa"}},{"code_sha256_prefix":"68dee554610ab445","entry":"get_speaker","repo":"idiap/dialog2flow","repo_kind":"official","path":"build_graph.py","file_url":"https://github.com/idiap/dialog2flow/blob/HEAD/build_graph.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":"68dee554610ab445"}},{"code_sha256_prefix":"7e11dca1a9d0e42f","entry":"get_tsv_dialog","repo":"idiap/dialog2flow","repo_kind":"official","path":"extract_trajectories.py","file_url":"https://github.com/idiap/dialog2flow/blob/HEAD/extract_trajectories.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":"7e11dca1a9d0e42f"}},{"code_sha256_prefix":"59965ca0b0756d16","entry":"get_txt_dialog","repo":"idiap/dialog2flow","repo_kind":"official","path":"extract_trajectories.py","file_url":"https://github.com/idiap/dialog2flow/blob/HEAD/extract_trajectories.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":"59965ca0b0756d16"}},{"code_sha256_prefix":"d45e4728624e8517","entry":"get_utterance","repo":"idiap/dialog2flow","repo_kind":"official","path":"build_graph.py","file_url":"https://github.com/idiap/dialog2flow/blob/HEAD/build_graph.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":"d45e4728624e8517"}},{"code_sha256_prefix":"f03e7cf8618fa953","entry":"node2turn","repo":"idiap/dialog2flow","repo_kind":"official","path":"build_graph.py","file_url":"https://github.com/idiap/dialog2flow/blob/HEAD/build_graph.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":"f03e7cf8618fa953"}},{"code_sha256_prefix":"6ff4e09ade5b648a","entry":"sphere","repo":"idiap/dialog2flow","repo_kind":"official","path":"voronoi_plot.py","file_url":"https://github.com/idiap/dialog2flow/blob/HEAD/voronoi_plot.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":"6ff4e09ade5b648a"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}