文 | Yimin_饭煲

从2020年的初出茅庐,到2021年的日趋火热,再到2022年的大放异彩,扩散模型(Diffusion Models) 正在人工智能学术界和工业界获取越来越多的关注。

如果还不是特别了解扩散模型的朋友,可以阅读卖萌屋的几篇历史推文《扩散模型在图像生成领域大火,风头超过GAN?》《年末回顾:2021年 AI 领域十大研究趋势及必读论文》

扩散模型最早在图像生成领域大火,随后扩展到了其他连续域,例如语音、视频、点云数据,最近Google发布的用于文本到图像生成的GLIDE模型,更是让扩散模型从AI圈内火到了圈外。

不过,虽然扩散模型的热度极高,但是面向离散变量的扩散模型的性能一直欠佳,特别是在语言,图等结构当中。

最近,斯坦福大学自然语言处理研究组在利用扩散模型解决自然语言处理问题中取得了新的进展。

具体说来,在可控自然语言生成任务上,研究者们利用连续扩散模型,对预训练的语言生成模型进行可插拔的操控,就能够在许多任务上达到甚至超过Fine-Tuning的效果,大幅度超越了之前的工作。

这篇工作从方法和实验上都非常的新颖和扎实,短短一周就已经在Twitter上收获了千赞,在Github上收获了140个stars。

下面,就让我们一起来了解这篇扩散模型在语言领域的应用工作吧,说不定也能给你的领域带来启发呢~

论文标题:
Diffusion-LM Improves Controllable Text Generation
论文链接:
https://arxiv.org/pdf/2205.14217.pdf

问题背景

首先,我们先来了解一下可控语言生成任务。语言生成任务指的是,给定语言模型, 其中是词汇的序列,自回归语言模型可以表示为:

402 Payment Required

可控语言生成指的是,给定控制变量,例如语法结构,情感,生成词汇序列。

一般来说,估计的方式是,训练一个从词汇序列到控制变量的分类器,然后利用贝叶斯公式。

优化的作用是使得输出流利,优化的作用是使得满足控制变量的约束。

主要方法

扩散模型的基本设置

将数据定义为,定义为一个满足高斯分布的随机变量。

定义一个马尔可夫过程,状态转移方程为:

402 Payment Required

其中和由U-Net或者Transformer估计。

为了训练扩散模型,我们需要定义前向和后向两个过程,前向过程为加噪声过程, 其中表示在第步扩散时添加的噪声,前向过程不包含可训练的参数,只提供一个将原始数据扩散为噪声的过程。

扩散模型的优化目标是最大化边缘概率分布, 可以转化为变分下界损失函数:

402 Payment Required

不过这一变分下届在实际中优化比较不稳定,因此一般使用如下的简化方式进行优化:

其中是后验分布的平均值,而是利用神经网络预测的的均值。

已有的工作已经说明了这一优化目标的有效性。

Diffusion LM的端到端训练

为了将连续的扩散模型应用到离散文本上,首先定义离散文本的Embedding函数将每个词语映射到一个连续向量。

因此在扩散模型训练,在前向过程中需要多加入一步从离散词汇映射到连续向量, 在反向过程中,加入一步从连续向量映射到离散词汇, 这一步通过Softmax分类实现。

最后可以将Diffusion LM的训练目标转换为如下的形式:

402 Payment Required

Diffusion LM的解码和生成

Diffusion LM的可控生成等价于从后验分布中解码, 在每一步扩散中,优化目标为:

402 Payment Required

由于马尔科夫链的一阶相关性,在第步可以使用如下的梯度优化方式,为了保证生成文本的流利性,作者们还使用了一些正则化的技巧:

402 Payment Required

为了提升生成的输出的质量,作者们还使用了在机器翻译中常用的最小贝叶斯风险(MBR)解码方式。

实验结果

作者们在情感控制,可控语法生成等任务上开展了实验,和PPLM,FUDGE等可插拔式方法进行对比,可以发现Diffusion-LM相比之前的同类方法有极为显著的提升,特别是在部分任务上,甚至可以达到和微调相似的结果。

组合控制是可控文本生成的另一个常见场景。给定关于多个独立任务的控制条件,要求模型生成满足多个控制条件的文本。

Diffusion LM在这一场景下也表现出了更好的控制成功率。

在句子填充任务(给定左边文本和右边文本,输出中间的内容连接两段文本)上,Diffusion LM显著超越了之前的工作COLD和Delorean, 并且达到了和从头训练的自回归语言模型相近的效果。

结语

扩散模型受到了非平衡热力学的启发,具有良好的数学表达形式。在图像生成任务上优秀的性能证实了其不是徒有虚表的“花瓶”,而是深度学习时代的一大杀器。

尽管扩散模型仍然具有计算时间长等问题,我们仍可以期待其在更多模态的数据和任务上取得惊人的表现!

萌屋作者:Yimin_饭煲

在微软NLC组搬砖的联培博士生,爱好摄影和运动,希望卖萌屋早日开通视频业务,我来当摄影师!

作品推荐

  1. 学完文本知识,我就直接看懂图片了!

  2. 别再Prompt了!谷歌提出tuning新方法,强力释放GPT-3潜力

  3. 大模型炼丹无从下手?谷歌、OpenAI烧了几百万刀,总结出这些方法论…

后台回复关键词【入群

加入卖萌屋NLP、CV、搜广推与求职讨论群

