优化目标
前面已经讲了典型相关分析CCA,并且提到,CCA是一种双视角的方法,只能处理视角数为2的情况。为了将CCA应用于更多视角,一些研究人员提出了MCCA(Multi-view CCA),即多视角CCA,将CCA直观地扩展到多视角版本。给定
m
m
m个视角
X
1
,
X
2
,
⋯
,
X
m
{X_1,X_2,\cdots,X_m}
X1,X2,⋯,Xm,其中第
i
i
i个视角
X
i
∈
R
D
i
×
n
X_i\in \mathbb{R}^{D_i\times n}
Xi∈RDi×n,
D
i
D_i
Di为其维度,
n
n
n为样本数量,各视角样本数量相同。MCCA希望找到
W
1
,
W
2
,
⋯
,
W
m
{W_1,W_2,\cdots,W_m}
W1,W2,⋯,Wm将各视角投影到公共子空间,其中
W
i
∈
R
D
i
×
d
W_i\in \mathbb{R}^{D_i\times d}
Wi∈RDi×d,
d
d
d为子空间维度,使得子空间中任意两个视角之间的相关系数之和:
max
W
1
,
⋯
,
W
m
∑
i
,
j
m
W
i
T
X
i
X
j
T
W
j
s
.
t
.
W
i
T
X
i
X
i
T
W
i
=
I
\max_{W_1,\cdots,W_m} \sum_{i,j}^m W_i^TX_iX_j^TW_j \\ s.t.\ W_i^TX_iX_i^T W_i=I
W1,⋯,Wmmaxi,j∑mWiTXiXjTWjs.t. WiTXiXiTWi=I
本文仍然既是总结又是读论文笔记。
d = 1 d=1 d=1的情况
d
>
1
d>1
d>1 的情况有点复杂,先看
d
=
1
d=1
d=1的情况如何解。首先
d
=
1
d=1
d=1时,为了方便,我们用
w
1
,
⋯
,
w
m
{w_1,\cdots,w_m}
w1,⋯,wm代替
W
1
,
⋯
,
W
m
{W_1,\cdots,W_m}
W1,⋯,Wm,上式写为:
max
w
1
,
⋯
,
w
m
∑
i
,
j
m
w
i
T
X
i
X
j
T
w
j
s
.
t
.
w
i
T
X
i
X
i
T
w
i
=
1
(1)
\max_{w_1,\cdots,w_m} \sum_{i,j}^m w_i^TX_iX_j^Tw_j\tag{1} \\ s.t.\ w_i^TX_iX_i^T w_i=1
w1,⋯,wmmaxi,j∑mwiTXiXjTwjs.t. wiTXiXiTwi=1(1)
令
C
(
i
,
i
)
=
X
i
X
i
T
C^{(i,i)}=X_iX_i^T
C(i,i)=XiXiT,对
C
(
i
,
i
)
C^{(i,i)}
C(i,i)做Cholesky分解得
C
(
i
,
i
)
=
D
i
T
D
i
C^{(i,i)}=D_i^TD_i
C(i,i)=DiTDi,其实
D
i
=
X
i
T
D_i=X_i^T
Di=XiT,然后令
X
i
T
w
i
=
x
i
X_i^Tw_i=x_i
XiTwi=xi,则
w
i
=
D
i
−
1
x
i
w_i=D_i^{-1}x_i
wi=Di−1xi. 令:
A
i
j
=
D
i
−
T
C
(
i
,
j
)
D
j
−
1
A_{ij}=D_i^{-T}C^{(i,j)}D_j^{-1}
Aij=Di−TC(i,j)Dj−1
我就寻思这
A
i
j
A_{ij}
Aij其实是个单位矩阵。原文这么写有他的道理。往后看吧。然后公式
(
1
)
(1)
(1)就可以写为:
max
x
1
,
⋯
,
x
m
∑
i
,
j
m
x
i
T
A
i
j
x
j
s
.
t
.
x
i
T
x
i
=
1
\max_{x_1,\cdots,x_m}\sum_{i,j}^m x_i^TA_{ij} x_j \\ s.t.\ x_i^Tx_i=1
x1,⋯,xmmaxi,j∑mxiTAijxjs.t. xiTxi=1
进一步写为:
max
x
x
T
A
x
s
.
t
.
x
i
T
x
i
=
1
\max_{x} x^TAx \\ s.t.\ x_i^Tx_i=1
xmaxxTAxs.t. xiTxi=1
这里的
x
x
x是由
x
1
,
⋯
,
x
m
x_1,\cdots,x_m
x1,⋯,xm这
m
m
m个列向量拼成的列向量。但是算的时候又按照矩阵分块运算来来算的。我们来套一下Lagrangian乘子法:
L
(
x
,
λ
)
=
∑
i
,
j
m
x
i
T
A
i
j
x
j
+
∑
i
m
λ
i
(
1
−
x
i
T
x
i
)
L(x,\lambda)=\sum_{i,j}^m x_i^TA_{ij}x_j+\sum_i^m\lambda_i(1-x_i^Tx_i)
L(x,λ)=i,j∑mxiTAijxj+i∑mλi(1−xiTxi)
对
x
i
x_i
xi求导:
∂
∂
x
i
L
(
x
,
λ
)
=
∑
j
m
A
i
j
x
j
−
2
λ
i
x
i
=
0
∑
j
m
A
i
j
x
j
=
2
λ
i
x
i
\frac{\partial}{\partial x_i}L(x,\lambda)=\sum_{j}^m A_{ij}x_j-2\lambda_ix_i=0 \\ \sum_{j}^m A_{ij}x_j=2\lambda_ix_i
∂xi∂L(x,λ)=j∑mAijxj−2λixi=0j∑mAijxj=2λixi
因此构成一个大的矩阵块的形式:
[
A
11
⋯
A
1
m
⋮
⋱
⋮
A
m
1
⋯
A
m
m
]
[
x
1
⋮
x
m
]
=
[
λ
1
x
1
⋮
λ
m
x
m
]
\left[ \begin{array}{ccc} A_{11} & \cdots & A_{1m} \\ \vdots & \ddots & \vdots \\ A_{m1} & \cdots & A_{mm} \\ \end{array} \right] \left[ \begin{array}{c} x_{1} \\ \vdots \\ x_{m} \\ \end{array} \right]= \left[ \begin{array}{c} \lambda_1x_1 \\ \vdots \\ \lambda_mx_m \\ \end{array} \right]
⎣⎢⎡A11⋮Am1⋯⋱⋯A1m⋮Amm⎦⎥⎤⎣⎢⎡x1⋮xm⎦⎥⎤=⎣⎢⎡λ1x1⋮λmxm⎦⎥⎤
这里把所有 2 λ i 2\lambda_i 2λi都写成 λ i \lambda_i λi的形式了,都是常数参数而已。注意本文对 A A A矩阵的定义与原文不同。
然后该问题就变成了一个多元的广义特征值与特征向量问题。文章里面对于这种
A
A
A为对称、正定的generic matrix(特征值都不相同的矩阵),使用了一种普遍的算法Horst算法:
步骤上是容易理解的,这是一种迭代算法,
x
x
x需要有一个人为设置的初值,
m
a
x
i
t
e
r
maxiter
maxiter是人为设置的最大迭代次数。Horst算法的正确性和思路都有由来,但是我现在不想再细究了,论文里说这个算法能保证收敛到一种局部最优解。
形式转换
论文在这里做了一些形式转换,加了一些正则化考虑。公式
(
1
)
(1)
(1)中,如果特征维度
D
i
D_i
Di小于样本数
n
n
n,
X
i
X
i
T
X_iX_i^T
XiXiT有可能是奇异的(不可逆的),而且有可能造成过拟合。因此文章将公式
(
1
)
(1)
(1)改为如下形式:
max
w
1
,
⋯
,
w
m
∑
i
,
j
m
w
i
T
X
i
X
j
T
w
j
s
.
t
.
w
i
T
(
1
−
κ
D
i
−
1
X
i
X
i
T
+
κ
I
)
w
i
=
1
\max_{w_1,\cdots,w_m} \sum_{i,j}^m w_i^TX_iX_j^Tw_j \\ s.t.\ w_i^T (\frac{1-\kappa}{D_i-1}X_iX_i^T+\kappa I) w_i=1
w1,⋯,wmmaxi,j∑mwiTXiXjTwjs.t. wiT(Di−11−κXiXiT+κI)wi=1
其中
κ
∈
[
0
,
1
]
\kappa \in [0,1]
κ∈[0,1],然后令
w
i
=
X
i
y
i
,
K
i
=
X
i
T
X
i
w_i=X_iy_i,K_i=X_i^TX_i
wi=Xiyi,Ki=XiTXi,则
y
i
=
X
i
−
1
w
i
y_i=X_i^{-1}w_i
yi=Xi−1wi,然后上式等价于:
max
y
∑
i
,
j
y
i
T
K
i
K
j
T
y
j
s
.
t
.
y
i
T
(
1
−
κ
D
i
−
1
K
i
K
i
T
+
κ
K
i
)
y
i
=
1
\max_y \sum_{i,j} y_i^TK_iK_j^Ty_j \\ s.t.\ y_i^T (\frac{1-\kappa}{D_i-1}K_iK_i^T+\kappa K_i) y_i=1
ymaxi,j∑yiTKiKjTyjs.t. yiT(Di−11−κKiKiT+κKi)yi=1
推导上注意,矩阵转置的逆等于其逆的转置。文章认为这么做的好处是便于引入使用核函数。
进一步,文章认为
K
i
K_i
Ki也是Typically病态的,甚至数据中心化后经常是奇异矩阵,并且处于限制方差和系数的原因,令:
K
i
~
=
(
1
−
κ
D
i
−
1
K
i
+
κ
2
D
i
−
1
1
−
κ
I
)
\widetilde{K_i}=(\sqrt{\frac{1-\kappa}{D_i-1}}K_i+\frac{\kappa}{2}\sqrt{\frac{D_i-1}{1-\kappa}}I)
Ki
=(Di−11−κKi+2κ1−κDi−1I)
因此:
1
−
κ
D
i
−
1
K
i
K
i
T
+
κ
K
i
≈
K
i
~
K
i
~
T
\frac{1-\kappa}{D_i-1}K_iK_i^T+\kappa K_i \approx \widetilde{K_i}\widetilde{K_i}^T
Di−11−κKiKiT+κKi≈Ki
Ki
T
因此最终把优化目标的形式变为:
max
y
∑
i
,
j
y
i
T
K
i
K
j
T
y
j
s
.
t
.
y
i
T
K
i
~
K
i
~
T
y
i
=
1
\max_y \sum_{i,j} y_i^TK_iK_j^Ty_j \\ s.t.\ y_i^T \widetilde{K_i} \widetilde{K_i}^T y_i=1
ymaxi,j∑yiTKiKjTyjs.t. yiTKi
Ki
Tyi=1
d > 1 d>1 d>1的情况
接上文。
d
>
1
d>1
d>1时,优化目标为:
max
y
∑
i
,
j
y
i
T
K
i
K
j
T
y
j
s
.
t
.
y
i
T
K
i
~
K
i
~
T
y
i
=
1
Y
i
T
K
i
~
K
i
~
T
y
i
=
0
\max_y \sum_{i,j} y_i^TK_iK_j^Ty_j \\ s.t.\ y_i^T \widetilde{K_i} \widetilde{K_i}^T y_i=1 \\ Y_i^T \widetilde{K_i} \widetilde{K_i}^T y_i=0
ymaxi,j∑yiTKiKjTyjs.t. yiTKi
Ki
Tyi=1YiTKi
Ki
Tyi=0
这啥意思呢, y i y_i yi表示的是一个维度,因为 d > 1 d>1 d>1,子空间中各个维度应该是互不相关的,这里 Y i Y_i Yi表示的除了 y i y_i yi之外的其他维度。
为了应用Horst算法,论文先做如下转换:
Z
i
=
K
i
~
Y
i
,
z
i
=
K
i
~
y
i
Z_i=\widetilde{K_i} Y_i,z_i=\widetilde{K_i} y_i
Zi=Ki
Yi,zi=Ki
yi
然后定义算子:
P
i
=
I
−
K
i
~
Y
i
Y
i
T
K
i
~
=
I
−
Z
i
Z
i
T
P_i=I-\widetilde{K_i} Y_iY_i^T\widetilde{K_i} =I-Z_iZ_i^T
Pi=I−Ki
YiYiTKi
=I−ZiZiT
然后优化目标可以写为:
max
z
∑
i
,
j
z
i
T
K
i
~
−
T
K
i
K
j
T
K
j
~
−
1
z
j
s
.
t
.
z
i
T
z
i
=
1
Z
i
T
z
i
=
0
\max_z \sum_{i,j} z_i^T \widetilde{K_i}^{-T} K_iK_j^T \widetilde{K_j}^{-1} z_j \\ s.t.\ z_i^T z_i=1 \\ Z_i^Tz_i=0
zmaxi,j∑ziTKi
−TKiKjTKj
−1zjs.t. ziTzi=1ZiTzi=0
然后可以进一步写为:
max
z
∑
i
,
j
z
i
T
P
i
T
K
i
~
−
T
K
i
K
j
T
K
j
~
−
1
P
j
z
j
s
.
t
.
z
i
T
z
i
=
1
=
1
\max_z \sum_{i,j} z_i^T P_i^T \widetilde{K_i}^{-T} K_iK_j^T \widetilde{K_j}^{-1} P_jz_j\\ s.t.\ z_i^T z_i=1=1
zmaxi,j∑ziTPiTKi
−TKiKjTKj
−1Pjzjs.t. ziTzi=1=1
这是因为
P
i
z
i
=
z
i
−
Z
i
Z
i
T
z
i
=
z
i
P_iz_i=z_i-Z_iZ_i^Tz_i=z_i
Pizi=zi−ZiZiTzi=zi,这么写把一个约束条件考虑了进去。然后文章在这里再加了一项:
max
z
∑
i
,
j
z
i
T
P
i
T
K
i
~
−
T
K
i
K
j
T
K
j
~
−
1
P
j
z
j
+
∑
i
z
i
T
z
i
s
.
t
.
z
i
T
z
i
=
1
=
1
\max_z \sum_{i,j} z_i^T P_i^T \widetilde{K_i}^{-T} K_iK_j^T \widetilde{K_j}^{-1} P_jz_j+\sum_iz_i^Tz_i \\ s.t.\ z_i^T z_i=1=1
zmaxi,j∑ziTPiTKi
−TKiKjTKj
−1Pjzj+i∑ziTzis.t. ziTzi=1=1
进一步写为:
max
z
z
T
A
z
s
.
t
.
z
i
T
z
i
=
1
\max_z z^TAz \\ s.t.\ z_i^T z_i=1
zmaxzTAzs.t. ziTzi=1
个人觉得加的这一项不是很必要,可能是因为核函数的缘故才要这么加,难不成文章认为
y
i
T
K
i
K
i
T
y
i
=
0
y_i^TK_iK_i^Ty_i=0
yiTKiKiTyi=0吗?不可思议。
A
A
A是分块矩阵,定义为:
A
i
j
=
{
P
i
T
K
i
~
−
T
K
i
K
j
T
K
j
~
−
1
P
j
f
o
r
:
i
≠
j
I
f
o
r
:
i
=
j
A_{ij}=\left\{ \begin{array}{ccc} P_i^T \widetilde{K_i}^{-T} K_iK_j^T \widetilde{K_j}^{-1} P_j & \ & for: i\neq j \\ I & \ & for: i=j \end{array} \right.
Aij={PiTKi
−TKiKjTKj
−1PjI for:i=jfor:i=j
然后文章里证明了一下
A
A
A矩阵是正定的,这里不写了。因此可以用Horst算法,如下。
真的真的很费劲。理解Horst算法就用 d = 1 d=1 d=1就好了。
总结
MCCA在使用上没有什么可用性,也不是这个领域比较好的算法,但是读完这篇论文,我们至少知道了多元特征值问题可以用Horst算法解,并能写出这种名为“MCCA”的算法的代码了。令我有点惊讶的是,直接在网上搜Horst算法没搜出来什么有用的东西,但是一搜多元特征值问题就看到有硕士论文是做这个Horst算法改进的。这个故事告诉我们,在别的领域其实研究的比较多的,已经有经典解的问题,只是因为我们的不熟悉而让自己被卡了壳。所以要多学习,多了解啊。
参考文献
[1] Rupnik J, Shawe-Taylor J. Multi-view canonical correlation analysis[C]//Conference on Data Mining and Data Warehouses (SiKDD 2010). 2010: 1-4.