从2020年的初出茅庐,到2021年的日趋火热,再到2022年的大放异彩,扩散模型(Diffusion Models) 正在人工智能学术界和工业界获取越来越多的关注。
如果还不是特别了解扩散模型的朋友,可以阅读卖萌屋的几篇历史推文《扩散模型在图像生成领域大火,风头超过GAN?》, 《年末回顾:2021年 AI 领域十大研究趋势及必读论文》。
扩散模型最早在图像生成领域大火,随后扩展到了其他连续域,例如语音、视频、点云数据,最近Google发布的用于文本到图像生成的GLIDE模型,更是让扩散模型从AI圈内火到了圈外。
不过,虽然扩散模型的热度极高,但是面向离散变量的扩散模型的性能一直欠佳,特别是在语言,图等结构当中。
最近,斯坦福大学自然语言处理研究组在利用扩散模型解决自然语言处理问题中取得了新的进展。
具体说来,在可控自然语言生成任务上,研究者们利用连续扩散模型,对预训练的语言生成模型进行可插拔的操控,就能够在许多任务上达到甚至超过Fine-Tuning的效果,大幅度超越了之前的工作。
这篇工作从方法和实验上都非常的新颖和扎实,短短一周就已经在Twitter上收获了千赞,在Github上收获了140个stars。
下面,就让我们一起来了解这篇扩散模型在语言领域的应用工作吧,说不定也能给你的领域带来启发呢~
![f831353e6d242c1018a780afc8fbb1bb.jpeg](https://i-blog.csdnimg.cn/blog_migrate/fd9f90b7270c40958ee8a85dac7fd3bb.jpeg)
论文标题:
Diffusion-LM Improves Controllable Text Generation
链接:
https://arxiv.org/pdf/2205.14217.pdf
声明:本文原创首发于公众号“夕小瑶的卖萌屋”,作者:Yimin_饭煲
传送门: 夕小瑶的卖萌屋,内含海量NLP论文综述、论文解读、入门资料等,一个每日每月挖掘重磅前沿论文的神器,以及聚集数万NLPer、CVer和算法工程师的技术交流群~
问题背景
首先,我们先来了解一下可控语言生成任务。语言生成任务指的是,给定语言模型
![p_{lm}(\textbf{w})](https://i-blog.csdnimg.cn/blog_migrate/0462b9160666144c4225ce7e9a7ff035.png)
![\textbf{w}=[w_1,w_2,...,w_n]](https://i-blog.csdnimg.cn/blog_migrate/b7265233f16cf3adee1a37641522db7c.png)
![p_{lm}(\textbf{w})=p_{lm}(w_n|w_{1,2,...,n-1})p_{lm}(w_{n-1}|w_{1,2,...,n-2})...p_{lm}(w_1)](https://i-blog.csdnimg.cn/blog_migrate/0462b9160666144c4225ce7e9a7ff035.png%3Dp_%7Blm%7D%28w_n%7Cw_%7B1%2C2%2C...%2Cn-1%7D%29p_%7Blm%7D%28w_%7Bn-1%7D%7Cw_%7B1%2C2%2C...%2Cn-2%7D%29...p_%7Blm%7D%28w_1%29)
可控语言生成指的是,给定控制变量
![c](https://i-blog.csdnimg.cn/blog_migrate/b67fcc1bfd7eae0e5948d822ee202111.png)
![p(w|c)](https://i-blog.csdnimg.cn/blog_migrate/d34affac7775baa90e7b48faae458efd.png)
一般来说,估计
![p(w|c)](https://i-blog.csdnimg.cn/blog_migrate/d34affac7775baa90e7b48faae458efd.png)
![w](https://i-blog.csdnimg.cn/blog_migrate/1c7a330b82678d6b033d9748f5120af9.png)
![c](https://i-blog.csdnimg.cn/blog_migrate/b67fcc1bfd7eae0e5948d822ee202111.png)
![p(c|w)](https://i-blog.csdnimg.cn/blog_migrate/0402d7ae3b037de4739648c868c43e88.png)
![p(\textbf{w}|c)\propto p_{lm}(\textbf{w})p(c|\textbf{w})](https://i-blog.csdnimg.cn/blog_migrate/01395a6c92c2f829e9cc81838c8ef9c3.png)
![p_{lm}(\textbf{w})](https://i-blog.csdnimg.cn/blog_migrate/0462b9160666144c4225ce7e9a7ff035.png)
![p(c|\textbf{w})](https://i-blog.csdnimg.cn/blog_migrate/fba91129db5ec650354d78f528d2dab7.png)
![\textbf{w}](https://i-blog.csdnimg.cn/blog_migrate/de81610baae8510ef581e6c5c265bc30.png)
主要方法
扩散模型的基本设置
![a178302522d6dd29a85fc8f27e63b7ab.png](https://i-blog.csdnimg.cn/blog_migrate/d430273fab76ed8df1f5713aa5857f89.png)
将数据定义为
![\textbf{x}{0}\in R^d](https://i-blog.csdnimg.cn/blog_migrate/8d5c1d790c140b0f883092ae4cefeb88.png)
![\textbf{x}{T}](https://i-blog.csdnimg.cn/blog_migrate/0ba23eac820673739b3a6402b8a7e67e.png)
![p_{\theta}(\textbf{x}T)=N(0,I)](https://i-blog.csdnimg.cn/blog_migrate/06229521ac7b0adce3f49e1b10a5a4bc.png)
![\textbf{x}{T}...\textbf{x}{0}](https://i-blog.csdnimg.cn/blog_migrate/0ba23eac820673739b3a6402b8a7e67e.png...%5Ctextbf%7Bx%7D%7B0%7D)
![p(\textbf{x}{t-1}|\textbf{x}{t})=N(\textbf{x}{t-1};\mu_{\theta}(\textbf{x}t,t),\Sigma{\theta}(\textbf{x}t,t))](https://i-blog.csdnimg.cn/blog_migrate/30104d692906e8313b76b858e6cc2d3a.png)
![\mu{\theta}](https://i-blog.csdnimg.cn/blog_migrate/561925cbf3731dca10e49d0fa0c7339c.png)
![\Sigma_{\theta}](https://i-blog.csdnimg.cn/blog_migrate/c0fcd83b5ded2cdff8ff3b222a549292.png)
![q(\textbf{x}t|\textbf{x}{t-1})=N(\textbf{x}t;\sqrt{1-\beta_t}\textbf{x}{t-1},\beta_t\textbf{I})](https://i-blog.csdnimg.cn/blog_migrate/4639e7e3bebf0954ddc4bb41b203cfba.png)
![\beta_t](https://i-blog.csdnimg.cn/blog_migrate/5776b10c8a0db5673bbab7f04869a4bb.png)
![t](https://i-blog.csdnimg.cn/blog_migrate/3b1922fd3ef8dd7c883fb35b699da495.png)
![q](https://i-blog.csdnimg.cn/blog_migrate/45c95dc0526e5d302c45be407166eb1d.png)
![E_{\textbf{x}0\sim p{data}}[\log p_{\theta}(\textbf{x}_0)]](https://i-blog.csdnimg.cn/blog_migrate/90727c5e91bbffac3158a456302e2782.png)
![L_{vlb}(\textbf{x}_0)=E_{q(\textbf{x}_{1:T}|\textbf{x}_0)}[\log\frac{q(\textbf x_T|\textbf x_0)}{p_{\theta}(\textbf x_T)}+\sum_{t=2}^T\log\frac{q(\textbf x_{t-1}|\textbf x_0, \textbf x_t)}{p_{\theta}(\textbf x_{t-1}|\textbf x_t)}-\log p_{\theta}(\textbf x_0|\textbf x_1)]](https://i-blog.csdnimg.cn/blog_migrate/5e839bee6d26ab65e6fe79ec0899027f.png)
不过这一变分下届在实际中优化比较不稳定,因此一般使用如下的简化方式进行优化、
![L_{simple}\sum_{t=1}^TE_{q(\textbf x_t|\textbf x_0)}||\mu_{\theta}(\textbf x_t,t)-\hat \mu(\textbf x_t,\textbf x_0)||^2](https://i-blog.csdnimg.cn/blog_migrate/b78429db3530a419fb796c8298b2a914.png)
![\hat \mu(\textbf x_t,\textbf x_0)](https://i-blog.csdnimg.cn/blog_migrate/154c97669160a32bb6fe6a150145e7a2.png)
![q(\textbf x_{t-1}|\textbf x_0, \textbf x_t)](https://i-blog.csdnimg.cn/blog_migrate/45c95dc0526e5d302c45be407166eb1d.png%28%5Ctextbf+x_%7Bt-1%7D%7C%5Ctextbf+x_0%2C+%5Ctextbf+x_t%29)
![\mu_{\theta}(\textbf x_t,t)](https://i-blog.csdnimg.cn/blog_migrate/5c69a7905100ca88e19327952dde0762.png)
![p_\theta(\textbf x_{t-1}|\textbf x_t)](https://i-blog.csdnimg.cn/blog_migrate/ac9145c03226f0c1940e41a6dcfd8d44.png)
Diffusion LM的端到端训练
为了将连续的扩散模型应用到离散文本上,首先定义离散文本的Embedding函数
![EMB(\textbf w_i)](https://i-blog.csdnimg.cn/blog_migrate/c5dbde4296d9373f3cbddc6922c7e2cf.png)
![p_\theta(\textbf w|\textbf x_0)](https://i-blog.csdnimg.cn/blog_migrate/cc0010c1cbcfdfb8689a35f9de36dfe3.png)
![L_{vlb}^{e2e}(\textbf w)=E_{q_\phi(\textbf x_0|\textbf w)}[L_{vlb}(\textbf x_0)+\log q_\phi(\textbf x_0|\textbf w)-\log p_{\theta}(\textbf w|\textbf x_0)]](https://i-blog.csdnimg.cn/blog_migrate/760b00f0598f0120396aacfbd65c4f70.png)
![L_{simple}^{e2e}(\textbf w)=E_{q_\phi(\textbf x_{0:T}|\textbf w)}[L_{simple}(\textbf x_0)+||EMB(\textbf w)-\mu_\theta(\textbf x_1,1)||-\log p_{\theta}(\textbf w|\textbf x_0)]](https://i-blog.csdnimg.cn/blog_migrate/e891a01e1e7d6cd079b51e840724c255.png)
Diffusion LM的解码和生成
Diffusion LM的可控生成等价于从后验分布
![p(\textbf x_{0:T}|c)](https://i-blog.csdnimg.cn/blog_migrate/73731f565d2967fb0cacfdc6213c45e2.png)
![p(\textbf x_{t-1}|\textbf x_t,c)\propto p(\textbf x_{t-1}|\textbf x_t)p(\textbf c|\textbf x_{t-1},\textbf x_t)](https://i-blog.csdnimg.cn/blog_migrate/3e969f24217520c3acc792532b3387fb.png)
![t](https://i-blog.csdnimg.cn/blog_migrate/3b1922fd3ef8dd7c883fb35b699da495.png)
![\nabla_{\textbf x_{t-1}} \log p(\textbf x_{t-1}|\textbf x_t,c)=\nabla_{\textbf x_{t-1}} \log p(\textbf x_{t-1}|\textbf x_t) + \nabla_{\textbf x_{t-1}} \log p(c|\textbf x_{t-1})](https://i-blog.csdnimg.cn/blog_migrate/022d4fbc04088e51abe15eeec0953410.png)
实验结果
![a73b19dc650e2b6ca2ab92cd74c28b63.jpeg](https://i-blog.csdnimg.cn/blog_migrate/64bc57f4a9675f2bf8a8991157cf143d.jpeg)
作者们在情感控制,可控语法生成等任务上开展了实验,和PPLM,FUDGE等可插拔式方法进行对比,可以发现Diffusion-LM相比之前的同类方法有极为显著的提升,特别是在部分任务上,甚至可以达到和微调相似的结果。
![c2b9c2cad2e67085484967fe39440780.jpeg](https://i-blog.csdnimg.cn/blog_migrate/273e2e088b4a9d464276d38975619b0a.jpeg)
组合控制是可控文本生成的另一个常见场景。给定关于多个独立任务的控制条件,要求模型生成满足多个控制条件的文本。Diffusion LM在这一场景下也表现出了更好的控制成功率。
![bb32518c943452e71e74c52e7da5c92e.jpeg](https://i-blog.csdnimg.cn/blog_migrate/6c1909f253ac815a56c3714d94452a9c.jpeg)
在句子填充任务(给定左边文本
![O_1](https://i-blog.csdnimg.cn/blog_migrate/07cf5d0841b1013ff8e5b8ef4d064a29.png)
![O_2](https://i-blog.csdnimg.cn/blog_migrate/e0f67e454fdf00b188b8e7aa4d89682a.png)
结语
扩散模型受到了非平衡热力学的启发,具有良好的数学表达形式。在图像生成任务上优秀的性能证实了其不是徒有虚表的“花瓶”,而是深度学习时代的一大杀器。尽管扩散模型仍然具有计算时间长等问题,我们仍可以期待其在更多模态的数据和任务上取得惊人的表现!
声明:本文原创首发于公众号“夕小瑶的卖萌屋”,作者:Yimin_饭煲
传送门: 夕小瑶的卖萌屋,内含海量NLP论文综述、论文解读、入门资料等,一个每日每月挖掘重磅前沿论文的神器,以及聚集数万NLPer、CVer和算法工程师的技术交流群~