©PaperWeekly 原创 · 作者|苏剑林
单位|追一科技
研究方向|NLP、神经网络
在上一篇文章中,我们介绍了“受限文本生成”这个概念,指出可以通过量化目标并从中采样的方式来无监督地完成某些带条件的文本生成任务。同时,上一篇文章还介绍了“重要性采样”和“拒绝采样”两个方法,并且指出对于高维空间而言,它们所依赖的易于采样的分布往往难以设计,导致它们难以满足我们的采样需求。
此时,我们就需要引入采样界最重要的算法之一“Markov Chain Monte Carlo(MCMC)”方法了,它将马尔可夫链和蒙特卡洛方法结合起来,使得(至少理论上是这样)我们从很多高维分布中进行采样成为可能,也是后面我们介绍的受限文本生成应用的重要基础算法之一。本文试图对它做一个基本的介绍。
马尔可夫链
马尔可夫链实际上就是一种“无记忆”的随机游走过程,它以转移概率
为基础,从一个初始状态
出发,每一步均通过该转移概率随机选择下一个状态,从而构成随机状态列
,我们希望考察对于足够大的步数 t,
所服从的分布,也就是该马尔可夫链的“平稳分布”。
假设 所服从的分布为 ,那么 所服从的分布就是:
如果已经达到平衡,那么应该有 ,所以如果 是平稳分布,那么它满足:
或者说,平稳分布就是上述关于 的方程的非零解。
那么,有一个需要回答的问题是:上述方程的非零解唯一吗? 这个问题的答案关系到马尔可夫链的平稳分布是否依赖于初始状态 。很遗憾,答案是不一定。简单来说,非零解唯一的条件是该马尔可夫链的任意两个状态都是连通的,说具体点就是对于任意两个状态 ,存在状态链 ,使得:
说白了,就是从状态 跳转到 (不要求一步到位,可以多步)的概率大于 0。其实这个判据也不难理解,形象比喻就是指平稳分布唯一的条件是马尔可夫链不能存在“孤岛”,要不然如果 在孤岛内,那么就永远在孤岛内游走了,如果 在孤岛外,那么也就永远在孤岛外游走了,从而不同的初始状态导致了不同的平稳分布。
细致平稳
由于马尔可夫链存在一个平稳分布,而构建马尔可夫链则只需要一个转移矩阵,如果我们可以构建一个易于采样的转移矩阵,并且它的平稳分布就是我们要采样的分布 ,那么迭代足够多步后,不就相当于从 中采样了?这就是所有 MCMC 方法的思想。
当然,马尔可夫链往往需要迭代多步才能达到平稳,因此采样往往比较费时,但即便如此,终究能在有限成本内完成了采样过程,因此在很多情况下依然是实用的。
假设 MCMC 是可行的,那么很显然关键之处就是如何构造出一个转移概率 ,使得它的平稳分布是我们给定的分布 ,同时,根据上一篇文章的介绍,我们往往只知道跟 成正比的 ,而不知道归一化因子,因此构建 的过程中,不能依赖于 的归一化因子。
为此,我们需要用到一个“细致平稳条件”:
细致平稳条件: 如果分布 和转移概率 满足恒等式:
那么 就是 的平稳分布。
名字看上去高端,实际上它非常容易证明,只要两端对 求和,马上就得到式(2)了,满足式(2)就说明 是 的平稳分布。“细致平稳条件”是判断平稳分布的一个充分条件,但不是必要的,它的价值在于提供了一种比较方便的为任意分布构建转移概率的方式。
转移概率
给定平稳分布 以及任意的参考转移概率 ,如果它满足细致平稳条件,那么就万事大吉,直接用参考转移概率 作为最终的概率就好,如果它不满足,那么记