Discourse Coherence and Response-Guided Context Rewriting for Multi-Party Dialogue Generation¶
会议: ACL 2026
arXiv: 2604.06784
代码: 无
领域: 对话系统 / 多方对话
关键词: 多方对话, 上下文改写, 话语连贯性, 偏好学习, 动态自演化
一句话总结¶
本文提出 DRCR,首个将上下文改写引入多方对话生成的框架,使用话语连贯性和回复质量双反馈信号构建偏好数据,通过动态自演化学习让改写器和回复器在迭代训练中相互增强。
研究背景与动机¶
领域现状:多方对话生成(MDG)涉及多个角色和复杂的话语结构(跨越多个话语的发言关系),比双方对话困难得多。已有方法通过编码对话结构信息来辅助生成。
现有痛点:(1) 对话中的口语化表达和不完整话语(如指代、省略)损害了话语连贯性,进而影响对话结构的表示质量;(2) 先前方法直接用有缺陷的对话上下文编码结构,未尝试先改善上下文质量;(3) 在多方对话中这些问题更加突出——多个说话者增加了指代和省略的复杂度。
核心矛盾:对话结构编码的质量取决于上下文的连贯性,但原始上下文中的口语表达和省略破坏了连贯性。简单改写可能无法兼顾话语连贯性和下游回复生成的质量。
本文目标:通过对话上下文改写提升多方对话生成质量,同时保证改写既提高话语连贯性又有利于生成高质量回复。
切入角度:用话语连贯性质量和回复生成质量作为双反馈信号构建偏好数据,训练改写器生成既连贯又有利于回复的上下文。
核心 idea:改写器和回复器通过迭代训练相互增强——更好的改写产生更好的回复,更好的回复反馈引导更好的改写。
方法详解¶
整体框架¶
DRCR 把"先把口语化、带省略和指代的多方对话上下文改写干净,再去编码结构生成回复"这件事拆成改写器(Rewriter)和回复器(Responder)两个模块协同的闭环。整套流程分三个阶段推进:① 先训练一个受话者识别(Addressee Recognition)分类器,用它给上下文的话语连贯性打分;② 用话语连贯性与回复质量两路信号给改写器采样出的候选排序、构建偏好数据,并用 DPO 预热改写器和回复器;③ 让两个模块在动态自演化中靠彼此反馈轮流迭代,直到改写既"读得顺"又"对下游生成有用"。
%%{init: {'flowchart': {'rankSpacing': 24, 'nodeSpacing': 28, 'padding': 6, 'wrappingWidth': 400, 'subGraphTitleMargin': {'top': 8, 'bottom': 16}}}}%%
flowchart TD
IN["原始多方对话上下文<br/>(口语化 / 指代 / 省略)"] --> S1
subgraph S1["受话者识别(连贯性打分器)"]
direction TB
A1["RoBERTa 编码 + 双仿射注意力<br/>打分谁在回应谁"] --> A2["真实受话者预测概率取平均<br/>→ 连贯性分 c"]
end
S1 --> S2
subgraph S2["双反馈偏好数据构建"]
direction TB
B1["改写器树状自顶向下采样候选<br/>NLI 剪枝保语义"] --> B2["连贯性分 c(AR 代理)<br/>+ 回复质量分 r(回复器→BLEU/ROUGE)"]
B2 --> B3["变异系数自适应加权<br/>→ 改写分 z"]
B3 --> B4["取最高/最低分作 chosen/rejected<br/>DPO 预热 改写器 + 回复器"]
end
S2 --> S3
subgraph S3["动态自演化"]
direction TB
C1["改写器采样 → 回复器生成<br/>→ 双信号重新打分"] --> C2["构建新偏好数据<br/>DPO 更新两者,迭代至稳定"]
end
S3 --> OUT["生成回复 u(t+1)"]
关键设计¶
1. 受话者识别:把"话语连贯性"变成可打分的代理信号
多方对话里指代和省略密集,原始上下文一旦带着这些缺陷被直接编码,话语结构表示就会失真——可"连贯不连贯"本身难以量化。DRCR 借用一个观察:如果一段对话足够连贯,模型就能轻松判断每句话在回应谁。于是它先用 RoBERTa 编码上下文、再用双仿射注意力(biaffine attention)给每对发言打"谁是受话者"的分,训练出一个受话者识别(Addressee Recognition)分类器;之后把分类器赋予真实受话者的预测概率取平均,当作这段上下文的连贯性分数 \(c\)。这样"读得顺不顺"被转译成一个可比较的数值,成为后面给改写候选排序的连贯性反馈来源。
2. 双反馈偏好数据构建:连贯性与回复质量,按变异系数自适应加权
光有连贯性还不够——把上下文改通顺却丢了对生成关键的信息,等于白改。所以 DRCR 给每个改写候选打两路分:连贯性分 \(c\)(来自设计 1 的 AR 分类器)衡量上游可读性,回复质量分 \(r\)(让回复器在该候选上生成回复、与标准答案算 BLEU-1 + ROUGE-L)衡量下游可用性。候选本身由改写器"树状自顶向下采样"逐句生成,并用自然语言推理(NLI)剪掉偏离原意的分支。难点在于两路分该谁重——DRCR 用变异系数(Coefficient of Variation,标准差/均值)算自适应权重:哪一路在这批候选里波动大、区分度高,就给它更大权重,再 softmax 归一化融成改写分 \(z\)。最后取最高/最低分的候选作 chosen/rejected 偏好对,用 DPO 分别预热改写器与回复器。
3. 动态自演化:改写器与回复器互训迭代,摆脱对外部数据的依赖
预热阶段的偏好数据来自外部 teacher LLM,是静态的;可训练过程中两个模块的偏好会漂移,静态数据跟不上。DRCR 让两者轮流自演化——每一轮用当前改写器采样新候选、当前回复器生成回复,再按设计 1/2 的双信号重新打分,据此构建本轮新偏好数据去 DPO 更新两个模块;其间若某个改写候选的得分超过原始上下文,就直接用它替换原上下文以降噪。如此"更好的改写→更好的回复→更好的反馈→更好的改写"接成自增强循环,直到改写与回复质量都稳定。
损失函数 / 训练策略¶
改写器和回复器都采用 DPO 风格的偏好学习,偏好对由话语连贯性与回复质量双信号联合构建;迭代训练持续到改写和回复质量稳定为止。
实验关键数据¶
主实验¶
四个多方对话数据集上的 BLEU/ROUGE 分数
| 方法 | 数据集1 | 数据集2 | 数据集3 | 数据集4 |
|---|---|---|---|---|
| SS-MPC(先前SOTA) | 基线 | 基线 | 基线 | 基线 |
| LLM 直接生成 | 中等 | 中等 | 中等 | 中等 |
| DRCR | 超越 | 超越 | 超越 | 超越 |
消融实验¶
| 配置 | 效果 | 说明 |
|---|---|---|
| 仅话语连贯性反馈 | 提升但有限 | 缺少下游信号 |
| 仅回复质量反馈 | 提升 | 直接优化目标 |
| 双反馈 | 最优 | 两个信号互补 |
| 无自演化(单次训练) | 次优 | 缺少协同优化 |
| 有自演化 | 最优 | 迭代提升 |
关键发现¶
- DRCR 在全部四个多方对话数据集上超越先前 SOTA
- 双反馈信号优于单一信号——话语连贯性和回复质量提供互补视角
- 动态自演化的迭代训练显著优于单次训练——改写器和回复器的协同效应
- 上下文改写有效消除了指代和省略导致的理解障碍
亮点与洞察¶
- 首次将上下文改写引入多方对话生成——解决了被忽视的口语化问题
- 双反馈+自演化的设计形成了优雅的闭环优化
- 改写作为生成的前处理步骤,与现有生成方法正交,可叠加使用
局限与展望¶
- 改写增加了推理时的计算开销(额外的改写步骤)
- 自演化的迭代次数和收敛条件需要实验确定
- 仅在中文多方对话数据集上验证,跨语言效果待确认
- 改写可能引入信息偏差,尤其在涉及模糊意图的场景
相关工作与启发¶
- vs SS-MPC: SS-MPC 直接编码原始对话结构,DRCR 先改写再编码
- vs 查询改写: 搜索中的查询改写启发了对话上下文改写,但多方对话的结构更复杂
评分¶
- 新颖性: ⭐⭐⭐⭐ 上下文改写+双反馈自演化在多方对话中首次应用
- 实验充分度: ⭐⭐⭐⭐ 四个数据集、详细消融
- 写作质量: ⭐⭐⭐⭐ 框架描述清晰,示例直观
- 价值: ⭐⭐⭐⭐ 为多方对话生成提供了新的预处理范式