去相关与白化
decorrelation and whitening
最近在看NLP对比学习的东西,对比学习生成句嵌入向量表示,然后针对句嵌入向量进行去相关和白化操作,会提高句向量在下游任务上的表现吗
一般我们使用一个embedding表现一个事物时,都可以将其每一个维度数值,看作物体其中一个属性的值,而一般情况下,embedding各维度的attributes是有一定相关性的,所以就导致了信息冗余现象。去相关则是通过embedding相关矩阵,进行对角化得到对角矩阵,使得embedding各维attributes降低相关,可以减少embedding维度,去除信息冗余。
然后进行的方差归一化过程,被称为白化。
去相关 decorrelation
数据集X,共m个样本,其中样本x为n维向量,首先将这n个feature减去各自均值得到一个均值为0的数据集,可以得到协方差矩阵C。
然后对C进行特征值分解
C = U V U T C=UVU^T C=UVUT
其中V为对角矩阵,U为特征矩阵,去相关后数据y表示为
y = U − 1 x y=U^{-1}x y=U−1x
到此完成了去相关操作
白化 whitening
去相关后数据集任意两个attributes之间线性无关,但其方差并不相等,将V全部置于1的过程就是白化。
W = V 1 / 2 U − 1 x W=V^{1/2}U^{-1}x W=V1/2U−1x
白化后,可以去掉最后几个几乎无信息的attribute,去除冗余信息。
参考
- 去相关与白化(decorrelation and whitening) - 知乎 (zhihu.com)