对比预测编码表示学习
引言
文章主要提出如下几点:首先将高维数据压缩到更加紧凑的潜在嵌入(latent embdding)空间,在这个空间中条件预测更容易被建模。第二,在这个潜在空间中使用自回归模型,以对未来的多个步骤做预测。在最后,依靠噪声对比估计文献的损失函数,以类似的方式用于学习自然语言模型中的词嵌入,从而允许整个模型端到端的训练。我们将得到的模型,对比预测编码( CPC )应用于广泛不同的数据模态,图像,语音,自然语言和强化学习,并表明相同的机制在这些领域的每个领域学习有趣的高级信息,表现优异。
对比预测编码(CPC,Constrastive Predicting Coding)
动机和直觉
模型背后的主要直觉是学习编码(高维)信号不同部分之间潜在共享信息的表示。同时它丢弃了更局部的低级信息和噪声。在时间序列和高维建模中,使用下一步预测的方法利用了信号的局部平滑性。在未来进一步预测时,共享的信息量变得更低,模型需要推断更多的全局结构。这些跨越多个时间步的"慢特征" 往往是更有趣的(例如,语音中的音素和语调,图像中的物体,或书籍中的故事情节。)。
直接建模 p ( x ∣ c ) p(x|c) p(x∣c)计算代价一般非常大,对于提取 x x x和 c c c之间的共享信息而言,可能不是最优的。当预测未来信息时,我们以最大限度保留原始信号 x x x和 c c c的互信息的方式将目标x (未来)和上下文c (当前)编码成一个紧凑的分布式向量表示(凭借非线性学习映射)
这个方式定义为:
I ( x ; c ) = ∑ x , c p ( x , c ) l o g p ( x , c ) p ( x ) p ( c ) = ∑ x , c p ( x , c ) l o g p ( x ∣ c ) p ( x ) I(x;c)=\sum_{x,c}p(x,c)log\frac{p(x,c)}{p(x)p(c)}=\sum_{x,c}p(x,c)log\frac{p(x|c)}{p(x)} I(x;c)=x,c∑p(x,c)logp(x)p(c)p(x,c)=x,c∑p(x,c)logp(x)p(x∣c)
最大化编码表示之间的互信息。
对比预测编码CPC
Figure 1中展示了对比预测编码(CPC)模型架构,首先, g e n c g_{enc} genc表示一个非线性编码器,它将观测量 x t x_t xt的输入序列映射成潜在表示 z t = g e n c ( x t ) z_t=g_{enc}(x_t) zt=genc(xt),具有较低的时间分辨率。然后,自回归模型 g a r g_ar gar总结所有潜在空间中的 z ≤ t z_{\le t} z≤t并产生一个上下文的潜在表示 c t = g a r ( z ≤ t ) c_t=g_{ar}(z_{\le t}) ct=gar(z≤t)。
不直接建模 p k ( x t + k ∣ c t ) p_k(x_{t+k}|c_t) pk(xt+k∣ct)来预测 x t + k x_{t+k} xt+k,而是建模 x t + k x_{t+k} xt+k和 c t c_t ct之间留存互信息的密度比率。
f k ( x t + k , c t ) ∝ p ( x t + k ∣ c t ) p ( x t + k ) f_k(x_{t+k},c_t)\propto \frac{p(x_{t+k}|c_t)}{p(x_{t+k})} fk(xt+k,ct)∝p(xt+k)p(xt+k∣ct)
注意到密度比f可以非正规化为(不必整合到1)。文章中使用了一个简单的对数双线性模型来建模它:
f k ( x t + k , c t ) = e x p ( z t + k T W k c t ) f_k(x_{t+k},c_t)=exp(z_{t+k}^TW_kc_t) fk(xt+k,ct)=exp(zt+kTWkct)
W k c t W_kc_t Wkct用于每一步k都有一个不同的 W k W_k Wk进行预测。或者,可以使用非线性网络或递归神经网络。
InfoNCE Loss
给定N个随机样本集合X = { x1,… xN },其中1个来自 p ( x t + k ∣ c t ) p(x_{t+k}|c_t) p(xt+k∣ct)的正样本,N - 1个来自"提议"分布 p ( x t + k ) p(x_{t+k}) p(xt+k)的负样本。
L N = − E [ l o g f k ( x t + k , c t ) ∑ x j ∈ X f k ( x j , c t ) ] \mathcal{L}_N=-\mathbb{E}\left[log\frac{f_k(x_{t+k},c_t)}{\sum_{x_j\in \mathbf{X}}f_k(x_j,c_t)}\right] LN=−E[log∑xj∈Xfk(xj,ct)fk(xt+k,ct)]
优化这个损失函数将使得 f k f_k fk估计密度比率。
将这种损失的最优概率记为 p ( d = i ∣ X , c t ) p( d = i | X , c_t) p(d=i∣X,ct),其中[ d = i]是样本xi为"正"样本的指标。样本xi是由条件分布 p ( x t + k ∣ c t ) p(x_{t+k}|c_t) p(xt+k∣ct)而不是建议分布 p ( x t + k ) p(x_{t+k}) p(xt+k)得出的概率如下:
p ( d = i ∣ X , c t ) = p ( x i ∣ c t ) ∏ l ≠ i p ( x l ) ∑ j = 1 N p ( x j ∣ c t ) ∏ l ≠ j p ( x l ) = p ( x i ∣ c t ) p ( x i ) ∑ j = 1 N p ( x j ∣ c t ) p ( x j ) p(d=i|\mathbf{X},c_t)=\frac{p(x_i|c_t)\prod_{l\neq i}p(x_l)}{\sum_{j=1}^N p(x_j|c_t)\prod_{l\neq j}p(x_l)}=\frac{\frac{p(x_i|c_t)}{p(x_i)}}{\sum_{j=1}^N \frac{p(x_j|c_t)}{p(x_j)}} p(d=i∣X,ct)=∑j=1Np(xj∣ct)∏l=jp(xl)p(xi∣ct)∏l=ip(xl)=∑j=1Np(xj)p(xj∣ct)p(xi)p(xi∣ct)
I ( x t + k , c t ) ≥ l o g ( N ) − L N I(x_{t+k},c_t)\ge log(N)-\mathcal{L}_N I(xt+k,ct)≥log(N)−LN
N越大,越贴近。
prove
L N o p t = − E X l o g [ p ( x i ∣ c t ) p ( x i ) p ( x i ∣ c t ) p ( x i ) + ∑ x j ∈ X n e g p ( x j ∣ c t ) p ( x j ) ] = E X l o g [ 1 + p ( x i ) p ( x i ∣ c t ) ∑ x j ∈ X n e g p ( x j ∣ c t ) p ( x j ) ] ≈ E X l o g [ 1 + p ( x i ) p ( x i ∣ c t ) ( N − 1 ) E x j p ( x j ∣ c t ) p ( x j ) ] = E X l o g [ 1 + p ( x i ) p ( x i ∣ c t ) ( N − 1 ) ] ≥ E X l o g [ p ( x i ) p ( x i ∣ c t ) ( N − 1 ) ] = − I ( x i , c t ) + l o g ( N − 1 ) \begin{align} \mathcal{L}_N^{opt} &= -\mathbb{E}_{X}log\left[\frac{\frac{p(x_i|c_t)}{p(x_i)}}{\frac{p(x_i|c_t)}{p(x_i)}+\sum_{x_j\in X_{neg}} \frac{p(x_j|c_t)}{p(x_j)}}\right]\\ &=\mathbb{E}_{X}log\left[1+\frac{p(x_i)}{p(x_i|c_t)}\sum_{x_j\in X_{neg}}\frac{p(x_j|c_t)}{p(x_j)}\right]\\ &\approx \mathbb{E}_{X}log\left[1+\frac{p(x_i)}{p(x_i|c_t)}(N-1)\mathbb{E}_{x_j}\frac{p(x_j|c_t)}{p(x_j)}\right]\\ &=\mathbb{E}_{X}log\left[1+\frac{p(x_i)}{p(x_i|c_t)}(N-1)\right]\\ &\ge \mathbb{E}_{X}log\left[\frac{p(x_i)}{p(x_i|c_t)}(N-1)\right]\\ &= -I(x_i,c_t)+log(N-1) \end{align} LNopt=−EXlog p(xi)p(xi∣ct)+∑xj∈Xnegp(xj)p(xj∣ct)p(xi)p(xi∣ct) =EXlog 1+p(xi∣ct)p(xi)xj∈Xneg∑p(xj)p(xj∣ct) ≈EXlog[1+p(xi∣ct)p(xi)(N−1)Exjp(xj)p(xj∣ct)]=EXlog[1+p(xi∣ct)p(xi)(N−1)]≥EXlog[p(xi∣ct)p(xi)(N−1)]=−I(xi,ct)+log(N−1)
对于(5)(6)原论文为:
= E X l o g [ 1 + p ( x i ) p ( x i ∣ c t ) ( N − 1 ) ] ≥ E X l o g [ p ( x i ) p ( x i ∣ c t ) N ] = − I ( x i , c t ) + l o g ( N ) \begin{align} &=\mathbb{E}_{X}log\left[1+\frac{p(x_i)}{p(x_i|c_t)}(N-1)\right]\\ &\ge \mathbb{E}_{X}log\left[\frac{p(x_i)}{p(x_i|c_t)}N\right]\\ &= -I(x_i,c_t)+log(N) \end{align} =EXlog[1+p(xi∣ct)p(xi)(N−1)]≥EXlog[p(xi∣ct)p(xi)N]=−I(xi,ct)+log(N)
我认为是在最优化条件下, p ( x i ) ≤ p ( x i ∣ c t ) p(x_i)\le p(x_i|c_t) p(xi)≤p(xi∣ct)。
InfoNCE也与MINE(最大互信息估计)相关,记 f ( x , c ) = e F ( x , c ) f(x,c)=e^{F(x, c)} f(x,c)=eF(x,c),则:
E X [ l o g f ( x , c ) ∑ x ∈ X f ( x , c ) ] = E ( x , c ) [ F ( x , c ) ] − E ( x , c ) [ l o g ∑ x j ∈ X e F ( x j , c ) ] = E ( x , c ) [ F ( x , c ) ] − E ( x , c ) [ l o g ( e F ( x , c ) + ∑ x j ∈ X n e g e F ( x j , c ) ) ] ≤ E ( x , c ) [ F ( x , c ) ] − E c [ l o g ( ∑ x j ∈ X n e g e F ( x j , c ) ) ] \begin{align} \mathbb{E}_X\left[log\frac{f(x,c)}{\sum_{x\in \mathbf{X}}f(x,c)}\right]\ &=\mathbb{E}_{(x,c)}\left[F(x, c)\right]-\mathbb{E}_{(x,c)}\left[log\sum_{x_j\in X}e^{F(x_j, c)}\right]\\ &=\mathbb{E}_{(x,c)}\left[F(x, c)\right]-\mathbb{E}_{(x,c)}\left[log\left(e^{F(x, c)}+\sum_{x_j\in X_{neg}}e^{F(x_j, c)}\right)\right]\\ &\le \mathbb{E}_{(x,c)}\left[F(x, c)\right]-\mathbb{E}_{c}\left[log\left(\sum_{x_j\in X_{neg}}e^{F(x_j, c)}\right)\right]\\ \end{align} EX[log∑x∈Xf(x,c)f(x,c)] =E(x,c)[F(x,c)]−E(x,c) logxj∈X∑eF(xj,c) =E(x,c)[F(x,c)]−E(x,c) log eF(x,c)+xj∈Xneg∑eF(xj,c) ≤E(x,c)[F(x,c)]−Ec log xj∈Xneg∑eF(xj,c)