后台回复关键词【顶会

获取ACL、CIKM等各大顶会论文集!

扩散模型又杀疯了!这一次被攻占的领域是...相关推荐

  1. 大火的扩散模型终于杀到了NLP领域

    从2020年的初出茅庐,到2021年的日趋火热,再到2022年的大放异彩,扩散模型(Diffusion Models) 正在人工智能学术界和工业界获取越来越多的关注. 如果还不是特别了解扩散模型的朋友 ...

  2. 扩散模型(Diffusion Model,DDPM,GLIDE,DALLE2,Stable Diffusion)

    随着最近DALLE2和stable diffusion的大火,扩散模型的出色表现丝毫不逊色VAE和GAN,已经形成生成领域的三大方向:VAE.GAN和Diffusion,如上图可以简要看出几类主线模型 ...

  3. “杀疯了”的AI绘画,如何实现商业变现?

    最近AI绘画在各大网络平台杀疯了,甚至侵占了短视频多项热搜,各种达人明星都在不停的发AI绘画的内容,虽然也有生成效果惊艳的,但是吐槽AI绘画"你没事儿吧"的人也是相当多. 你一定想 ...

  4. 微软杀疯了!全家桶嵌入ChatGPT,云平台Azure强到发指

    [导读]微软又双叒出大招了!ChatGPT即将整合进Azure,谷歌一个月惨遭Triple Kill 2023刚开年,微软就杀疯了! 搜索引擎必应.办公全家桶Office.云计算平台Azure,相继加 ...

  5. 四少女火爆外网,AI杀疯了!

    转自:量子位 | 金磊 四位美少女,带着AI画画在ChatGPT的热浪中杀出了一片天地. 新"魔法"一出,瞬间吸引全场目光: 原本是一张四个闺蜜在沙滩边上的普通合影照: 在新魔法的 ...

  6. 使用Python,EoN模拟网络中的疾病扩散模型,并结合matplotlib绘图

    使用Python,EoN模拟网络中的疾病扩散模型,并结合matplotlib绘图 1. EoN是什么 2. 安装 3. 效果图 4. 源代码 4.1 源码 4.2 源码 参考 写这篇博客源于博友的提问 ...

  7. 半个月3篇Nature/Science,95后曹原3年8篇顶刊,网友:杀疯了杀疯了

    金磊 萧箫 发自 凹非寺 量子位 报道 | 公众号 QbitAI "曹原又中了1篇Science!" "你听错了吧,上周不是中的Nature吗?还是2篇." & ...

  8. 图像生成之扩散模型:靠加入类别条件,效果直达SOTA

    来源:AI蜗牛车 本文约1300字,建议阅读7分钟 比GAN更真实.还懂全景局部多角度构图. OpenAI去年年末推出的新作GLIDE,又让扩散模型小火了一把. 这个基于扩散模型的文本图像生成大模型参 ...

  9. OpenAI新研究:扩散模型在图像合成质量上击败BigGAN,多样性还更佳

    来源:AI科技评论本文约3600字,建议阅读5分钟本文介绍了OpenAI新研究:扩散模型在图像合成的最新技术. 新模型在ImageNet512×512上实现了3.85FID,甚至在每个样本只有25次正 ...

最新文章

  1. 自动驾驶技术公司Waymo完成新一轮25亿美元融资
  2. 超易懂的MapReduce思想讲解
  3. 嫦娥“挖土”归来有多难?看看中国首颗返回式卫星的故事
  4. 程序员初涉江湖 宜步步为赢(转-1) 作者:IT168 职业发展顾问Leo
  5. C++ 系列:基础知识储备
  6. 【翻译】C#编程语言和JAVA编程语言的比较(下)
  7. Exynos4412启动过程分析
  8. VVDocumenter 使用
  9. qt的如何调整显示不为科学记数法_Excel操作技巧:如何将信息快速准确的录入Excel?...
  10. keras实现简单lstm_深度学习(LSTM)在交通建模中的应用
  11. magento如何如何找到对应html文件_Servlet如何配置xml
  12. 一场360容器圈的武林大会“360互联网技术训练营第九期—360容器技术解密与实践” (附PPT与视频)
  13. Redis的过滤器(SCAN)功能
  14. 190107每日一句
  15. SAI绘制波浪卷发教程
  16. 【多多情报通】拼多多个人店铺怎么升级为企业店铺?怎么转让?
  17. mysql 数据库修改ip_mysql数据库学习之修改主库ip地址
  18. 生物信息学分析选用的服务器,蛋白质与蛋白质组分析生物信息学
  19. 安装Ubuntu系统时硬盘分区最合理的方法
  20. 详细了解 Android 巧用 flexboxLayout 布局

热门文章

  1. 给未来写封信app服务器维护中,‎App Store 上的“给未来写封信”
  2. 1234,四个不同的数字组成多少种不同的数
  3. 2018 6 11 没有触角的蚂蚁
  4. 如何制作趣味头像?分享几种制作头像的方法
  5. 【JQuery】操作 DOM
  6. 微软Project Online落地中国
  7. iPhone设备零日漏洞,5亿用户面临攻击
  8. Orz这个词的复杂意思[z]
  9. php查题,2020高校邦《PHP语言程序设计》答案在线查题
  10. 两个鸡蛋,100层楼,找出摔碎鸡蛋的最低楼层,所用的摔鸡蛋次数最少