前言

扩散模型在文生图领域可谓是大显身手,效果棒棒~

每当一个idea有效之时,便会有更多相关的研究跟进尝试,今天就给大家介绍一篇将扩散模型应用到文本生成领域的工作,这也是一篇比较新的paper,其中还用到了梅西在2022世界杯表现的例子。

大家可以重点借鉴看看作者是怎么把扩散这一idea揉进到NLP的,最好看看能不能从中找到一些启发进而把扩散这一idea用到自己的领域试试~

截止笔者写这篇博客的时候,作者的代码还没有放出来,不过paper说了在不久的将来会开源出来,另外笔者之前也写过一篇关于扩散模型代码解析的文章,想实践的同学可以穿梭参考一下:

《扩散模型代码剖析》:https://zhuanlan.zhihu.com/p/591761273

本次介绍的paper: https://arxiv.org/pdf/2212.11685.pdf

扩散模型

在开始介绍方法之前,还是先简单说一下关于扩散模型的几个重要结论性公式(这里不讲复杂的推导,如果读者还不清楚扩散模型,建议先去看一下原理篇,这样的话在读本篇的结论性公式以及理解它的参数含义的时候会比较轻松一些)。

首先扩散模型的基本原理就是先加噪再去噪,而所谓的扩散模型的主要作用就是在去噪阶段预测噪声。

加噪过程:


去噪过程:


可以看到去噪过程主要就是要得到均值和方差,其中下图中红色的部分就是扩散模型,具体的作用就是预测当前t步所加的噪声:


具体扩散模型训练loss就是:


方法

(1)模型

本文主要研究的领域是文本生成NLG,其实就是个sequence-to-sequence任务,即给定一个source text,期望生成对应的target text。

作者将所提出的框架命名为GENIE(GENeration using dIffusion modEl),框图如下:


  • Encode

encoder这里比较简单,其模型结构是一个由六层transformer组成的,主要就是负责把source text表征为一个embeding 即










  • Text Diffusion Model

扩散模型这里(重点!!!)也是一个六层的 cross-attention,它的作用我们前面说过了就是预测当前t步所加的噪声(这也是扩散模型这一idea的核心)即




























,可以清楚的看到它的输入是























: 第t步











: 第t步的表征











: source text的表征

  • Inference Phase

在训练好了模型之后,预测阶段就很简单了。开始先随机从高斯分布中抽取一个样本点即









,然后使用训练好的模型去预测每一步的噪声,最后利用公式(4)(5)一步步去噪,直到得到









即可。

  • Training Phase

这里来看一下具体的训练过程。

假设当前的target sequence为y即:


首先就是将y这一序列token进行embedding化生成初始值,更具体的就是扩散模型中









的即


有了









,根据扩散模型的公式,我们便可以得到任意一步t的状态值:


同时我们可以通过扩散模型预测噪声得到相应的均值和方差(其实就是上面讲的公式4和公式5)


最后参考扩散模型的loss便可以得到我们要训练的loss:


  • 小结

这里涉及的公式较多,看不懂的小伙伴可以先看原理篇,然后再回头看这里就一目了然啦。可以看到基本上就是原封不动的把扩散模型那一套拿过来。

(2)预训练

作者也强调了说,扩散模型的在NLP生成领域潜力是具体的,因为它生成的多样性很强,只不过现在的效果以及训练速度等方面还有一些限制。于是作者也参考了之前大模型的惯用做法:先预训练一把!

具体做法就是从一篇doc里面随机MASK掉一些段落




即用[MASK]标识符代替,以此来作为encoder的输入即可以得到









,同时




就可以作为target text即









,进而依据公式(9)就可以得到









,有了


















便有了扩散模型的输入,最后便可以预测噪声,得到均值方差进行训练啦。

碎碎念

想用扩散模型的前提是要想清楚你最终想要的输出是什么也即









,同时控制生成的变量是什么也即









。一旦确定好了或者说你当前研究的领域能够抽象成这样一个问题,那就可以直接把扩散模型这一套拿过来试试啦。具体的逻辑就是:先表征出
















(咋表征无所谓,用啥模型自己决定就行),有了









后就可以得到任意一步的状态









,进而就可以拿到


















,而这就是扩散模型的输入,那么进而就可以预测噪声,预测出噪声就可以得到均值和方差,有了均值和方差就可以依据公式(3)一步步去噪直到得到









需要注意的是在训练阶段









的获得是需要









,而在预测阶段,我们不可能知道









(因为我们的目的就是希望生产一个好的









),那









或者说去噪的最原始状态









