典型相关性(Canonical Correlation Analysis)

定义

给定带有有限距的随机变量的列向量$X = (x_1, …, x_n)^T$和$Y = (y_1, …, y_m)^T$,我们可以定义互协方差矩阵$\Sigma_{XY} = cov(X, Y)$,为$n\times m$的矩阵,其中$(i, j)$是协方差矩阵$cov(x_i, y_j)$。实际上,我们可以基于$X$和$Y$的采样数据来估计协方差矩阵。
典型相关性(Canonical Correlation Analysis)是求出向量$a$和$b$使得随机变量$a^T X$和$b^T Y$的相关性$\rho = corr(a^T X, b^T Y)$最大。随机变量$U = a^T X$和$V = b^T Y$是第一对典型变量。然后寻求一个依然最大化相关但与第一对典型不相关的向量;这样就得到了第二对典型变量。这个步骤会进行$min\lbrace m, n\rbrace$。

典型相关性

  1. 学习两个线性映射,每个线性映射对应于一组数据,使得两组数据最大相关性。
    \begin{equation}\begin{split} (u^{\star}, v^{\star}) &= argmax_{u, v} corr(u^T X, v^T Y) \\
    &= argmax_{u, v} \frac{cov(u^T X, v^T Y)}{\sqrt{var(u^T X) var(v^T Y)}} \\
    &= argmax_{u, v} \frac{u^T E(X Y^T)v}{\sqrt{u^T E(X X^T) u v^T E(Y Y^T) v}} \\
    &= argmax_{u, v} \frac{u^T \Sigma_{XY} v}{\sqrt{u^T \Sigma_{XX} u v^T \Sigma_{YY} v}} \\
    \end{split}\end{equation}

  2. 我们希望获得多个映射矩阵,同时多个线性映射对是相互正交的。
    $$ u_{(i)}^T \Sigma_{XY} v_{(j)} = u_{(j)}^T \Sigma_{XY} v_{(i)} = 0\ \text {for}\ i\neq j$$
    $$ U\Sigma_{XY}V = tr(U\Sigma_{XY} V) $$
    其中$U = [u_1, u_2, …, u_k]$和$V = [v_1, v_2, …, v_k] $。
    $$(U^{\star}, V^{\star}) = argmax_{U, V}\frac{tr(U^T\Sigma_{XY} V)}{\sqrt{U^T\Sigma_{XX} U} \sqrt{V^T \Sigma_{YY} V}}$$

  3. 因为上式中分子分布增大相同的倍数,优化目标的结果不变,所以我们采用类似$SVM$中类似的优化方法,固定分母,优化分子,具体转化为[2]:
    \begin{cases}
    argmax_{U, V} = U^T\Sigma_{XY} V \\
    \text{s.t.}\ U^T \Sigma_{XX} U = I, V^T \Sigma_{YY} V= I \\
    \end{cases}
    这样就变成了有约束的最优化问题,可以使用拉格朗日乘子法,也可以采用$SVD$分解的方法。

  • 拉格朗日乘子法
    $$ L = tr(U^T \Sigma_{XY} V) - \alpha (U^T \Sigma_{XX} U - I) - \beta (V^T \Sigma_{YY} V - I) $$
    对$U$和$V$分别求偏导并令其为0:
    \begin{cases}
    \Sigma_{XY} V = 2\alpha \Sigma_{XX} U \\
    \Sigma_{XY}^T U = 2 \beta \Sigma_{YY} V \\
    \end{cases}

对上式分别左乘$U^T$和$V^T$,可以得出$2\alpha = 2\beta = U^T \Sigma_{XY} V $
将前面的式子再分别左乘$\Sigma_{XX}^{-1}$和$\Sigma_{YY}^{-1}$,然后通过分别消除变量可以得出下面的结果:
$$ \Sigma_{XX}\Sigma_{XY}\Sigma_{YY}^{-1}\Sigma^T_{XY}U = \lambda U $$
$$ \Sigma_{YY}\Sigma_{XY}\Sigma_{XX}^{-1}\Sigma^T_{XY}V = \lambda V $$
其中$$\lambda = 4\alpha \beta $$
只要求出对应特征值最大的特征向量,这样就解出$U$和$V$。

  • SVD
    令$ U = \Sigma_{XX}^{-\frac{1}{2}} u$,$V = \Sigma_{YY}^{-\frac{1}{2}} v $。
    由$U^T \Sigma_{XX} U = I$和$ V^T \Sigma_{YY} V= I$,可以得出:$ u^T u = I $ $v^T v = I $
    将原本的最优化问题转化为这样的形式:
    \begin{cases}
    argmax_{u, v} = u^T\Sigma_{XX}^{-\frac{1}{2}} \Sigma_{XY} \Sigma_{YY}^{-\frac{1}{2}} v \\
    \text{s.t.}\ u^T u = I, v^T v = I \\
    \end{cases}
    使用$SVD$就是通过最大化对应的奇异值的特征向量,就是对应的$u$和$v$的结果。
    $$ T = \Sigma_{XX}^{-\frac{1}{2}}\Sigma_{XY} \Sigma_{YY}^{-\frac{1}{2}} $$
    $$ (U^{\star}, V^{\star}) = (\Sigma_{XX}^{-\frac{1}{2}}U_{SVD}, \Sigma_{YY}^{-\frac{1}{2}} V_{SVD}) $$

参考资料

[1] https://zh.wikipedia.org/wiki/典型相关
[2] https://blog.csdn.net/Mbx8X9u/article/details/78824216

非常感谢各位老板投喂!