生成式模型可以抽象成数据传输游戏:Alice要向Bob发送一些数据,而他们的目标是发送的损失 尽量小,所谓损失就是编码的位数 。
数据传输视角下的语言模型
假设Alice和Bob有一个共同的词表$\mathcal{V}$。现在,Alice要给Bob发送一段包含$n$个token的文本$\boldsymbol{x}=(x_1, \cdots, \boldsymbol{x}_n)$。
注意,Alice并非将整段文本直接发送给Bob,而是逐个token发送(与LM的工作方式一样)。假设Bob能够根据已经接收到的token预测Alice下一个将要发送的token,也就是说Bob有一个$\mathcal{V}$上的分布:
$$P(x_i|x_{<i})$$
那么发送每个token的损失就是根据条件概率分布$p$对这个token进行最优编码的位数,即条件概率的负对数,而发送这段文本的损失等价于发送所有token的损失:
$$-\sum_{i=1}^{n}\log P(x_i|x_{<i})=-\log\prod_{i=1}^{n} P(x_i|x_{<i})=-\log P(\boldsymbol{x})$$
注:以上的对数函数$\log$均以2为底。
没错,根据以上数据传输游戏的目标,我们可以推出语言模型的损失函数。这个框架同样适用于VAE。
VAE的损失函数
$$
\begin{align*}
-\log P(\boldsymbol{x}) &= -\log\int P(\boldsymbol{x},\boldsymbol{z})d\boldsymbol{z} \\
&=-\log\int P(\boldsymbol{x},\boldsymbol{z})\frac{P_{\boldsymbol{\theta}}(\boldsymbol{z}|\boldsymbol{x})}{P_{\boldsymbol{\theta}}(\boldsymbol{z}|\boldsymbol{x})}d\boldsymbol{z} \\
&=-\log\mathop{\mathbb{E}}\limits_{ P_{\boldsymbol{\theta}}(\boldsymbol{z}|\boldsymbol{x})} \frac{P(\boldsymbol{x},\boldsymbol{z})}{P_{\boldsymbol{\theta}}(\boldsymbol{z}|\boldsymbol{x})} \\
&\leq -\mathop{\mathbb{E}}\limits_{ P_{\boldsymbol{\theta}}(\boldsymbol{z}|\boldsymbol{x})}[\log P_{\boldsymbol{\phi}}(\boldsymbol{x}|\boldsymbol{z}) + \log \frac{P(\boldsymbol{z})}{P_{\boldsymbol{\theta}}(\boldsymbol{z}|\boldsymbol{x})}] \\
&=-\mathop{\mathbb{E}}\limits_{ P_{\boldsymbol{\theta}}(\boldsymbol{z}|\boldsymbol{x})}\log P_{\boldsymbol{\phi}}(\boldsymbol{x}|\boldsymbol{z}) + \int P_{\boldsymbol{\theta}}(\boldsymbol{z}|\boldsymbol{x})\log\frac{P_{\boldsymbol{\theta}}(\boldsymbol{z}|\boldsymbol{x})}{P(\boldsymbol{z})} d\boldsymbol{z} \\
&=-\mathop{\mathbb{E}}\limits_{ P_{\boldsymbol{\theta}}(\boldsymbol{z}|\boldsymbol{x})}\log P_{\boldsymbol{\phi}}(\boldsymbol{x}|\boldsymbol{z}) + \text{KL}[P_{\boldsymbol{\theta}}(\boldsymbol{z}|\boldsymbol{x})|P(\boldsymbol{z})]
\end{align*}
$$
注: 此处$P(\cdot;\boldsymbol{\theta})$代表使用参数为$\boldsymbol{\theta}$的神经网络对$P(\cdot)的$估计。另外,
带有误差项的推导可参考文献[1]中的公式9-16。
数据传输视角下的VAE
在新一局游戏中,Alice首先将要发送的内容$x$转化成一个分布$P_\boldsymbol{\theta}(\boldsymbol{z}|\boldsymbol{x})$,这个转化过程是由一个参数为$\boldsymbol{\theta}$的神经网络完成的。然后,Alice从这个分布中采样得到变量$z$并发送给Bob,Bob利用一个参数为$\boldsymbol{\phi}$的神经网络对$z$做解码,从而得到x的条件概率分布$P_\boldsymbol{\phi}(x|z)$。
另一方面,Bob并不知道Alice的分布$P_\boldsymbol{\theta}(\boldsymbol{z}|\boldsymbol{x})$长什么样,但他拥有一个预定义的关于$\boldsymbol{z}$的分布$P(\boldsymbol{z})$。
那么这个传输过程的整体损失就包括两个部分:Alice发送$\boldsymbol{z}$的损失以及Bob解码得到$\boldsymbol{x}$的损失。
先看第一个方面,Alice发送的变量$\boldsymbol{z}$服从的分布$P_\boldsymbol{\theta}(\boldsymbol{z}|\boldsymbol{x})$,理想情况下,发送的$\boldsymbol{z}$的最低损失是$-\mathop{\mathbb{E}}\limits_{P_{\boldsymbol{\theta}}(\boldsymbol{z}|\boldsymbol{x})}\log P_{\boldsymbol{\theta}}(\boldsymbol{z}|\boldsymbol{x})$,也就是发送$z$最少需要的位数。不过,我们应该意识到$P(\boldsymbol{z})$与$P_\boldsymbol{\theta}(\boldsymbol{z}|\boldsymbol{x})$并不一致,所以实际需要的位数为$-\mathop{\mathbb{E}}\limits_{P_{\boldsymbol{\theta}}(\boldsymbol{z}|\boldsymbol{x})}\log P(\boldsymbol{z})$,那么额外的损失就是: $$ \mathop{\mathbb{E}}\limits_{P_{\boldsymbol{\theta}}(\boldsymbol{z}|\boldsymbol{x})}[\log P_{\boldsymbol{\theta}}(\boldsymbol{z}|\boldsymbol{x})-\log P(\boldsymbol{z})] = \text{KL}[P_{\boldsymbol{\theta}}(\boldsymbol{z}|\boldsymbol{x})|P(\boldsymbol{z})] $$ 再来看第二个方面的损失。Bob将$\boldsymbol{z}$解码得到$\boldsymbol{x}$,平均所需的位数就是; $$ -\mathop{\mathbb{E}}\limits_{ P_{\boldsymbol{\theta}}(\boldsymbol{z}|\boldsymbol{x})}\log P_{\boldsymbol{\phi}}(\boldsymbol{x}|\boldsymbol{z}) $$ 综上,传输游戏的目标就是最小化整体的损失: $$ -\mathop{\mathbb{E}}\limits_{ P_{\boldsymbol{\theta}}(\boldsymbol{z}|\boldsymbol{x})}\log P_{\boldsymbol{\phi}}(\boldsymbol{x}|\boldsymbol{z})+\text{KL}[P_{\boldsymbol{\theta}}(\boldsymbol{z}|\boldsymbol{x})|P(\boldsymbol{z})] $$
先看第一个方面,Alice发送的变量$\boldsymbol{z}$服从的分布$P_\boldsymbol{\theta}(\boldsymbol{z}|\boldsymbol{x})$,理想情况下,发送的$\boldsymbol{z}$的最低损失是$-\mathop{\mathbb{E}}\limits_{P_{\boldsymbol{\theta}}(\boldsymbol{z}|\boldsymbol{x})}\log P_{\boldsymbol{\theta}}(\boldsymbol{z}|\boldsymbol{x})$,也就是发送$z$最少需要的位数。不过,我们应该意识到$P(\boldsymbol{z})$与$P_\boldsymbol{\theta}(\boldsymbol{z}|\boldsymbol{x})$并不一致,所以实际需要的位数为$-\mathop{\mathbb{E}}\limits_{P_{\boldsymbol{\theta}}(\boldsymbol{z}|\boldsymbol{x})}\log P(\boldsymbol{z})$,那么额外的损失就是: $$ \mathop{\mathbb{E}}\limits_{P_{\boldsymbol{\theta}}(\boldsymbol{z}|\boldsymbol{x})}[\log P_{\boldsymbol{\theta}}(\boldsymbol{z}|\boldsymbol{x})-\log P(\boldsymbol{z})] = \text{KL}[P_{\boldsymbol{\theta}}(\boldsymbol{z}|\boldsymbol{x})|P(\boldsymbol{z})] $$ 再来看第二个方面的损失。Bob将$\boldsymbol{z}$解码得到$\boldsymbol{x}$,平均所需的位数就是; $$ -\mathop{\mathbb{E}}\limits_{ P_{\boldsymbol{\theta}}(\boldsymbol{z}|\boldsymbol{x})}\log P_{\boldsymbol{\phi}}(\boldsymbol{x}|\boldsymbol{z}) $$ 综上,传输游戏的目标就是最小化整体的损失: $$ -\mathop{\mathbb{E}}\limits_{ P_{\boldsymbol{\theta}}(\boldsymbol{z}|\boldsymbol{x})}\log P_{\boldsymbol{\phi}}(\boldsymbol{x}|\boldsymbol{z})+\text{KL}[P_{\boldsymbol{\theta}}(\boldsymbol{z}|\boldsymbol{x})|P(\boldsymbol{z})] $$
参考文献
- Calvin L, et al. Understanding Diffusion Models: A Unified Perspective, arXiv:2208.11970