获得其实就是随机从高斯分布中采一个样本点就行,这也是为啥能生成多种多样符合结果的原因。当然了指导生成的变量









在训练和预测阶段逻辑上基本上是一样的。

本篇是将扩散模型应用到了NLG领域,具体到source text的是









、target text是









。那如何将扩散模型应用到理解类NLU内容呢?大家可以多尝试哦~

本文由 mdnice 多平台发布

将扩散模型应用到文本领域相关推荐

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

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

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

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

  3. 文本生成图像简述4——扩散模型、自回归模型、生成对抗网络的对比调研

    基于近年来图像处理和语言理解方面的技术突破,融合图像和文本处理的多模态任务获得了广泛的关注并取得了显著成功. 文本生成图像(text-to-image)是图像和文本处理的多模态任务的一项子任务,其根据 ...

  4. 李沐论文精读系列五:DALL·E2(生成模型串讲,从GANs、VE/VAE/VQ-VAE/DALL·E到扩散模型DDPM/ADM)

    文章目录 一. 前言 1.1 DALL·E简介 1.2 DALL·E2简介 1.3 文生图模型进展 二. 引言 2.1 摘要 2.2 引言&模型结构 三. 算法铺垫 3.1 GANs 3.2 ...

  5. 扩散模型(Diffusion)最新综述+GitHub论文汇总-A Survey On Generative Diffusion

    扩散模型(Diffusion Model)最新综述+GitHub论文汇总-A Survey On Generative Diffusion 本综述来自香港中文大学Pheng-Ann Heng.西湖大学 ...

  6. 扩散模型加持下,机器人模型DALL-E-Bot可以轻松完成自主重新排列任务

    原文链接:https://www.techbeat.net/article-info?id=4217 作者:seven_ 最近,图像扩散模型的发展可谓是风生水起,很多AI大厂纷纷在这一领域展开研究,例 ...

  7. 【翻译】A Survey on Generative Diffusion Model(生成扩散模型的综述研究)

    写在开头: 1.本文作者:Hanqun Cao, Cheng Tan, Zhangyang Gao, Guangyong Chen, Pheng-Ann Heng, Senior Member, IE ...

  8. 扩散模型爆火,这是首篇综述与Github论文分类汇总

    点击上方"AI遇见机器学习",选择"星标"公众号 重磅干货,第一时间送 编译:机器之心 本文首次对现有的扩散生成模型(diffusion model)进行了全面 ...

  9. 扩散模型(Diffusion Model)最新综述!

    点击下方卡片,关注"CVer"公众号 AI/CV重磅干货,第一时间送达 本综述来自西湖大学李子青实验室.香港中文大学Pheng-Ann Heng和浙江大学陈广勇团队,对现有的扩散生 ...

最新文章

  1. 中科创达孙力:不迷信 AI 算法,智能视觉如何转型升级?
  2. 创建自己的人脸识别系统
  3. 好书 《古代的中医》 《麦肯锡卓越工作方法》
  4. 通用路由封装(GRE)×××配置
  5. python与matlab混合编程_python 与 matlab 混编
  6. 比较 Excel 中两列的差异,并用箭头标识和指向匹配结果
  7. 链表选择排序算法功能实现演示
  8. Dubbo RESTful风格
  9. 软件项目开发流程以及人员职责
  10. Python统计共同参演电影最多的演员组合
  11. [李景山php]每天TP5-20161205|Loader.php-3
  12. 最简单的vscode使用入门教程
  13. IGP-LAB-EIGRP-1
  14. 数据库性能测试:sysbench用法详解
  15. 解决idea下tomcat乱码
  16. postgresql 解锁表
  17. 卸载手机自带的系统软件
  18. Web安全测试工具Appscan
  19. uniapp打开外部链接
  20. location.href和open的几种用法和区别

热门文章

  1. c语言控制继电器开合程序,求STC89c52单片机用倒计时控制继电器开、合的C语言程序,晶振12.000...
  2. 关闭java安全警告_总是弹出下面这个安全警告,请问在哪里可关掉?
  3. python下载清华镜像_【Anaconda下载】Anaconda3清华镜像下载 v5.3.1 最新版-开心电玩...
  4. 使用jsQR识别二维码
  5. 实地审核和系统审核_实地审核及调查
  6. Windows + Ubuntu 18.04 双系统安装教程
  7. 献给那些有梦想的程序员'
  8. 小米上市,雷军或成中国首富?作为科技粉也许你该关注的是这些
  9. Excel2010多开独立窗口【亲测可用】
  10. Linux中IPsec的实现--(实例)