Unifying Continuous and Discrete Text Diffusion with Non-simultaneous Diffusion Processes¶
会议: ACL 2025
arXiv: 2505.22165
代码: 无
领域: 文本生成
关键词: 文本扩散模型, Poisson扩散过程, 非同步去噪, 时间预测器, 连续离散统一
一句话总结¶
提出 NeoDiff,通过引入"外在时间"(句子级扩散进度)和"内在时间"(token 级扩散进度)的双时间框架,利用 Poisson 过程为每个 token 独立分配细粒度噪声水平,并用上下文感知的时间预测器自适应调节去噪进度,统一了离散和连续文本扩散模型的理论框架,在机器翻译、复述、文本简化等多个任务上超越现有扩散基线。
研究背景与动机¶
- 领域现状:文本扩散模型分为两大类:
- 离散扩散(如 D3PM、Absorbing Diffusion):在分类分布上独立地对每个 token 做状态转移,不同 token 可以有不同的扩散进度,但噪声控制粗糙(要么保留、要么完全腐蚀)
- 连续扩散(如 DiffuSeq、Difformer):将 token 映射到连续空间加高斯噪声,噪声细粒度但所有 token 统一加噪水平
- 现有痛点:
- 离散扩散的粗糙性限制了多步生成的收益——token 只有"未腐蚀"和"已腐蚀"两种状态,中间过渡不够精细
- 连续扩散的统一噪声使所有 token 处于相同噪声水平,无法让低噪声 token 作为上下文帮助恢复高噪声 token
- 现有改进方法(如 DiffuSeq-V2 的 mask 混合、AR-Diffusion 的单调噪声)未完全实现 token 级细粒度噪声控制
- 核心矛盾:需要一种既像连续扩散那样具有细粒度噪声控制、又像离散扩散那样允许不同 token 有不同扩散进度的统一框架。
- 本文要解决什么?
- 如何在连续空间中实现 token 级别的非同步扩散
- 如何在反向去噪过程中利用上下文信息自适应调整每个 token 的去噪速度
- 如何优化推理时的时间调度以提升生成质量
- 切入角度:将扩散的时间变量泛化为两个维度——外在时间 \(t\)(全局进度)和内在时间 \(\tau\)(token 级进度)。内在时间通过 Poisson 过程随机化,自然实现了 token 级非同步扩散。
- 核心 idea 一句话:用双时间框架(外在+内在时间)统一离散和连续扩散,前向过程用 Poisson 过程分配 token 级噪声,反向过程用时间预测器根据语义上下文自适应调节去噪。
方法详解¶
整体框架¶
输入文本 → 词嵌入映射到连续空间 \(\mathbf{z}_0\) → Poisson 前向过程:每个 token 独立采样内在时间 \(\tau_t\),按 \(\tau_t\) 加对应强度的高斯噪声 → 反向去噪:Encoder-Decoder Transformer 预测 \(\hat{\mathbf{z}}_0\) + 时间预测器预测下一步各 token 的 \(\tau_{t'}\) → Rounding 回离散 token → 输出文本。整个过程用优化后的外在时间调度进行推理。
关键设计¶
- 双时间统一框架:
- 做什么:将现有离散/连续扩散模型纳入统一理论
- 核心思路:
- 外在时间 \(t \in [0,1]\):整个句子的全局扩散进度
- 内在时间 \(\tau_t \in [0,1]\):每个 token 的独立扩散进度
- 离散扩散 = \(\tau_t \in \{0, 1\}\)(二值随机函数)
- 连续扩散 = \(\tau_t = t\)(确定性函数,所有 token 同步)
- DiffuSeq-V2 = \(\tau_t = \max(t + \tau_{\text{mask}}(t), 1)\)(混合)
- NeoDiff = \(\tau_t \in [0,1]\) 是 \(t\) 的连续随机函数
-
设计动机:通过泛化时间变量,建立了涵盖所有现有方法的统一理论,NeoDiff 是最 general 的实例化
-
Poisson 前向扩散过程:
- 做什么:为每个 token 独立采样细粒度的扩散进度
- 核心思路:
- 引入离散状态函数 \(s_t \in \{0, 1, ..., s_{\max}\}\),对应从无噪到最大噪声
- \(s_t\) 的演化遵循 Poisson 过程:\(s_t \sim \text{Poisson}(\lambda(t))\),其中 \(\lambda(t) = ks_{\max}t\)
- 归一化并裁剪:\(\tau_t = \text{Clip}(s_t / s_{\max}, 1)\)
- 方差控制的关键问题:当 \(s_{\max}\) 很大时,\(\text{CV} = 1/\sqrt{s_{\max}} \to 0\),所有 token 的 \(\tau\) 趋同,退化为连续扩散
- 解决方案:方差重缩放变换 \(\tau_t = \text{Clip}(\text{Round}(\frac{s_t - \lambda(t)}{\sqrt{\lambda(t)}} \sigma(t) + \lambda(t)), s_{\max}) / s_{\max}\),设 \(\sigma(t) = \lambda(t)\) 保证离散特性与 \(s_{\max}\) 无关
-
设计动机:Poisson 过程天然适合建模"跳跃型"的状态转移,且参数单一(\(\lambda\))、分布可解析,是连接离散跳跃和连续渐变的自然桥梁
-
上下文感知的时间预测器:
- 做什么:在反向过程中根据语义上下文自适应调节每个 token 的去噪速度
- 核心思路:
- 不简单镜像前向过程(\(p_\theta(\tau_{t'}|\mathbf{z}_t, \tau_t) = q(\tau_{t'})\)),而是显式建模 \(p_\theta(\tau_{t'}|\mathbf{z}_t, \tau_t)\)
- 输入:生成的预测 \(\hat{\mathbf{z}}_0\)(而非 \(\mathbf{z}_t\)!),目标时间 \(t'\),条件句子嵌入 \(\mathbf{x}\)
- 用交叉熵训练,将 \(\tau\) 的预测作为离散分类问题
- 伪标签策略:不直接用 \(\tau_{t'}\) 作标签(会引入偏差),而是用 \(\hat{\mathbf{z}}_0\) 的重构损失排名通过 Poisson 逆 CDF 映射得到伪标签——损失越大的 token 分配更高的 \(\tau\)(更多噪声需要更慢地去噪)
-
设计动机:让 token 级去噪速度与生成质量动态关联——已经生成好的 token 先完成去噪,难的 token 保留更多噪声慢慢恢复
-
贝叶斯优化的外在时间调度:
- 做什么:优化推理时的全局时间步序列
- 核心思路:将 \(\{t_1, t_2, ..., t_K\}\) 作为连续变量,用贝叶斯优化在验证集上搜索最优调度
- 设计动机:不同任务需要不同的时间分配策略
损失函数 / 训练策略¶
- 总损失 \(\mathcal{L} = \mathcal{L}_z + \mathcal{L}_\tau + \mathcal{L}_{\text{anchor}}\)
- \(\mathcal{L}_z = \|\hat{\mathbf{z}}_0 - \mathbf{z}_0\|^2\)(预测损失)
- \(\mathcal{L}_\tau = \text{KL}(q(\tau_{t'}) \| p_\theta(\tau_{t'}|\mathbf{z}_t, \tau_t))\)(时间预测损失)
- \(\mathcal{L}_{\text{anchor}} = -\log p_\theta(y|\hat{\mathbf{z}}_0)\)(锚定损失,防止嵌入空间坍塌)
实验关键数据¶
主实验(机器翻译 BLEU)¶
| 模型 | 类型 | Beam | IWSLT14 | WMT14 | WMT16 |
|---|---|---|---|---|---|
| Absorbing | 离散 | 5 | 28.32 | 21.62 | 30.41 |
| SeqDiffuSeq | 连续 | 10 | 30.03 | 24.24 | 26.17 |
| Difformer | 连续 | 10 | 32.09 | 23.80 | 30.93 |
| DiNoiSer | 连续 | 50 | 31.61 | 24.26 | 31.08 |
| NeoDiff | 混合 | 10 | 33.14 | 25.28 | 32.31 |
NeoDiff 在所有翻译任务上超越所有 baseline,在更小 beam size 下即可超越 baseline 的最大 beam size。
其他任务(BLEU)¶
| 模型 | QQP(复述) | Quasar-T(问题生成) | Wiki-Auto(文本简化) |
|---|---|---|---|
| Difformer (b=10) | 30.43 | 16.66 | 40.77 |
| NeoDiff (b=10) | 30.87 | 18.35 | 41.33 |
消融实验¶
| 配置 | IWSLT BLEU | WMT14 BLEU |
|---|---|---|
| NeoDiff (完整) | 33.14 | 25.28 |
| w/o Poisson (统一\(\tau=t\)) | 32.09 (-1.05) | 24.24 (-1.04) |
| w/o 时间预测器 | 32.22 (-0.92) | 24.41 (-0.87) |
| w/o 贝叶斯调度 | 32.31 (-0.83) | 24.74 (-0.54) |
| w/o 方差重缩放 | 32.58 (-0.56) | — |
关键发现¶
- Poisson 扩散是最关键的组件:去掉后退化到标准连续扩散(Difformer),BLEU 下降约 1 个点
- 时间预测器的贡献仅次于 Poisson 过程:自适应去噪速度比固定镜像前向过程更有效
- 方差重缩放的必要性:防止 \(s_{\max} \to \infty\) 时退化为连续扩散
- 贝叶斯优化的时间调度持续提供额外收益,说明最优时间分配是任务相关的
- LLM 评估(DeepSeek-V3)也确认 NeoDiff 在准确性、流畅性、创造性等维度全面领先
亮点与洞察¶
- 双时间框架的理论优雅性:通过泛化时间变量,统一了离散、连续、混合三类扩散模型,为未来研究提供了统一的理论基础。这种"参数化统一"的思路可迁移到其他需要统一不同核心方法论的领域
- Poisson + 方差重缩放的设计精巧:Poisson 过程自然捕捉"跳跃"(离散性)+ 方差重缩放保证分辨率与 \(s_{\max}\) 解耦,解决了细粒度与多样性之间的矛盾
- 伪标签策略是重要的技术创新:用生成质量(重构损失排名)→ Poisson 逆 CDF → 时间标签的映射链,将"哪些 token 生成得好"转化为"哪些 token 应该先完成去噪",实现了生成质量引导的自适应去噪
局限性 / 可改进方向¶
- 实验规模偏小(Transformer base 级别),未在大模型(如基于 LLaMA 的文本扩散)上验证
- 生成质量仍落后于自回归模型(Transformer b=5 在 QQP 上 30.83 vs NeoDiff b=10 的 30.87)
- 贝叶斯优化的时间调度需要额外的验证集评估开销
- 时间预测器增加了模型复杂度和训练成本
- 未探索与更先进的连续扩散技术(如 flow matching)的结合
相关工作与启发¶
- vs Difformer:NeoDiff 在 Difformer 基础上引入 token 级非同步扩散,是本质性的改进而非增量优化,BLEU 提升 1-2 个点
- vs DiffuSeq-V2:DiffuSeq-V2 用 [MASK] token 混合离散/连续噪声,但未达到真正的细粒度 token 级控制;NeoDiff 的 Poisson 过程更自然且理论更完备
- vs AR-Diffusion:AR-Diffusion 用单调递增的噪声实现半自回归,但人为限制了噪声模式;NeoDiff 的 Poisson 分配更灵活
- vs D3PM (离散扩散):离散扩散缺乏细粒度过渡;NeoDiff 在连续空间中保留了状态跳跃的离散特性
评分¶
- 新颖性: ⭐⭐⭐⭐⭐ 双时间框架是原创性很强的理论贡献,统一了离散和连续扩散的形式化
- 实验充分度: ⭐⭐⭐⭐ 6个任务、多个baseline、详细消融,但模型规模偏小
- 写作质量: ⭐⭐⭐⭐ 数学推导严谨,框架图清晰,但符号密集度高可能影响可读性
- 价值: ⭐⭐⭐⭐ 为文本扩散领域提供了统一的理论框架和实用的改进方向