语言生成的潜在扩散

https://arxiv.org/abs/2212.09462
方法

语言的潜在扩散
给定一些自然语言,它可以表示为词汇\(V\)上的一个one-hot向量序列\(l\)。\(w∈R^{l \times |V| }\)。
BART的Encoder,\(E()\)将其映射到某个连续的潜在空间\(x\)。\(x = E(w)\in R^{l \times d}\)。
BART的Decoder,\(D\)然后近似重建原始输入\(w\)。

因此,为了训练一个连续扩散模型,我们将连续数据采样为\(x\),\(x=E(w) \in R^{l \times d}\),\(w \in R^{l \times |V|} \sim D\),\(D\)是给定的自然语言数据集。
这使得训练一个去噪网络\(\tilde{x}_{\theta}(z_{t},t)\),能够恢复\(x\)。
在生成时,我们要采样一个潜在变量\(z_{T} \in R^{l \times d} \sim N(0,I)\)。它被迭代地去噪到BART的潜在空间分布。
然而,语言的长度是不同的。对于数据\(x \in R^{l \times d}\),\(l\)的大小因数据样本而不同。
在训练时,\(l\)仅由数据样本决定。
然而,在推理时,我们必须指定一个\(l\),以便采样\(z_{T} \in R^{l \times d} \sim N(0,I)\)。
为了在推理时选择一个\(l\)的大小,我们从数据\(L(D)\)给出的长度的经验分布中采样\(l\)。换句话说,就是
因此,对于生成,我们首先采样某个长度\(l_{i} \sim L(D)\),然后采样潜在变量\(z_{T} \in R^{l_{i} \times d} \sim N(0,I)\)。
自调节
我们还利用了Chen等人提出的自调节技术,发现该方法可以提高采样质量。
在某个时刻t,去噪网络通常以潜在变量\(z_{t}\)和时间步长\(t\)为条件,\(\tilde{x_{t}} = \hat{x_{\theta}}(z_{t},t)\)。
自调节提出把前一个时间步长的输出作为条件额外加入网络,使得
在推理过程中,采样过程本质上是迭代的。在时间t,我们已经计算了前一个时间步长的去噪网络输出\(\tilde{x}_{t+1}\),因此它不需要任何额外的网络参数。
然而,我们必须修改训练过程,使去噪网络学会利用数据的估计,并且我们必须在第一次应用去噪网络之前定义时间T的推理行为。
对于每个训练步,我们采样一些时间\(t \sim U(1,...,T)\)。概率 p = 0.5时,我们不提供任何自调节数据的估计,表示为
对于概率 1-p,我们首先模仿推理行为,计算
然后计算额外的评估
\(sg()\)是停止梯度操作。然后用第二次评估来计算损失。
该训练过程还保持了没有自调节时的正常的推理能力,用于在采样后生成的第一次估计
之后的估计都可以用自调节计算
Class-Conditional Diffusion
为了评估有条件的语言生成框架的能力,我们将其扩展到类条件生成。
我们现在假设访问一些数据集,其中每个自然语言话语与一个C类标签相关联,其中类标签可以表示,例如,文本的情感或主题。所以有
在训练过程中,我们通过在类标签上调节去噪网络来训练一个类条件扩散模型,
由于类标签传递了原始数据的信息,网络将学习利用附加的类信息来指导去噪过程。
与自条件一样,用一个概率 p = 0.1的空标签\(y_{\phi}\)来替换 ground truth 类标签\(y_{i}\),来保持无条件生成能力。
在推理时,我们可以选择一些\(y\)类来指导采样过程。我们像以前一样对一些潜在变量\(z_{T} \sim N (0, I)\)进行采样,并告诉去噪网络数据属于\(y\)类,对所有\(t\)计算\(\tilde{x}_{t} = \hat{x}_{\theta}(z_{T}, t, y)\)。这将从给定的类中生成一些生成的文本。


浙公网安备 33010602011771号