定义
给定带有有限距的随机变量的列向量$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$。
典型相关性
学习两个线性映射,每个线性映射对应于一组数据,使得两组数据最大相关性。
\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}我们希望获得多个映射矩阵,同时多个线性映射对是相互正交的。
$$ 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}}$$因为上式中分子分布增大相同的倍数,优化目标的结果不变,所以我们采用类似$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