©PaperWeekly 原创 · 作者|苏剑林

单位|追一科技

研究方向|NLP、神经网络

最近,笔者入了一个新坑:基于离散优化的思想做一些文本生成任务。简单来说,就是把我们要生成文本的目标量化地写下来,构建一个分布,然后搜索这个分布的最大值点或者从这个分布中进行采样,这个过程通常不需要标签数据的训练。

由于语言是离散的,因此梯度下降之类的连续函数优化方法不可用,并且由于这个分布通常没有容易采样的形式,直接采样也不可行,因此需要一些特别设计的采样算法,比如拒绝采样(Rejection Sampling)、MCMC(Markov Chain Monte Carlo)、MH 采样(Metropolis-Hastings Sampling)、吉布斯采样(Gibbs Sampling),等等。

有些读者可能会觉得有些眼熟,似乎回到了让人头大的学习 LDA(Latent Dirichlet Allocation)的那些年?没错,上述采样算法其实也是理解 LDA 模型的必备基础。本文我们就来回顾这些形形色色的采样算法,它们将会出现在后面要介绍的丰富的文本生成应用中。

明确目标

很多时候,我们需要根据一些特定的信息 来生成目标文本 ,用数学的话说就是条件语言模型 ,不过我们无法得到足够多的语料对 去直接监督训练一个条件语言模型,而是只能训练一个无条件的语言模型 ,但我们又可以人为地设计一个指标来定量描述 和 之间的联系。

那么在这种情况下,如何根据无条件的语言模型 和 之间的联系来做有条件的文本生成,便成为了我们的研究对象。我们可以称之为“受限文本生成(Constrained Text Generation)”

举例来说,用关键词造句,那么 就是关键词的集合,我们可以定义示性函数:

继而定义:

保证了生成句子的流畅性, 保证了生成句子包含所要求的关键词,那么问题就可以变成最大化操作 或采样操作 。当然,这里的 还不是概率分布,要完成归一化后才是真正的概率分布:

但分母通常是难以显式计算出来的。那也就是说,我们对待采样分布也只了解到它正比于某个函数 ,而不知道精确的分布表达式。

类似的例子并不少,比如说文本摘要。什么是文本摘要呢?其实就是用更少的文字 尽可能表达出跟原文 一样的意思,这时候我们可以定义:

这里的 是某个文本相似度函数,而 是长度的示性函数,即 的长度在某个范围(可能依赖于 )内,它就为 1,否则为 0。此时我们同样得到了一个未归一化的概率分布 ,需要最大化它或者从它里边采样。

很明显,这个目标就意味着我们要得到一段跟原文语义尽可能相似的、长度满足一定约束的文字,这不就是摘要的存在意义吗?所以,这套思路的核心出发点就在于:我们要把自己要生成的目标定量地捋清楚,然后再去执行下一步操作。

困难分析

所以,抛开前面的背景不说,现在我们面临的问题就是有一个分布 ,我们只知道 ,即:

中的分母我们无法显式计算出来。在本系列文章中, 代表文本,即一个离散元素的序列,但后面的推论同样也适用于 是连续型向量的场景。现在我们要搜索最大位置 或进行采样 ,后面我们将会看到,搜索最大值其实也可以看成是采样的特例,因此我们主要关心采样方式。

前面说了,之所以需要设计一些特别的算法来完成采样,是因为直接从 中采样是困难的,而我们需要理解采样的困难所在,才能真正理解后面所设计的采样算法的关键之处。困难在哪?

如果 的候选值空间不大,哪怕有 100 万个候选值,我们都可以把每个 都算出来,然后按照普通的类别采样来进行。然而,一般 的候选值空间远远不止 100 万,假如 有 10 个分量,每个分量有 1 万个选择(对应于候选字数目),那么总的排列就有 种了,不可能事先算好每一种排列的概率然后依概率采样。

那怎么办呢?所谓“不积硅步,无以至千里”,那就只能一步步来了,也就是说,我没法直接实现 选 1,那我做 10 次“ 选 1”可以吗?这就对应着所谓的“自回归生成”:

这样我们就可以先从 采样一个 ,然后从 中采样一个 ,依此递归了。但是,自回归生成只是对应于无条件的语言模型或者是有监督训练的 Seq2Seq 模型,而如果希望像前面举的例子那样,往无条件语言模型的生成过程中加点约束,那么对应出来的模型就不再是自回归的了,也就无法按照这样的递归采样了。

所以,我们就不得不需要后面介绍的各种采样算法了,它也是“一步步来”的思想,但所使用的分布形式更加广泛一些。

重要采样

