根据关键字生成句子:

读进关键字,随机选择处理手段(增删改)以及待处理word的位置,然后计算接受/拒绝概率,根据概率生成一个新的序列,再循环这一过程,循环次数是500,每次都将困惑度最低的生成句子放在列表中第一个位置,最后根据config设置的最短长度(如7),当列表中的一个句子长度大于7时,则将该句子输出,作为最终生成的句子。

其中,计算接受/拒绝概率的方法:

先计算一个句子的固定分布:(=语言模型中该句的概率*关键字的指示函数)

再计算某个token被接受的概率:

论文翻译:

1.MH采样的框架:包括建议设计,固定分布,接受决定

1)温和条件下,样本得分不会瘦脸为马尔科夫链的固定分布。所以,目的是设计一个马尔科夫链,其固定分布是想要的句子分布。

首先,MH采样器分两步解决这个问题:一是提出一个实验性转换,根据接受率来接受或者拒绝一个建议。接受/拒绝率通过想要的固定分布和建议的固定分布来计算,这确保了细节平衡条件,该条件保证MH收敛到想要的分布。

让 π(x)表示我们想要从中取样的句子的分布(x表示一个特定的句子)。MH从任意状态x0开始(一个出示句子或 一系列关键字),在每个步骤t,根据建议的分布g(x’|x_t-1),提出一个新的句子x‘,其中x_t-1表示最后一步的句子。

根据概率1-A,一个建议应该被拒绝,则x_t = x_t-1。理论上,对于一个不可再分的且非周期性的马尔科夫链来说,当n趋于无穷时,样本x_n的分布会收敛到π(x)。实际上,初始的几个样本会被丢弃。如果样本收敛到固定分布,则该马尔科夫链建立完成。

2)

2.根据关键字生成句子实验

使用500万句子训练出一个语言模型,使用该语言模型训练CGMH模型

输入:使用3000个句子提供关键字,用来测试。对于每个句子,随机采样一个或者多个words作为限制条件。

输出:对于MH采样,我们使用关键字序列作为初始状态,然后选择100步后有最低困惑度(即流畅度最高)的语句作为输出。


CGMH:Constrained Sentence Generation by Metropolis-Hastings Sampling解读的更多相关文章

  1. Markov Chain Monte Carlo Simulation using C# and MathNet

    Math.Net Numerics has capability to conduct Markov Chair Monte Carlo simulations, yet the document i ...

  2. 蒙特卡洛马尔科夫链(MCMC)

    蒙特卡洛马尔科夫链(MCMC) 标签: 机器学习重要性采样MCMC蒙特卡洛 2016-12-30 20:34 3299人阅读 评论(0) 收藏 举报  分类: 数据挖掘与机器学习(41)  版权声明: ...

  3. LDA背景资料

    [https://zhuanlan.zhihu.com/p/30226687] LDA模型的前世今生 在文本挖掘中,有一项重要的工作就是分析和挖掘出文本中隐含的结构信息,而不依赖任何提前标注的信息.L ...

  4. Metropolis-Hastings算法

    (学习这部分内容大约需要1.5小时) 摘要 马尔科夫链蒙特卡洛(Markov chain Monte Carlo, MCMC)是一种近似采样算法, 它通过定义稳态分布为 \(p\) 的马尔科夫链, 在 ...

  5. 为什么要用Markov chain Monte Carlo (MCMC)

    马尔科夫链的蒙特卡洛采样的核心思想是构造一个Markov chain,使得从任意一个状态采样开始,按该Markov chain转移,经过一段时间的采样,逼近平稳分布stationary distrib ...

  6. Image Paragraph论文合辑

    A Hierarchical Approach for Generating Descriptive Image Paragraphs (CPVR 2017) Li Fei-Fei. 数据集地址: h ...

  7. (转)A Survival Guide to a PhD

    Andrej Karpathy blog About Hacker's guide to Neural Networks A Survival Guide to a PhD Sep 7, 2016 T ...

  8. (转) A Survival Guide to a PhD

    A Survival Guide to a PhD Sep 7, 2016 This guide is patterned after my “Doing well in your courses”, ...

  9. GAN︱GAN 在 NLP 中的尝试、困境、经验

    GAN 自从被提出以来,就广受大家的关注,尤其是在计算机视觉领域引起了很大的反响,但是这么好的理论是否可以成功地被应用到自然语言处理(NLP)任务呢? Ian Goodfellow 博士 一年前,网友 ...

随机推荐

  1. Codeforce 474A - Keyboard

    Our good friend Mole is trying to code a big message. He is typing on an unusual keyboard with chara ...

  2. Centos7安装gitlab-ce

    1.官方推荐方式安装 参考https://www.gitlab.com.cn/installation/#centos-7?version=ce sudo yum install -y curl po ...

  3. Wannafly Camp 2020 Day 1E 树与路径 - 树上差分,LCA

    #include <bits/stdc++.h> using namespace std; #define int long long const int N = 1000005; vec ...

  4. Springboot 中的配置文件

    Spring Boot提供了两种常用的配置文件,分别是properties文件和yml文件.他们的作用都是修改Spring Boot自动配置的默认值. 技术:yaml.properties语法,Con ...

  5. TF file

    To software:Design rules for placement and routing interconnect resistance /capacitance data for gen ...

  6. 利用Marshal来管理非托管资源

    void MarshalChartDemo() { string name = "xuwei"; IntPtr pName = Marshal.AllocHGlobal(name. ...

  7. Ubuntu 安装交叉编译器出错问题

    安装教程网上有很多,可参考:Ubuntu14.04(64位)下gcc-linaro-arm-linux-gnueabihf交叉编译环境搭建 但是我的问题一直是路径搭好了,就是找不到文件:反复查找,花了 ...

  8. Windwos查看本地局域网内所有的ip方法

    Windows平台ping测试局域网所有在用IP .打开cmd命令窗口 .输入命令:,,) DO ping -w -n .%i //这个是自己局域网的ip地址前三位 查看自己ip信息的命令是ipcon ...

  9. windows重建ESP分区修复引导

    开始 装在虚拟机里面的win7实在是太卡了,所以准备把虚拟磁盘文件复制到固态硬盘,,,但是,,, 我只有128GB固态... 那就只能卸载之前通宵装的linux 好气 首先需要装进入PE UEFI + ...

  10. python3练习100题——026

    原题链接:http://www.runoob.com/python/python-exercise-example26.html 题目:利用递归方法求5!. 是25题递归方式的简化版所以很容易. 我的 ...