看到Prefix-Tuning的作者最近也在研究可控文本生成,主要思路是将CV生成中DDPM迁移到NLP中,并且用类似PPLM的方法实现控制。
这里DDPM可以见 https://zhuanlan.zhihu.com/p/523960047
1. 介绍
之前的工作主要关注简单的属性控制,然而在更复杂,更细粒度上的控制(如语法结构)进展甚微。 作者指的更复杂,更细粒度的控制:
为了解决上述困境,作者基于连续的扩散模型提出了非自回归的语言模型(Diffusion-LM) 至于选择扩散模型的原因,根据文章总结为以下几点:
- 中间变量的连续且分层的特性使得简单的梯度算法就可以实现复杂且可控的生成任务。
- 由于文本通常是离散的,因此运用离散的扩散模型具有极大的困难,因此作者对标准的扩散模型进行了改造: 在传统的步骤上添加了embedding step和rounding step,设计了学习embedding的训练目标,并且提出了提升rounding表现的方法。
- 之前的控制生成方法,通常基于自回归语言模型,只能从左至右生成。这导致PPLM无法修复在之前步中的错误。
2. Diffusion Models for Continuous Domains
如下图所示:
经典的训练目标:
简化的训练目标:
详细介绍见论文
3. Diffusion-LM: Continuous Diffusion Language Modeling
作者对标准的扩散模型进行了部分修改。
3.1 End-to-end Training
为了将连续的扩散模型运用到离散的文本,定义embedding函数$EMB(w_{i})$将每一个词语映射为向量。
在上图中,在forward process中,添加马尔可夫变换使得将离散的词语$w$映射为$x_{0}$, $q_{\phi}(x_{0} | w)=N(EMB(w),\sigma_{0}I)$; 在reverse process中,添加了可训练的rouding step,$p_{\theta}(w | x_{0})=\Pi_{i=1}^{n}p_{\theta}(w_{i} | x_{i})$, 其中$p_{\theta}(w_{i} | x_{i})$是softmax分布,训练目标如下所示: |
3.2 Reducing Rounding Errors
作者在这里设计了方法来减少Rounding Errors,详见论文。
4. Decoding and Controllable Generation with Diffusion-LM
4.1 Controllable Text Generation
在训练好Diffusion-LM后,作者设计了plug-and-play的机制来控制Diffusion-LM。相比于直接控制的离散的text,作者在由Diffusion-LM生成的连续的隐变量$x_{0:T}$上进行控制。
同时为了生成流利的文本,设计了其他的训练目标。
4.2 同时为了生成流利的文本,设计了其他的训练目标。
作者在解码的过程中使用了 Minimum Bayes Risk Decoding
5. 实验结果
可以看到相比PPLM,FUDGE模型,Diffusion-LM表现优异。详细实验分析见论文。
如下表Diffusion-LM在属性组合控制上表现优异
6. 总结
论文提出Diffusion-LM,在复杂且细粒度的控制上达到了优异的效果。 但Diffusion-LMs仍然存在缺点:
- 较高的perplexity
- 解码的速度相对较慢
- 训练较难收敛