在《从采样看优化:可导优化与不可导优化的统一视角》[1] 、《如何划分一个跟测试集更接近的验证集?》[2] 等文章里,我们介绍过“重要性采样”的概念,即如果我们想估计期望 ,但是 又不是易于采样的分布,那么我们可以找一个跟 相近的、易于采样的分布 ,然后根据下述变换:

转化为从 采样来算 的期望了,也就是用 对每个样本进行加权,所以它被称为“重要性采样(Importance Sampling)”。如果只知道 ,那么重要性采样也是可以进行的,这是因为:

所以:

这样一来,我们发现上式只依赖于 的相对值,不依赖于它的绝对值,所以把 换成跟它成正比的 也是可以的,最终简化成:

拒绝采样

上一节的重要性采样实现了将复杂分布期望转化为简单分布期望,但这还不是我们的真正目的,我们要实现的是把样本从分布 中采样出来,而不是估算它的某个期望。思想依然跟重要性采样一样,引入易于采样的分布 ,然后从中随机地筛掉某些样本,使得剩下的样本服从分布 。

具体来说,假设有函数 ,我们按照如下流程进行采样(即“拒绝采样”):

从 采样一个样本 ,从 中采样一个随机数 ,若 则接受该样本,否则拒绝并重新按照此流程采样。

那么,此时采样出来的 真正的概率分布是什么呢?其实也不难,由于样本 被保留下来的概率是 ,因此它的相对概率就是 ,我们只需要将它重新归一化:

就得到拒绝采样对应的真正的概率分布了,从这个形式也可以看出,将接受率乘以一个 0 到 1 之间的数,理论上拒绝采样对应的分布是不变的。

这个过程启示我们,拒绝采样可以让我们实现从正比于 的分布中采样,那么根据,我们可以让 作为接受概率,来进行从 出发的拒绝采样,结果就相当于从 采样了。

当然,还没那么简单,根据概率的归一化性质,除非 恒等于 ,否则 不可能一直都在 内。但这不要紧,只要 有上界,那么我们就可以选择一个足够大的常数 M,使得 ,此时以 为接受概率即可,刚才我们说了,乘以一个常数不会影响拒绝采样对应的分布。换句话说,也就是这个过程同样不依赖于完全精确的 ,可以将 换成跟它成正比的 。

关于接受率 ,尽管理论上只要求它 就行了,但实际上还是以 为好,这是因为过小的接受率会导致拒绝太多(几乎来一个拒绝一个),采样效率太低,生成一个合理的样本的成本过大了。

类似地,尽管理论上对 的要求只是易于采样并且 有上界,但实际上 与 仍然是越相近越好,否则依然可能造成接受率过低而导致采样成本大到难以接受。所以,尽管拒绝采样看上去提供了一种几乎能从任意分布 中进行采样的方案,但实际应用时近似分布 的设计依然是一个不小的难题。

本文小结

从本文开始,我们开了个新坑,试图从离散优化的角度来完成某些文本生成任务(受限文本生成)。它通过确定一个定量的评估目标,然后通过最大化这个目标或者从中采样就可以得到我们想要的输出,而不需要标签数据监督训练新模型。

在这个过程中,所要用到的工具是一些主要是采样算法,本文先介绍了其中很基本的重要性采样和拒绝采样,后面将会继续完善该系列文章,敬请大家期待。

参考文献

[1] https://kexue.fm/archives/7521

[2] https://kexue.fm/archives/7805

更多阅读

#投 稿 通 道#

 让你的论文被更多人看到 

如何才能让更多的优质内容以更短路径到达读者群体,缩短读者寻找优质内容的成本呢?答案就是:你不认识的人。

总有一些你不认识的人,知道你想知道的东西。PaperWeekly 或许可以成为一座桥梁,促使不同背景、不同方向的学者和学术灵感相互碰撞,迸发出更多的可能性。

PaperWeekly 鼓励高校实验室或个人,在我们的平台上分享各类优质内容,可以是最新论文解读,也可以是学习心得技术干货。我们的目的只有一个,让知识真正流动起来。

???? 来稿标准:

• 稿件确系个人原创作品,来稿需注明作者个人信息(姓名+学校/工作单位+学历/职位+研究方向)

• 如果文章并非首发,请在投稿时提醒并附上所有已发布链接

• PaperWeekly 默认每篇文章都是首发,均会添加“原创”标志

???? 投稿邮箱:

• 投稿邮箱:hr@paperweekly.site

• 所有文章配图,请单独在附件中发送

• 请留下即时联系方式(微信或手机),以便我们在编辑发布时和作者沟通

????

现在,在「知乎」也能找到我们了

进入知乎首页搜索「PaperWeekly」

点击「关注」订阅我们的专栏吧

关于PaperWeekly

PaperWeekly 是一个推荐、解读、讨论、报道人工智能前沿论文成果的学术平台。如果你研究或从事 AI 领域,欢迎在公众号后台点击「交流群」,小助手将把你带入 PaperWeekly 的交流群里。

