对比预测编码表示学习
引言
文章主要提出如下几点:首先将高维数据压缩到更加紧凑的潜在嵌入(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)