扩散模型在文本生成领域的应用
新智元报道
来源:知乎 编辑:桃子【新智元导读】扩散模型在文本生成领域的应用有哪些?本文就3篇论文展开解读。
本文主要讨论以下几篇论文
- Structured Denoising Diffusion Models in Discrete State-Spaces(D3PM)
- Diffusion-LM Improves Controllable Text Generation
- Composable Text Control Operations in Latent Space with Ordinary Differential Equations
Structured Denoising Diffusion Models in Discrete State-Spaces(D3PM)
- 该加噪方式应使得xt从q(xt|x0)中的采样方便快捷。使得我们能够对以上的去噪匹配项里的L_t-1在任意时间步上方便计算。
- 同时该加噪方式应使得q(xt-1| xt, x0)有方便计算的解析形式,使得我们计算去噪匹配项的KL散度成为可能。
D3PM在文本生成上的扩散过程
Diffusion-LM Improves Controllable Text Generation
相比于D3PM,这篇论文的主要创新点在于定义了一个词嵌入的方程统一了扩散过程里离散到连续的状态。我们可以看到D3PM本质上的扩散是在离散序列上做的。但是Diffusion-LM的具体做法是前向时离散的字词首先通过词嵌入转为一系列连续的潜在向量。之后对每个连续向量不断加高斯噪声进行前向扩散。后向时不断去噪并且最终将每个潜在向量量化到一个距离最近的词嵌入上。具体来说前向时从离散的词序列w到x0的过程为: Emb为词嵌入方程,前向为从离散到连续
- 作者提到该扩散模型的速度比自回归式的预训练模型慢了7倍。但笔者试跑了一下作者代码发现,用transformer做初始词的误差估计,并且做200次去噪过程。实际生成一个句子在A100显卡上要花4-5分钟,是自回归式生成类似长度的句子所耗时间的数十倍。
- 作者给的源代码十分混乱,难以阅读和使用。但笔者对于其提到的即在有引导的条件生成上表现良好,又在无引导的开放生成上表现突出持保留态度。该质疑主要来源于笔者在非自回归模型里的一些感性经验。该扩散模型的主要优化目标是每个潜在向量与其词嵌入的预测误差。似乎并没有对句子的整体性有任何的要求。甚至就连P(w|x0)文章采取的建模方式也是每个字词的概率的独立连乘。这样强假设先验下的建模方式对模型能力要求很高。可能在小数据集小领域上可以达到较好效果,但复杂的文本领域恐怕难以建模。笔者按照作者的开源代码所训练出的结果也不理想。但存在笔者简单尝试下误用的可能。
Composable Text Control Operations in Latent Space with Ordinary Differential Equations
论文的核心流程图
这是负的对数似然函数的表达式(normalized logits)
- CVAE 如果需要对某个性质做条件生成(如情感,关键词)需要大量数据对全量模型训练。但VAE+Diffusion不用,只需要固定VAE额外训练一个潜在向量的分类器做扩散引导即可。而在潜在向量上的分类器,首先维度低,参数量少,训练资源相比原预训练模型低几个数量级!并且所需的训练数据也极少(原论文仅使用200条训练)
- CVAE难以做到性质聚合,往往需要对不同性质的条件生成单独训练且训练出来的模型难以有效地聚合。但VAE+Diffusion在理论上展现了这种可能(当然是否有效仍需具体观察)。
- 首先是分类器的准确度是需要考虑的问题。直接用VAE里的潜在向量去做分类而不是BERT的CLS去做分类笔者与笔者的同事做过相关实验。准确率相比CLS分类是有较为明显的下降的。这样的下降必然会影响扩散引导的效果。
- 其次是解码器生成时的采样策略必然会导致一定的随机性存在。哪怕是笔者自身训练的CVAE,在做特定的条件生成时往往也需要对同一个潜在向量重复采样以保证条件生成满足相关性质。
- 再次是关于多个条件聚合时,不同性质的条件聚合是否会出现明显的互相干扰,是否需要手动调整各个性质的比重系数也值得考虑。
自身实践
- 根据有标签数据集生成一批带标签的Latent-Vec数据
- 用这些带有特定性质的Latent-Vec训练一个情感二分类器
- 已知扩散过程的起点(Encoder的输出)和终点(带标签的Latent-vec)用分类器进行Nueral-ODE扩散。
- 分类器的准确度的确不高,最高只能达到八成左右(分类器的架构没有进行太多探索,只尝试了MLP的一些超参调整)。分类器虽然准确率一般但对性质改变已经足够。
- 生成的潜在向量确定性比较高,且速度很快。相比于Diffusion-LM需要5分钟左右的扩散时间生成一句话,VAE+diffusion的做法只需要几秒钟。
- 原句1(负面):呵呵了 这物流速度也是没谁了 同城网购竟然三天了还不到。
- 改写句1:呵呵了 这物流速度也是没谁了 同城网购居然还可以很不错 哈哈.
- 原句2(正面): 还不错,等试用一段时间再说
- 改写句2: 还不行,等试用一段时间再说
- 原句3(负面): 买错了,自己是荣耀7,悲哀了,不管商家的事,鬼火绿
- 改写句3:买对了,自己是荣耀7,呵呵,感谢商家的事,快乐了,不管火鬼绿
- 原句4(负面):一次很差的购物 手机到手后 没仔细检查 晚上检查发现手机背面有划痕联系了客服说换 但是 后面他们打电话说不能更换 反正就是各种各样的借口
-
改写句4: 一次很漂亮的购物 手机上检查 后手机没受划 具体使用体验可以打电话客服询问 后来她说我不错 而且说都是精心计划 以后说但是一定要注意换三端的电话 感觉没有各种各样的借口
参考资料:
^ DELLA https://arxiv.org/abs/2207.06130
https://zhuanlan.zhihu.com/p/561233665 本文来自知乎答主 中森,若进行二次转载 ,向原作者进行申请。
评论