​搜出来的文本:从文本生成到搜索采样相关推荐

  1. 面向可解释的NLP:北大、哈工大等提出文本分类的生成性解释框架

    作者 | Hui Liu, Qingyu Yin, William Yang Wang 译者 | Rachel 编辑 | Jane 出品 | AI科技大本营(ID: rgznai100) [导语]北大 ...

  2. FGPM:文本对抗样本生成新方法

    ©PaperWeekly 原创 · 作者|孙裕道 学校|北京邮电大学博士生 研究方向|GAN图像生成.情绪对抗样本生成 论文标题: Fast Gradient Projection Method fo ...

  3. 用文本指导文本:基于文本的自监督可控文本生成模型

    论文标题: CoCon: A Self-Supervised Approach for Controlled Text Generation 论文作者: Alvin Chan, Yew-Soon On ...

  4. 论文浅尝 | 通过文本到文本神经问题生成的机器理解

    论文笔记整理:程茜雅,东南大学硕士,研究方向:自然语言处理,知识图谱. Citation: Yuan X, WangT, Gulcehre C, et al. Machine comprehensio ...

  5. 深度学习之文本摘要自动生成

    当我们点开某个网站或某个新闻APP的时候,经常能看到这样的题目:"14亿人都不知道的真相,历史的血泪--"."删前速看!XXX视频流出"等,可是当我们点进去的时 ...

  6. Text to image论文精读GR-GAN:逐步细化文本到图像生成 GRADUAL REFINEMENT TEXT-TO-IMAGE GENERATION

    目录 一.原文摘要 二.为什么提出GR-GAN 三.GR-GAN 3.1.整体框架 3.2.逐步求精生成器:GRG 3.2.1.图像初始化阶段 3.2.2.句子级细化阶段 3.2.3.单词级细化阶段 ...

  7. 国外人工智能研究:一种可以通过文本描述直接生成视频的AI模型

    文章来源:ATYUN AI平台 最近,一种新的方法可能会让电影编剧拒绝来自大型电影制片厂的巨额预算和强大资源 - 依靠文本进行视频生成(Video Generation from Text).当然,从 ...

  8. 清华BAAI唐杰团队提出第一个开源的通用大规模预训练文本到视频生成模型CogVideo,含94亿超大参数量!代码即将开源!...

    关注公众号,发现CV技术之美 我爱计算机视觉 专业计算机视觉技术分享平台,"有价值有深度",分享开源技术与最新论文解读,传播视觉技术的业内最佳实践.知乎/微博:我爱计算机视觉,官网 ...

  9. 比Imagen更高效!谷歌新作Muse:通过掩码生成Transformer进行文本到图像生成

    点击下方卡片,关注"CVer"公众号 AI/CV重磅干货,第一时间送达 点击进入->CV微信技术交流群 转载自:机器之心 图像生成领域越来越卷了! 文本到图像生成是 2022 ...

最新文章

  1. sklearn中的cross_val_score交叉验证
  2. 聊聊接口优化的几个方法
  3. Java 虚拟机诊断利器
  4. 嫦娥五号完美落月,背后黑科技令人惊叹
  5. c++标准库中,含有链表的类list
  6. jquery中的 $(function(){})
  7. 如何用Java打出DNA图案_DNA (Java代码)
  8. 嵌入式电路设计(从电路到系统)
  9. 线程池(领导者-追随者,生产者-消费者等)小结
  10. 3年flash游戏开发小结
  11. 齐鲁工业大学计算机学院复试名单,齐鲁工业大学2019年硕士研究生拟录取名单公示...
  12. MacBook蓝牙鼠标 自动断开问题
  13. 左神讲算法——超级水王问题(详解)
  14. 【Unity】 HTFramework框架(十四)Audio音频管理器
  15. 兴业数金java开发笔试+一面
  16. apt-get: relocation error:/libapt-private.so.0.0 version APTPKG_5.0 not defined in file libapt-pkg
  17. 由于代理原因,联网失败的解决方法
  18. 关于无符号整数的加法
  19. 无胁科技-TVD每日漏洞情报-2022-12-15
  20. 每日安全简讯20160722

热门文章

  1. 第四周课程总结试验报告(二)
  2. asp.net代码审计起始篇之系统搭建
  3. 杨校老师课堂之Java类与对象、封装、构造方法
  4. 第1章python基础语法1
  5. Flume的Channel
  6. python之路——常用模块2
  7. BI Content、Metadata Repository
  8. [C#] Socket 通讯,一个简单的聊天窗口小程序
  9. java 转账 锁_Java多线程 多个人转账发生死锁
  10. angularjs html编辑器,AngularJS集成wangeditor富文本编辑器