Enhancing Medical Dialogue Generation through Knowledge Refinement and Dynamic Prompt Adjustment¶
会议: ACL 2025 arXiv: 2506.10877 代码: GitHub 领域: 医学对话 关键词: medical dialogue system, knowledge refining, dynamic prompt, entity prediction, knowledge graph
一句话总结¶
提出 MedRef,一种融合知识精炼机制和动态 Prompt 调整策略的医学对话系统,通过隐变量过滤无关知识图谱三元组、实体-行为联合预测、以及三元组过滤器和示例选择器动态构建系统 Prompt,在 MedDG 和 KaMed 两个基准上取得 SOTA 性能。
研究背景与动机¶
-
领域现状: 医学对话系统(MDS)旨在支持医患多轮上下文感知对话,需要能追踪患者不断变化的健康状态,并使用医学领域知识进行准确回应。现有方法常从医学知识图谱(MedKG)检索相关实体来增强响应生成。
-
现有痛点:
- 检索增强生成(RAG)方法常引入不相关的知识,反而降低响应质量
- 大语言模型虽提升了流畅度,但对 Prompt 结构和内容高度敏感
-
现有 Prompt 设计缺乏根据实时患者信息动态调整的能力
-
核心矛盾: 从知识图谱检索的实体存在大量噪声,且同一 Prompt 模板难以适配不同患者的多样化就诊情况。
-
本文要解决什么: (1) 精炼检索到的知识以获得更准确的响应指导;(2) 动态调整系统 Prompt 以适配特定患者条件。
-
切入角度: 引入隐变量建模进行知识精炼(过滤无关三元组),结合实体-行为联合预测,然后通过 Triplet Filter 和 Demo Selector 动态构建多组件 Prompt。
-
核心idea一句话: 用 VAE 风格的隐变量精炼知识图谱检索结果,再通过动态调整 Prompt 的知识三元组和示例对话来提升医学对话的实体准确性和生成质量。
方法详解¶
整体框架¶
MedRef 包含三个阶段:(1) 编码对话历史并从 MedKG 检索相关实体子图;(2) 知识精炼 + 实体-行为联合预测;(3) 动态 Prompt 调整 + 大语言模型响应生成。
关键设计¶
-
输入表示: 使用 MedBERT 作为编码器骨干网络,编码患者话语和医生回复得到上下文表示 \(e_{\bar{c}_t}\)。从 MedKG 检索历史实体的一跳子图 \(G_{\bar{x}_t}^0\),通过 GAT(图注意力网络)编码得到子图表示 \(e_{\bar{x}_t}^{G_0}\)。同时编码对话行为表示 \(e_{\bar{a}_t}\)。
-
知识精炼机制(KRM): 引入隐变量 \(z_t\) 建模先验分布 \(p_\theta(z_t|\bar{c}_t, G_{\bar{x}_t}^0) = \mathcal{N}(\mu_\theta, \Sigma_\theta)\) 和后验分布 \(q_\phi(z_t|\bar{c}_t, G_{\bar{x}_t}^0, x_t) = \mathcal{N}(\mu_\phi, \Sigma_\phi)\)(后验利用了真实目标实体 \(x_t\) 的信息)。采样 \(z_t\) 后通过解码器并与原始实体嵌入残差连接:\(e_{\bar{x}_t}^G = f_{dec}(z_t) + e_{\bar{x}_t}^{G_0}\),从而过滤掉无关知识,保留与当前对话上下文相关的实体信息。
-
实体-行为联合预测: 利用交叉注意力模块 \(f_{ca}\) 建模上下文、精炼实体、历史行为之间的交互,经过 GRU 融合后通过线性层 + sigmoid 预测目标实体 \(\hat{x}_t = \sigma(W_x \tilde{e}_{\bar{x}_t}^G + b_x)\) 和目标行为 \(\hat{a}_t = \sigma(W_a \tilde{e}_{\bar{a}_t} + b_a)\)。实体和行为的高对应关系(如"症状"对应"症状询问","疾病"对应"诊断")使得联合预测非常合理。
-
Triplet Filter: 将检索到的一跳子图转化为三元组集合,统计实体出现频率并设定阈值 \(\tau\)(从 1 开始递增)进行迭代过滤:\(Tri_{\bar{x}_t}^\tau = \{(e_{head}, r, e_{tail}) | \min(\#e_{head}, \#e_{tail}) \geq \tau\}\),直到三元组数量不超过预定义最大值 \(M=25\)。
-
Demo Selector: 三步对齐选择最相关示例对话:(a) 实体对齐——按首轮话语实体匹配训练集对话;(b) 相似度对齐——编码后用余弦相似度选最近对话;(c) 跨度对齐——用滑动窗口 \(\xi=2\) 提取焦点片段作为最终示例。
-
动态 Prompt 结构: \(\mathcal{P} = [\mathcal{I}; \mathcal{H}; \mathcal{K}; \mathcal{E}]\),包含任务指令、历史详情(对话上下文+实体+行为)、证据详情(预测实体/行为+过滤后三元组)、相关示例。
损失函数/训练策略¶
两阶段训练:
第一阶段(实体-行为预测):\(\mathcal{L} = \lambda_x \mathcal{L}_x + \lambda_a \mathcal{L}_a + \lambda_{kl} \mathcal{L}_{kl}\),其中 \(\lambda_x=1, \lambda_a=0.05, \lambda_{kl}=0.05\)。\(\mathcal{L}_x\) 和 \(\mathcal{L}_a\) 为 BCE 损失,\(\mathcal{L}_{kl}\) 为先验/后验的 KL 散度。
第二阶段(响应生成):固定预测模块,用 LoRA (rank=8, \(\alpha\)=32) 微调 ChatGLM3-6B,最大化响应似然 \(\mathcal{L}_{gen} = -\sum_t \log \sum_k p_{gen}(r_{t_k}|r_{t_{<k}}, \mathcal{P})\)。
实验关键数据¶
主实验¶
| 方法 | MedDG B-1 | B-4 | E-F1 | R-1 | KaMed B-1 | B-4 | E-F1 | R-1 |
|---|---|---|---|---|---|---|---|---|
| DFMed | 41.74 | 22.48 | 21.54 | 28.90 | 39.59 | 20.30 | 21.33 | 27.67 |
| GPT-4o | 42.19 | 23.32 | 13.15 | 13.99 | 41.88 | 23.34 | 13.86 | 13.94 |
| ChatGLM3-6B | 33.16 | 17.97 | 17.43 | 29.27 | 32.03 | 16.68 | 20.56 | 28.02 |
| MedRef | 43.51 | 23.04 | 22.70 | 30.07 | 40.47 | 21.28 | 21.96 | 28.14 |
MedRef 在 MedDG 上全面领先:比 GPT-4o 在 ROUGE-1 上高 16.08%,Entity-F1 高 11.05%。
消融实验¶
| 变体 | MedDG B-1 | E-F1 | R-1 | KaMed B-1 | E-F1 | R-1 |
|---|---|---|---|---|---|---|
| MedRef (完整) | 43.51 | 22.70 | 30.07 | 40.47 | 21.96 | 28.14 |
| w/o KRM | 42.58 | 21.94 | 29.88 | 40.29 | 21.51 | 27.95 |
| w/o Demo | 41.80 | 21.84 | 29.69 | 39.07 | 20.09 | 27.35 |
| w/o Kg | 41.76 | 21.58 | 29.86 | 39.82 | 20.55 | 28.09 |
| E-A&Cxt only | 41.63 | 21.30 | 28.68 | 39.30 | 20.81 | 26.72 |
| Cxt only | 33.16 | 17.43 | 29.27 | 32.03 | 20.56 | 28.02 |
人工评估¶
| 方法 | 流畅度(FLU) | 知识准确性(KC) | 总体质量(OQ) |
|---|---|---|---|
| Ground-truth | 3.70 | 3.75 | 3.95 |
| DFMed | 3.42 | 3.57 | 3.65 |
| E-A&Cxt only | 2.91 | 3.05 | 3.14 |
| MedRef | 3.55 | 3.68 | 3.79 |
关键发现¶
- 知识精炼机制(KRM)是最重要的组件——移除后在所有指标上下降最大
- 盲目增加知识三元组数量反而有害:Weak Kg(不过滤直接随机取三元组)性能低于完整 MedRef
- 随机选择示例对话(Weak Demo)同样有害,说明 Demo Selector 的对齐过程至关重要
- GPT-4o 虽然 BLEU 分数高但 Entity-F1 很低(13.15 vs 22.70),生成冗长的 QA 风格回复导致实体准确性差
- MedRef 的人工评估分数最接近 Ground-truth
亮点与洞察¶
- VAE 风格的知识精炼是核心创新,用后验分布引导先验学会过滤无关检索知识,比简单的注意力过滤更有原则性
- 多组件动态 Prompt 设计思路值得借鉴:将不同类型的信息(指令、历史、证据、示例)模块化,每个模块可独立优化
- Triplet Filter 的频率迭代过滤简单有效——高频实体往往更核心,通过递增阈值自然筛选
- Demo Selector 的三步对齐(实体→相似度→跨度)既保证了语义相关性,又控制了 Prompt 长度
局限性/可改进方向¶
- MedRef 在 KaMed 上的 BLEU 分数略低于 HuatuoGPT-II 和 GPT-4o,作者解释为 KaMed 跨 100+ 科室太复杂,但也说明方法在超大知识范围时的局限
- 知识图谱依赖 CMeKG(中文医学知识图谱),英文场景迁移需要替换知识源
- 两阶段训练流程较复杂,预测模块和生成模块分开训练可能不是最优的端到端方案
- Demo Selector 需要预先组织好训练集对话的索引,在线推理时的检索效率未讨论
- 未评估在开放域医学问题上的泛化能力
相关工作与启发¶
- DFMed (Xu et al., 2023) 是最主要的比较对象,MedRef 在其基础上增加了知识精炼和动态 Prompt
- VRBot (Li et al., 2021) 建模了患者状态和医生行为,MedRef 进一步精炼了知识图谱检索
- MedPIR (Zhao et al., 2022) 召回关键信息作为前缀的思路与 MedRef 的 Prompt 设计有共通之处
- 启发:在知识图谱增强生成中,"检索后精炼"比"直接检索"更重要
评分¶
- 新颖性: ⭐⭐⭐⭐ — 知识精炼的 VAE 建模和三步 Demo 选择都有较好的原创性
- 实验充分度: ⭐⭐⭐⭐ — 两个数据集、完整消融、人工评估、案例分析
- 写作质量: ⭐⭐⭐⭐ — 结构清晰,公式推导完整,案例分析有说服力
- 价值: ⭐⭐⭐⭐ — 对医学对话系统有实际意义,代码已开源