©PaperWeekly 原创 · 作者|苏剑林
单位|追一科技
研究方向|NLP、神经网络
在变分自编码器:VAE + BN = 更好的 VAE 中,我们讲到了 NLP 中训练 VAE 时常见的 KL 散度消失现象,并且提到了通过 BN 来使得 KL 散度项有一个正的下界,从而保证 KL 散度项不会消失。事实上,早在 2018 年的时候,就有类似思想的工作就被提出了,它们是通过在 VAE 中改用新的先验分布和后验分布,来使得 KL 散度项有一个正的下界。
该思路出现在 2018 年的两篇相近的论文中,分别是《Hyperspherical Variational Auto-Encoders》[1] 和《Spherical Latent Spaces for Stable Variational Autoencoders》[2],它们都是用定义在超球面的 von Mises–Fisher(vMF)分布来构建先后验分布。某种程度上来说,该分布比我们常用的高斯分布还更简单和有趣。
KL散度消失
我们知道,VAE 的训练目标是:
其中第一项是重构项,第二项是 KL 散度项,在变分自编码器:原来是这么一回事中我们就说过,这两项某种意义上是“对抗”的,KL 散度项的存在,会加大解码器利用编码信息的难度,如果 KL 散度项为 0,那么说明解码器完全没有利用到编码器的信息。
在 NLP 中,输入和重构的对象是句子,为了保证效果,解码器一般用自回归模型。然而,自回归模型是非常强大的模型,强大到哪怕没有输入,也能完成训练(退化为无条件语言模型),而刚才我们说了,KL 散度项会加大解码器利用编码信息的难度,所以解码器干脆弃之不用,这就出现了 KL 散度消失现象。
早期比较常见的应对方案是逐渐增加 KL 项的权重,以引导解码器去利用编码信息。现在比较流行的方案就是通过某些改动,直接让 KL 散度项有一个正的下界。将先后验分布换为 vMF 分布,就是这种方案的经典例子之一。
vMF分布
vMF 分布是定义在 d-1 维超球面的分布,其样本空间为 ,概率密度函数则为:
其中 是预先给定的参数向量。不难想象,这是 上一个以 为中心的分布,归一化因子写成 的形式,意味着它只依赖于 的模长,这是由于各向同性导致的。由于这个特性,vMF 分布更常见的记法是设 ,从而:
这时候
就是
的夹角余弦,所以说,vMF 分布实际上就是以预先为度量的一种分布。由于我们经常用余弦值来度量两个向量的相似度,因此基于 vMF 分布做出来的模型,通常更能满足我们的这个需求。当
的时候,vMF 分布是球面上的均匀分布。
从归一化因子