数学系列是本人学习笔记,水平有限,错误在所难免,还请读者不吝指正
Nonlinear Dimensionality Reduction by Locally Linear Embedding
简介
局部线性嵌入(LLE)利用非监督学习方法来将高维网络数据嵌入到低维空间中,并在该低维空间中保留网络节点间的邻域信息。区别于局部降维的聚类方法,LLE将网络节点映射到一个统一的低维空间坐标系统中,并且该方法的优化不依赖局部最小值。利用线性重构的局部对称性,LLE 能够学习非线性流形(nonlinear manifold)的全局结构,例如由人脸数据或文本文档生成的流形。
符号规定
大写粗体(例如
X
{\bf X}
X)表示矩阵
小写粗体(例如
x
{\bf x}
x)表示向量
大写字母(例如
D
D
D)表示常量
小写字母(例如
i
i
i)表示变量
算法原理
LLE 的提出是基于简单的几何直觉。假设我们基于某种潜在的流形取样,得到的数据有 N N N 个实数向量 x i {\bf x_i} xi,每个向量有 D D D 个维度。假如数据量足够,使得取样的数据在流形上均匀分布,那么每个数据点和他的近邻应该集中分布在流形上一个局部的区域内。我们假设在这个局部区域内的点,都可以被其邻居点线性重构出来。LLE 的算法可以分为如下的步骤:
为每个数据点 x i {\bf x}_i xi 寻找欧式距离相近的点。在近邻点的选取上有两种策略,一种是选取固定数目的近邻点,另一种是划定一个邻域,选取在邻域内的点。LLE 采取的是前者,即选取固定的 k k k 个近邻点。
利用近邻点的线性组合来表示点 x i {\bf x}_i xi x i = ∑ j k w i j x i j {\bf x}_i = \sum^k_j {\bf w}_i^j {\bf x}_i^j xi=j∑kwijxij 请注意这里的上标不是幂次而是向量的分量,即 w i j {\bf w}^j_i wij 表示向量 w i {\bf w}_i wi 的第 j j j 个分量, x i j {\bf x}_i^j xij 表示向量 x i {\bf x}_i xi 的第 j j j 个分量。我们需要求出所有的权重向量 w i , i = 1 , 2 , … , N {\bf w}_i, \ i = 1, 2, \ldots, N wi, i=1,2,…,N。那么怎样的 w i {\bf w}_i wi 才是最优的呢?自然而然的,我们肯定是希望 x i {\bf x}_i xi 近邻点的线性组合能够尽可能的接近它,这样,我们就是在寻找能够使得近邻点和 x i {\bf x}_i xi 的欧式距离,也就是使 ϵ ( w ) = ∑ i N ∣ ∣ x i − ∑ j k w i j x i j ∣ ∣ 2 2 \epsilon ({\bf w}) = \sum^N_i ||{\bf x}_i - \sum^k_j {\bf w}_i^j {\bf x}_i^j||^2_2 ϵ(w)=i∑N∣∣xi−j∑kwijxij∣∣22 最小的 w {\bf w} w,为了计算方便,LLE 还要求对每一个 x i {\bf x}_i xi,都有 ∑ j k w i j = 1 \sum^k_j {\bf w}_i^j = 1 ∑jkwij=1 。为了方便计算,我们先看一个点 x i {\bf x_i} xi 和其近邻点 x i 1 , x i 2 , … , x i k {\bf x}_i^1, {\bf x}_i^2, \ldots, {\bf x}_i^k xi1,xi2,…,xik 的距离,因为有 ∑ j k w i j = 1 \sum^k_j{\bf w}_i^j = 1 ∑jkwij=1,所以 x i = x i ∑ j k w i j = ∑ j k w i j x i {\bf x}_i = {\bf x}_i \sum^k_j{\bf w}_i^j = \sum^k_j{\bf w}_i^j{\bf x}_i xi=xi∑jkwij=∑jkwijxi,那么 ϵ ( w ) = ∑ i N ∣ ∣ x i − ∑ j k w i j x i j ∣ ∣ 2 2 = ∑ i N ∣ ∣ ∑ j k w i j x i − ∑ j k w i j x i j ∣ ∣ 2 2 = ∑ i N ∣ ∣ ∑ j k w i j ( x i − x i j ) ∣ ∣ 2 2 \begin{aligned} \epsilon({\bf w}) & = \sum^N_i||{\bf x}_i - \sum^k_j {\bf w}_i^j {\bf x}_i^j||^2_2 \\ & = \sum^N_i||\sum^k_j{\bf w}_i^j{\bf x}_i - \sum^k_j {\bf w}_i^j {\bf x}_i^j||^2_2 \\ & = \sum^N_i||\sum^k_j{\bf w}_i^j({\bf x}_i - {\bf x}_i^j)||^2_2 \end{aligned} ϵ(w)=i∑N∣∣xi−j∑kwijxij∣∣22=i∑N∣∣j∑kwijxi−j∑kwijxij∣∣22=i∑N∣∣j∑kwij(xi−xij)∣∣22 令 X i = [ x i − x i 1 , x i − x i 2 , ⋯ , x i − x i k ] w i = [ w i 1 w i 2 ⋮ w i k ] 1 = ( 1 , 1 , ⋯ , 1 ⏟ k 个 ) \begin{aligned} {\bf X}_i & = \begin{bmatrix} {\bf x}_i - {\bf x}_i^1 , {\bf x}_i - {\bf x}_i^2 , \cdots , {\bf x}_i - {\bf x}_i^k \end{bmatrix} \\[2ex] {\bf w}_i & = \begin{bmatrix} w_i^1 \\ w_i^2 \\ \vdots \\ w_i^k \end{bmatrix} \\[6ex] {\bf 1} & = (\underbrace{1, 1, \cdots, 1}_{k 个}) \end{aligned} Xiwi1=[xi−xi1,xi−xi2,⋯,xi−xik]=⎣⎢⎢⎢⎡wi1wi2⋮wik⎦⎥⎥⎥⎤=(k个 1,1,⋯,1) 则 ϵ ( w ) = ∑ 1 N ∣ ∣ X i w i ∣ ∣ 2 2 = ∑ 1 N w i T X i T X i w i \begin{aligned} \epsilon({\bf w}) & = \sum^N_1 ||{\bf X}_i{\bf w}_i||^2_2 \\ & = \sum^N_1 {\bf w}_i^T{\bf X}_i^T{\bf X}_i{\bf w}_i \end{aligned} ϵ(w)=1∑N∣∣Xiwi∣∣22=1∑NwiTXiTXiwi 且 1 w = 1 {\bf 1w} = 1 1w=1 则我们有优化问题 min w ∑ i N w i T X i T X i w i s . t . 1 w i = 1 \min_w \sum_i^N {\bf w}_i^T{\bf X}_i^T{\bf X}_i{\bf w}_i \\ s.t. \quad {\bf 1w}_i = 1 wmini∑NwiTXiTXiwis.t.1wi=1
设 f ( w ) = 1 2 ∑ i N w i T X i T X i w i g ( w ) = 1 w i \begin{aligned} f({\bf w}) & = \frac{1}{2} \sum_i^N {\bf w}_i^T{\bf X}_i^T{\bf X}_i{\bf w}_i \\ g({\bf w}) & = {\bf 1w}_i \end{aligned} f(w)g(w)=21i∑NwiTXiTXiwi=1wi 给 f ( w ) f({\bf w}) f(w) 乘上 1 / 2 1/2 1/2 是为了求导的时候消去系数,不影响最后的结果。据此,我们来构造拉格朗日函数(关于拉格朗日乘子法,请参考 浅谈拉格朗日乘子法的数学推导 ) L ( w , λ ) = f ( w ) + λ ( g ( w i ) − 1 ) = 1 2 ∑ i N w i T X i T X i w i + λ ( 1 w i − 1 ) \begin{aligned} {\frak L}({\bf w}, \lambda) & = f({\bf w}) + \lambda(g({\bf w}_i) - 1) \\ & = \frac{1}{2} \sum_i^N {\bf w}_i^T{\bf X}_i^T{\bf X}_i{\bf w}_i + \lambda({\bf 1w}_i - 1) \end{aligned} L(w,λ)=f(w)+λ(g(wi)−1)=21i∑NwiTXiTXiwi+λ(1wi−1)分别对 w {\bf w} w 和 λ \lambda λ 求偏导置零,我们已知有矩阵求导公式 ∂ y x ∂ x = y T ∂ x T A x ∂ x = ( A + A T ) x \begin{aligned} \frac{\partial {\bf yx}}{\partial {\bf x}} & = {\bf y}^T \\ \frac{\partial {\bf x}^T{\bf Ax}}{\partial {\bf x}} & = ({\bf A} + {\bf A}^T){\bf x} \end{aligned} ∂x∂yx∂x∂xTAx=yT=(A+AT)x 则 ∂ L ( w , λ ) ∂ w i = 1 2 ( 2 X i T X i ) w i + λ 1 T = ( X i T X i ) w i + λ 1 T = 0 ∂ L ( w , λ ) ∂ λ = 1 w i − 1 = 0 \begin{aligned} \frac{\partial {\frak L}({\bf w}, \lambda)}{\partial {\bf w}_i} & = \frac{1}{2}(2 {\bf X}_i^T{\bf X}_i){\bf w}_i + \lambda {\bf 1}^T \\ & = ({\bf X}_i^T{\bf X}_i){\bf w}_i + \lambda {\bf 1}^T \\ & = 0 \\ \frac{\partial {\frak L}({\bf w}, \lambda)}{\partial \lambda} & = {\bf 1w}_i - 1 = 0 \end{aligned} ∂wi∂L(w,λ)∂λ∂L(w,λ)=21(2XiTXi)wi+λ1T=(XiTXi)wi+λ1T=0=1wi−1=0 X i {\bf X}_i Xi 是已知量,通过上面两式可计算出 w i {\bf w}_i wi 及 λ \lambda λ。若 X i T X i {\bf X}_i^T{\bf X}_i XiTXi 可逆,设 L i = X i T X i {\bf L}_i = {\bf X}_i^T{\bf X}_i Li=XiTXi,则 w i = − λ L i − 1 1 T {\bf w}_i = -\lambda{\bf L}_i^{-1}{\bf 1}^T wi=−λLi−11T 又因为 1 w i = 1 {\bf 1w}_i = 1 1wi=1,所以 λ = − 1 1 L i − 1 1 T \lambda = - \frac{1}{{\bf 1L}_i^{-1}{\bf 1}^T} λ=−1Li−11T1 将上式代入 w i = − λ L i − 1 1 T {\bf w}_i = -\lambda{\bf L}_i^{-1}{\bf 1}^T wi=−λLi−11T,得 w i = − L i − 1 1 T 1 L i − 1 1 T {\bf w}_i = - \frac{{\bf L}_i^{-1}{\bf 1}^T}{{\bf 1L}_i^{-1}{\bf 1}^T} wi=−1Li−11TLi−11T
这样定义的权重
w
{\bf w}
w 有一个重要的性质,对于任何特定的点
x
i
{\bf x}_i
xi,当对该点和其邻居点所组成的空间进行进行旋转、伸缩或者平移时,
w
{\bf w}
w 保持恒定。这是因为
w
{\bf w}
w 描述了
x
i
{\bf x}_i
xi 可由其邻居节点线性组合重构而成的这种关系,对该点和其邻居点所组成的空间进行进行旋转、伸缩或者平移相当于对线性方程组
x
i
=
∑
j
k
w
i
j
x
j
{\bf x}_i = \sum^k_j w^{j}_{i} {\bf x}_j
xi=j∑kwijxj 进行各种线性变换(该线性方程组中
x
i
{\bf x}_i
xi 和
x
j
{\bf x}_j
xj 是已知量,
w
i
j
w^{j}_i
wij 是需要求解的未知量)而方程组的线性变换并不影响方差组的解。我们可以看出
w
{\bf w}
w 的定义不依赖于任何第三方的参照物,所以
w
{\bf w}
w 描述了一点和其邻居节点内在的几何关系。这样的话,当我们将数据点嵌入到更低维度的
d
d
d 维空间中(
d
≪
D
d \ll D
d≪D)时,
w
{\bf w}
w 仍然保持不变。据此,我们可以计算数据点映射到低维空间之后的坐标。
假设我们将所有的
x
{\bf x}
x 映射到维度为
d
(
d
≪
D
)
d (d \ll D)
d(d≪D) 的低维空间,我们用
y
{\bf y}
y 来代表映射后的点,类似的,我们需要使得
ϕ
(
w
)
=
∑
i
N
∣
∣
y
i
−
∑
j
k
w
i
j
y
j
∣
∣
2
2
\phi ({\bf w}) = \sum^N_i ||{\bf y}_i - \sum^k_j w^{j}_{i} {\bf y}_j||^2_2
ϕ(w)=i∑N∣∣yi−j∑kwijyj∣∣22 最小。和我们计算
ϵ
(
w
)
\epsilon ({\bf w})
ϵ(w) 类似,但是现在
w
\bf w
w 变成了已知量,而点
y
\bf y
y 则成为了未知量。设
Y
=
(
y
1
y
2
⋮
y
N
)
W
=
[
w
11
w
12
⋯
w
1
N
w
21
w
22
⋯
w
2
N
⋮
⋮
⋱
⋮
w
N
1
w
N
2
⋯
w
N
N
]
I
=
[
1
0
⋯
0
0
1
⋯
0
⋮
⋮
⋱
0
0
0
⋯
1
]
\begin{aligned} {\bf Y} & = \begin{pmatrix} {\bf y}_1 \\ {\bf y}_2 \\ \vdots \\ {\bf y}_N \end{pmatrix} \\[6ex] {\bf W} & = \begin{bmatrix} w_{11} & w_{12} & \cdots & w_{1N} \\[2ex] w_{21} & w_{22} & \cdots & w_{2N} \\[2ex] \vdots & \vdots & \ddots & \vdots \\[2ex] w_{N1} & w_{N2} & \cdots & w_{NN} \\ \end{bmatrix} \\[10ex] {\bf I} & = \begin{bmatrix} 1 & 0 & \cdots & 0 \\ 0 & 1 & \cdots & 0 \\ \vdots & \vdots & \ddots & 0 \\ 0 & 0 & \cdots & 1 \end{bmatrix} \end{aligned}
YWI=⎝⎜⎜⎜⎛y1y2⋮yN⎠⎟⎟⎟⎞=⎣⎢⎢⎢⎢⎢⎢⎢⎡w11w21⋮wN1w12w22⋮wN2⋯⋯⋱⋯w1Nw2N⋮wNN⎦⎥⎥⎥⎥⎥⎥⎥⎤=⎣⎢⎢⎢⎡10⋮001⋮0⋯⋯⋱⋯0001⎦⎥⎥⎥⎤ 这里为了计算方便,我们把
W
\bf W
W 设成
N
×
N
N \times N
N×N 的矩阵,每一行代表一个点
y
i
{\bf y}_i
yi 相邻节点的权重,那么
y
i
{\bf y}_i
yi 的相邻节点只有
k
k
k 个,但我们每一行有
N
N
N 个 权重
w
w
w,为了解决这个矛盾,只需要将不是
y
i
{\bf y}_i
yi 相邻节点的权重置为
0
0
0 即可。这样,可得
ϕ
(
y
)
=
∑
i
N
∣
∣
y
i
−
∑
j
k
w
i
j
y
j
∣
∣
2
2
=
∑
i
N
∣
∣
I
i
Y
−
W
i
Y
∣
∣
2
2
=
∣
∣
(
I
−
W
)
Y
∣
∣
F
2
=
t
r
(
Y
T
(
I
−
W
)
T
(
I
−
W
)
Y
)
\begin{aligned} \phi ({\bf y}) & = \sum^N_i ||{\bf y}_i - \sum^k_j w^{j}_{i} {\bf y}_j||^2_2 \\ & = \sum^N_i||{\bf I}_i{\bf Y} - {\bf W}_i{\bf Y}||^2_2 \\ & = ||({\bf I} - {\bf W}){\bf Y}||^2_F \\ & = tr({\bf Y}^T({\bf I}- {\bf W})^T({\bf I} - {\bf W}){\bf Y}) \end{aligned}
ϕ(y)=i∑N∣∣yi−j∑kwijyj∣∣22=i∑N∣∣IiY−WiY∣∣22=∣∣(I−W)Y∣∣F2=tr(YT(I−W)T(I−W)Y) 令
M
=
(
I
−
W
)
T
(
I
−
W
)
{\bf M}=({\bf I}- {\bf W})^T({\bf I} - {\bf W})
M=(I−W)T(I−W),则有
ϕ
(
y
)
=
t
r
(
Y
T
M
Y
)
\phi({\bf y}) = tr({\bf Y}^T{\bf MY})
ϕ(y)=tr(YTMY) 设
Y
=
[
β
11
β
12
⋯
β
1
N
β
21
β
22
⋯
β
2
N
⋮
⋮
⋱
⋮
β
N
1
β
N
2
⋯
β
N
N
]
{\bf Y} = \begin{bmatrix} \beta_{11} & \beta_{12} & \cdots & \beta_{1N} \\[2ex] \beta_{21} & \beta_{22} & \cdots & \beta_{2N} \\[2ex] \vdots & \vdots & \ddots & \vdots \\[2ex] \beta_{N1} & \beta_{N2} & \cdots & \beta_{NN} \end{bmatrix}
Y=⎣⎢⎢⎢⎢⎢⎢⎢⎡β11β21⋮βN1β12β22⋮βN2⋯⋯⋱⋯β1Nβ2N⋮βNN⎦⎥⎥⎥⎥⎥⎥⎥⎤也即
y
i
=
(
β
i
1
,
β
i
2
,
⋯
,
β
i
N
)
{\bf y}_i = (\beta_{i1} , \beta_{i2} , \cdots , \beta_{iN})
yi=(βi1,βi2,⋯,βiN) 则
ϕ
(
y
)
=
t
r
(
[
β
11
β
21
⋯
β
N
1
β
12
β
22
⋯
β
N
2
⋮
⋮
⋱
⋮
β
1
N
β
2
N
⋯
β
N
N
]
M
[
β
11
β
12
⋯
β
1
N
β
21
β
22
⋯
β
2
N
⋮
⋮
⋱
⋮
β
N
1
β
N
2
⋯
β
N
N
]
)
\phi({\bf y}) = tr( \begin{bmatrix} \beta_{11} & \beta_{21} & \cdots & \beta_{N1} \\[2ex] \beta_{12} & \beta_{22} & \cdots & \beta_{N2} \\[2ex] \vdots & \vdots & \ddots & \vdots \\[2ex] \beta_{1N} & \beta_{2N} & \cdots & \beta_{NN} \\ \end{bmatrix} {\bf M} \begin{bmatrix} \beta_{11} & \beta_{12} & \cdots & \beta_{1N} \\[2ex] \beta_{21} & \beta_{22} & \cdots & \beta_{2N} \\[2ex] \vdots & \vdots & \ddots & \vdots \\[2ex] \beta_{N1} & \beta_{N2} & \cdots & \beta_{NN} \\ \end{bmatrix} )
ϕ(y)=tr(⎣⎢⎢⎢⎢⎢⎢⎢⎡β11β12⋮β1Nβ21β22⋮β2N⋯⋯⋱⋯βN1βN2⋮βNN⎦⎥⎥⎥⎥⎥⎥⎥⎤M⎣⎢⎢⎢⎢⎢⎢⎢⎡β11β21⋮βN1β12β22⋮βN2⋯⋯⋱⋯β1Nβ2N⋮βNN⎦⎥⎥⎥⎥⎥⎥⎥⎤) 令
z
i
=
(
β
1
i
,
β
2
i
,
⋯
,
β
N
i
)
{\bf z}_i = (\beta_{1i}, \beta_{2i}, \cdots, \beta_{Ni})
zi=(β1i,β2i,⋯,βNi),经过计算我们会发现
ϕ
(
y
)
=
t
r
(
[
z
1
T
M
z
1
z
2
T
M
z
2
⋱
z
N
T
M
z
N
]
)
=
∑
i
N
z
i
T
M
z
i
=
∑
i
N
z
i
H
M
z
i
(
z
i
为实数向量,
z
i
H
=
z
i
T
)
\begin{aligned} \phi({\bf y}) & = tr( \begin{bmatrix} {\bf z}_1^T{\bf Mz}_1 & & & \\[3ex] & {\bf z}_2^T{\bf Mz}_2 & & \\[3ex] & & \ddots & \\[3ex] & & & {\bf z}_N^T{\bf Mz}_N \end{bmatrix}) \\[12ex] & = \sum_i^N {\bf z}_i^T{\bf Mz}_i \\[2ex] & = \sum_i^N {\bf z}_i^H{\bf Mz}_i \quad \text{ (${\bf z}_i$ 为实数向量,${\bf z}_i^H = {\bf z}_i^T$) } \end{aligned}
ϕ(y)=tr(⎣⎢⎢⎢⎢⎢⎢⎢⎢⎡z1TMz1z2TMz2⋱zNTMzN⎦⎥⎥⎥⎥⎥⎥⎥⎥⎤)=i∑NziTMzi=i∑NziHMzi (zi 为实数向量,ziH=ziT) 为了方便计算,我们要求
Y
T
Y
=
I
{\bf Y}^T{\bf Y} = {\bf I}
YTY=I。
可以证明, M \bf M M 为厄米特矩阵(Hermitian Matrix)。这是因为, M T = ( ( I − W ) T ( I − W ) ) T = ( I − W ) T ( I − W ) = M {\bf M}^T = (({\bf I}- {\bf W})^T({\bf I} - {\bf W}))^T = ({\bf I}- {\bf W})^T({\bf I} - {\bf W}) = {\bf M} MT=((I−W)T(I−W))T=(I−W)T(I−W)=M 而 M \bf M M 又是实数矩阵,所以 M ∗ = M {\bf M}^* = {\bf M} M∗=M( M ∗ {\bf M}^* M∗ 表示 M \bf M M 的共轭矩阵),因此 M H = M {\bf M}^H = {\bf M} MH=M。观察 ϕ ( y ) \phi({\bf y}) ϕ(y), z i H M z i {\bf z}_i^H{\bf Mz}_i ziHMzi 正是瑞利商(Rayleigh quotient) z i H M z i / z i H z {\bf z}_i^H{\bf Mz}_i/{\bf z}_i^H{\bf z} ziHMzi/ziHz 的分子。又因为 Y T Y = I {\bf Y}^T{\bf Y} = {\bf I} YTY=I,所以 z i H z = 1 {\bf z}_i^H{\bf z} = 1 ziHz=1。根据瑞利定理(Rayleigh theorem), M \bf M M 的特征向量即是函数 R ( z ) = z H M z R({\bf z}) = {\bf z}^H{\bf Mz} R(z)=zHMz 的驻点,而对应的特征值即是 R ( z ) R({\bf z}) R(z) 在该点的值。因此,如果我们求使得 ϕ ( y ) \phi({\bf y}) ϕ(y) 最小的 y {\bf y} y,我们首先设定低维空间的维数 d d d,令 d ≪ D d \ll D d≪D,只需要求出 M \bf M M 所有的特征值,并将特征值从小到大排列,选取前 d d d 个特征值及其对应的特征向量,即可求得映射到低维空间的坐标 Y \bf Y Y(关于瑞利商和瑞利定理,请参考 瑞利商及瑞利定理 )。
参考资料
- Sam T. Roweis and Lawrence K. Saul, Nonlinear Dimensionality Reduction by Locally Linear Embedding, SCIENCE VOL 290
- https://zhuanlan.zhihu.com/p/47304678
- 周志华,机器学习,清华大学出版社
- 南瓜书,https://datawhalechina.github.io/pumpkin-book/