原文翻译自这里
给定一训练样本,在计算其相关损失之前通常需要数据增强技术为该样本添加噪声。适度的数据增强设定对于学习一个优秀的,泛化性好的嵌入特征是至关重要的。其在不改变语义信息的同时将些微变量引入到样本之中,以此鼓励模型去学习表征的主要部分。比如,SimCLR中的实验表明随机裁剪和随机颜色失真对于学习图像的视觉表征是至关重要的。
对于很多依赖 batch 内负样本的对比方法(如SimCLR,CLIP),它们能够成功的一个原因就是使用了大 batch size。只有当 batch size 足够大时,损失函数才能够覆盖足够多负样本,网络才能够学到能区分不同样本的重要表征。
复杂的负样本应该具有与原始样本(anchor sample)不同的标签,但彼此的嵌入特征(embedding feature)需要尽可能的相似。在监督学习中,因为可以获取真实标签(ground truth),因此很容易区分任务专有的复杂负样本。比如当学习句式嵌入(sentence embedding)时,我们可以将标记为“矛盾”(contradiction)的句子对标记为复杂负样本对。
然而,当我们需要在无监督任务中操作时,对于复杂负样本的挖掘似乎成了一种trick。增加训练 batch size 或者 memory bank size 能够隐式得引入更多复杂负样本,但这可能导致对于大内存过度需求这一问题。
Chuang et al. (2020)对对比学习中的采样偏移现象进行了研究,并提出了去偏差损失。 在无监督中,我们是不知道真实标签的,因此可能存在误采样伪负样本的现象。这种采样偏差会极大的影响网络性能。
我们假设 anchor class c c c 的概率服从均匀分布 ρ ( c ) = η + \rho(c)=\eta^+ ρ(c)=η+,那么观测到其他类的概率为 η − = 1 − η + \eta^-=1-\eta^+ η−=1−η+.
当我们采样 x − x^- x−时,没有办法获取真正的 p x − ( x − ) p^-_x(x^-) px−(x−),因此存在某一概率 η + \eta^+ η+使得 x − x^- x−错误的从锚类(anchor class) c c c中被采样。那么采样数据的实际分布就变成了:
p ( x ′ ) = η + p x + ( x ′ ) + η − p x − ( x ′ ) p(x^{'})=\eta^+p_x^+(x^{'})+\eta^-p_x^-(x^{'}) p(x′)=η+px+(x′)+η−px−(x′)
通过简单的公式变换,我们可以去除损失中的偏差:
p x − ( x ′ ) = ( p ( x ′ ) − η + p x + ( x ′ ) ) / η − p_x^-(x^{'})=(p(x^{'})-\eta^+p_x^+(x^{'}))/\eta ^- px−(x′)=(p(x′)−η+px+(x′))/η−.
对于从 p p p中采样的 N N N个样本 { u i } i = 1 N \{u_i\}_{i=1}^N {ui}i=1N,以及从 p x + p_x^+ px+中采样的 M M M个样本 { v i } i = 1 M \{v_i\}_{i=1}^M {vi}i=1M,我们可以估计对比学习损失中分母的第二项的期望 E x − ∼ p x − [ e x p ( f ( x ) T f ( x − ) ) ] \mathbb{E}_{x^-\sim p_x^-}[exp(f(x)^Tf(x^-))] Ex−∼px−[exp(f(x)Tf(x−))]:
g ( x , { u i } i = 1 N , { v i } i = 1 M ) = m a x { 1 η − ( 1 N ∑ i = 1 N e x p ( f ( x ) T f ( u i ) ) − η + M ∑ i = 1 M e x p ( f ( x ) T f ( v i ) ) ) , e x p ( − 1 / τ ) } g(x,\{u_i\}_{i=1}^N,\{v_i\}_{i=1}^M)=max\{\frac{1}{\eta^-}(\frac{1}{N}\sum_{i=1}^Nexp(f(x)^Tf(u_i))-\frac{\eta^+}{M}\sum_{i=1}^Mexp(f(x)^Tf(v_i))), exp(-1/\tau)\} g(x,{ui}i=1N,{vi}i=1M)=max{η−1(N1∑i=1Nexp(f(x)Tf(ui))−Mη+∑i=1Mexp(f(x)Tf(vi))),exp(−1/τ)}
τ \tau τ是温度系数,且 e x p ( − 1 / τ ) exp(-1/\tau) exp(−1/τ)是期望 E x − ∼ p x − [ e x p ( f ( x ) T f ( x − ) ) ] \mathbb{E}_{x^-\sim p_x^-}[exp(f(x)^Tf(x^-))] Ex−∼px−[exp(f(x)Tf(x−))]的理论下界.
那么最终的去偏差后的对比损失为如下形式:
L d e b i a s N , M ( f ) = E x , { u i } i = 1 N ∼ p ; x + , { v i } i = 1 M ∼ p + [ − l o g e x p ( f ( x ) T f ( x + ) ) e x p ( f ( x ) T f ( x + ) ) + N g ( x , { u i } i = 1 N , { v i } i = 1 M ) ) ] L_{debias}^{N,M}(f)=\mathbb{E}_{x,\{u_i\}_{i=1}^N\sim p; x^+,\{v_i\}_{i=1}^M\sim p^+}[-log\frac{exp(f(x)^Tf(x^+))}{exp(f(x)^Tf(x^+))+Ng(x,\{u_i\}_{i=1}^N,\{v_i\}_{i=1}^M))}] LdebiasN,M(f)=Ex,{ui}i=1N∼p;x+,{vi}i=1M∼p+[−logexp(f(x)Tf(x+))+Ng(x,{ui}i=1N,{vi}i=1M))exp(f(x)Tf(x+))]
遵循以上描述,Robinson et al. (2021) 修改了采样概率,通过对概率 p x − ( x ′ ) p_x^-(x^{'}) px−(x′)加权来期望得到复杂的负样本。那么新的采样概率 q β ( x − ) q_\beta(x^-) qβ(x−)就变成了:
q β ( x − ) ∝ e x p ( β f ( x ) T f ( x − ) ) ⋅ p ( x − ) q_\beta(x^-) \propto exp(\beta f(x)^Tf(x^-))\cdot p(x^-) qβ(x−)∝exp(βf(x)Tf(x−))⋅p(x−)
β \beta β是超参数。
通过使用重要性采样我们又可以对分母中第二项进行估计:
以下是计算NCE loss,debiased contrastive loss,和hard negative sample 的伪代码。