写作动机
这个工作开篇可以看到是在Diffusion-LM的基础上展开叙述的。
Recent advances in generative modeling introduce diffusion models, which achieve great success in generating continuous signals, including images, video, and audio. Diffusion models also garner growing interest for conditional sequence learning in the research community because of their promising characteristics, such as diversity and controllability, demonstrated in these domains. However, the discrete nature of sequence data, constituted by a number of tokens in order, makes it non-trivial to apply diffusion models for conditional sequence learning. Typical diffusion models noise data with Gaussian permutation kernels and learn to recover original data from their corrupted versions, which is not directly compatible with discrete tokens. To remedy this, DiffusionLM attempted to embed discrete tokens into continuous space and employ diffusion models to the embedding space. Although this kind of approach unlocks the possibility of applying diffusion models to discrete data, it still falls short of competitive performance for various conditional sequence generation tasks.
因为扩散模型作为新的生成模型在连续域数据上已经取得了比较好的效果,优于其出色的成圣多样性和可控性,因此研究人员可考虑用扩散模型去做序列的条件生成。传统扩散模型使用的是高斯核对噪声数据进行建模,然后在去噪过程中逐渐将其去除,获得重建输入。但是因为序列数据的离散性,离散数据是不兼容高斯核的,因此想要使用扩散模型还存在一定的难度。在Diffusion-LM中作者尝试将离散数据进行嵌入,使用嵌入空间上的embedding向量进行文本扩散。虽然这种方法成功将扩散模型应用到序列文本上,但是对于条件生成,该模型并无竞争力。
因此在这个工作者,作者猜测将离散token进行embedding并不能完全消除文本离散性。
为此作者进行深入探讨之后有了以下三个发现:
- 存在离散陷阱(pitfall of discreteness):小规模噪声会阻碍条件序列的学习。
- 可扩展性:为了适应嵌入空间的尺寸,有必要使用适应性噪声。
- 条件学习:推理过程中适当放大噪声,可以校准扩散模型考虑更多源条件信息。
模型改进
从作者提出的这三点我们就可以知道作者为此提出的模型改进:
Motivated by these findings, we propose DINOISER to improve diffusion models by manipulating noises for conditional sequence learning. We propose a novel way of counter-discreteness training to eliminate the chances of training on small noise scales to avoid their negative influences, for which we introduce the noise scale clipping strategy to adaptively manipulate the noise scales. For inference, we manipulate the model to be exposed to larger noise scales to encourage trained diffusion models to leverage source conditions.
DINOISER主要做的就是:改进条件序列扩散模型的噪声。
- 通过使用counter-discreteness来消除在小噪声尺度上训练的机会,以此消除小规模噪声的影响。
- 引入噪声裁剪策略自适应地操控噪声尺度。
- 在推理过程中使用更大的噪声鼓励模型利用源条件信息。
背景信息
条件生成模型
这里的条件生成我更常称之为可控文本生成,就是给定一个控制条件去影响语言模型的生成过程。
文本序列: <math xmlns="http://www.w3.org/1998/Math/MathML"> y = [ y 1 , y 2 , ... , y n ] ∈ { 0 , 1 } n × ∣ V ∣ y = \left[y_1, y_2, \ldots, y_n\right] \in\{0,1\}^{n \times|\mathcal{V}|} </math>y=[y1,y2,...,yn]∈{0,1}n×∣V∣
控制条件: <math xmlns="http://www.w3.org/1998/Math/MathML"> x = [ x 1 , x 2 , ... , x m ] \boldsymbol{x}=\left[x_1, x_2, \ldots, x_m\right] </math>x=[x1,x2,...,xm]
对于自回归语言模型的生成过程是: <math xmlns="http://www.w3.org/1998/Math/MathML"> p ( y ∣ x ) = ∏ i = 1 n p ( y i ∣ y < i , x ) p(\boldsymbol{y} \mid \boldsymbol{x})=\prod_{i=1}^n p\left(y_i \mid \boldsymbol{y}_{<i}, \boldsymbol{x}\right) </math>p(y∣x)=∏i=1np(yi∣y<i,x)
对于基础的非自回归是: <math xmlns="http://www.w3.org/1998/Math/MathML"> p ( y ∣ x ) = ∏ i = 1 n p ( y i ∣ x ) p(y \mid x)=\prod_{i=1}^n p\left(y_i \mid x\right) </math>p(y∣x)=∏i=1np(yi∣x)
扩散模型
写过很多了,回去翻以前的文章吧。
离散陷阱 Pitfall of Discreteness: Noise Scale Matters
作者在这里是对比了Diffusion-lm和CMLM来得出他的结论的。
Diffusion-lm之前也详细说过了,这里浅浅说一下CMLM:
CMLM的全称是条件掩码语言模型 (conditional masked language model)。CMLM的模型预测的是一系列掩码词 <math xmlns="http://www.w3.org/1998/Math/MathML"> Y mask Y^{\text {mask }} </math>Ymask 在给定输入 <math xmlns="http://www.w3.org/1998/Math/MathML"> X X </math>X 和部分已生成且未被掩码的中间输出 <math xmlns="http://www.w3.org/1998/Math/MathML"> Y o b s Y^{o b s} </math>Yobs 的概率分布,即 <math xmlns="http://www.w3.org/1998/Math/MathML"> P ( Y m a s k ∣ X , Y o b s ) P\left(Y^{m a s k} \mid X, Y^{o b s}\right) </math>P(Ymask∣X,Yobs) 。在这个条件概率下,序列 <math xmlns="http://www.w3.org/1998/Math/MathML"> Y m a s k Y^{m a s k} </math>Ymask 里所有的独立变量都互相对输入和未掩码词条件独立。并且因为每一轮迭代不改变输出 <math xmlns="http://www.w3.org/1998/Math/MathML"> Y = Y m a s k + Y o b s Y=Y^{m a s k}+Y^{o b s} </math>Y=Ymask+Yobs 的长度,模型也隐式地条件于生成序列的长度 <math xmlns="http://www.w3.org/1998/Math/MathML"> N = ∣ Y mask ∣ + ∣ Y o b s ∣ N=\left|Y^{\text {mask }}\right|+\left|Y^{o b s}\right| </math>N=∣ ∣Ymask ∣ ∣+∣ ∣Yobs∣ ∣ 。
更多可以看:zhuanlan.zhihu.com/p/446916340
Diffusion-lm性能欠佳
Diffusion-lm不仅需要更长的训练步骤,而且效果也很拉胯。由此得出结论基于普通扩散的序列扩散模型的性能和训练效率都不怎么样。
扩散损失在小噪声尺度下很小
看横轴 <math xmlns="http://www.w3.org/1998/Math/MathML"> σ \sigma </math>σ比较小(<0.4)的时候,纵轴MSE几乎为0,也就是说噪声尺度比较小的时候扩散损失也非常小。也就是说,这个状况下计算MSE的两个向量差别很小,也就是恢复损坏的嵌入向量很小。
作者推测是因为嵌入向量并没有完全映射到离散空间,因此做了一下可视化,果不其然,当 <math xmlns="http://www.w3.org/1998/Math/MathML"> σ = 0.3 \sigma = 0.3 </math>σ=0.3的时候我们可以看到有三个离散的点。施加噪声很小的话是没办法对其进行比较大的破坏,因此经过扩散损坏的向量依然处于原始的向量的周围,因此嵌入向量分布的离散程度越高,这一过程的扩散损失就越小。
随着嵌入空间维度增大,扩散过程消除离散性变得更困难
<math xmlns="http://www.w3.org/1998/Math/MathML"> ∣ V ∣ |V| </math>∣V∣表示词汇量大小, <math xmlns="http://www.w3.org/1998/Math/MathML"> D D </math>D表示嵌入维度。
现看维度相同的时候,词汇表的大小影响并没有很大。
但是看词汇表大小相同的时候,随着维度的增加,我们需要把 <math xmlns="http://www.w3.org/1998/Math/MathML"> σ \sigma </math>σ设置的很大才能保证扩散破坏的生效。因此作者推断随着嵌入空间的增大,会导致更严重的离散性。也就是维数灾难。
条件学习:较大的噪声尺度可以在推理过程中考虑更多的源条件信息来校准扩散模型
前边已经知道了噪声尺度过小的诸多缺陷,并且噪声尺度过小,让模型很容易恢复被破坏的文本,可能会造成模型幻觉。因此作者进行定量分析,发现随着噪声尺度越大,模型可以更准确地预测出源条件信息。
综上,提出解决方案
- 不要在小尺度噪声上进行训练
- 需要根据嵌入空间的维度确定噪声调度。
- 使用较大的噪声以更好地利用源条件信息。
🦖DINOISER
主要思路就是训练过程中消除小规模噪声训练的影响避免离散性陷阱,在采样过程中提出一种有效的采样器将大尺度噪声输入到模型中,放大源条件对模型预测的影响。
噪声裁剪
限制最小的噪声尺度,只有满足才可以被采样。这一过程是随着模型的学习自适应决定的。
CEDI
基于前文的假设,我们假设当大噪声尺度指示时,模型更多地依赖于源条件。所以作者就尝试通过向模型提供大噪声尺度的指标来使模型更加忠实于源条件。