拉普拉斯特征映射(Laplacian Eigenmaps,LE)是一种降维方法,之前有讲过一种比较常见的降维算法: PCA。
LE在图嵌入中有一些应用,所以这里总结一下。
1. 一些定义
G = ( V , E ) G=(V,E) G=(V,E), ∣ V ∣ = n |V|=n ∣V∣=n, W W W为邻接矩阵, D D D为图的度矩阵(对角阵),有 D i i = ∑ j = 1 n w i j D_{ii}=\sum_{j=1}^nw_{ij} Dii=∑j=1nwij。
图的拉普拉斯矩阵定义:
L
=
D
−
W
L=D-W
L=D−W
需要注意的是,对于有向图来说,
W
W
W可以为出度矩阵,也可以为入度矩阵,视具体情况而定。我们下面讨论的都是无向图的拉普拉斯矩阵。
对于实对称矩阵
L
L
L,有以下性质:对任意非零列向量
y
=
[
y
1
,
.
.
.
,
y
n
]
T
y=[y_1,...,y_n]^T
y=[y1,...,yn]T,我们有:
y
T
L
y
=
1
2
∑
i
=
1
n
∑
j
=
1
n
w
i
j
(
y
i
−
y
j
)
2
≥
0
y^TLy=\frac{1}{2}\sum_{i=1}^n\sum_{j=1}^nw_{ij}(y_i-y_j)^2\geq0
yTLy=21i=1∑nj=1∑nwij(yi−yj)2≥0
即
L
L
L是半正定的。证明如下:
y
T
L
y
=
y
T
D
y
−
y
T
W
y
=
∑
i
=
1
n
D
i
i
y
i
2
−
∑
i
=
1
n
∑
j
=
1
n
y
i
y
j
w
i
j
=
1
2
(
∑
i
=
1
n
D
i
i
y
i
2
−
2
∑
i
=
1
n
∑
j
=
1
n
y
i
y
j
w
i
j
+
∑
j
=
1
n
D
j
j
y
j
2
)
=
1
2
(
∑
i
=
1
n
(
∑
j
=
1
n
w
i
j
)
y
i
2
−
2
∑
i
=
1
n
∑
j
=
1
n
y
i
y
j
w
i
j
+
∑
j
=
1
n
(
∑
i
=
1
n
w
i
j
)
y
j
2
)
=
1
2
∑
i
=
1
n
∑
j
=
1
n
w
i
j
(
y
i
−
y
j
)
2
\begin{aligned} y^TLy&=y^TDy-y^TWy\\ &=\sum_{i=1}^nD_{ii}y_i^2-\sum_{i=1}^n\sum_{j=1}^ny_iy_jw_{ij}\\ &=\frac{1}{2}(\sum_{i=1}^nD_{ii}y_i^2-2\sum_{i=1}^n\sum_{j=1}^ny_iy_jw_{ij}+\sum_{j=1}^nD_{jj}y_j^2)\\ &=\frac{1}{2}(\sum_{i=1}^n(\sum_{j=1}^nw_{ij})y_i^2-2\sum_{i=1}^n\sum_{j=1}^ny_iy_jw_{ij}+\sum_{j=1}^n(\sum_{i=1}^nw_{ij})y_j^2)\\ &=\frac{1}{2}\sum_{i=1}^n\sum_{j=1}^nw_{ij}(y_i-y_j)^2 \end{aligned}
yTLy=yTDy−yTWy=i=1∑nDiiyi2−i=1∑nj=1∑nyiyjwij=21(i=1∑nDiiyi2−2i=1∑nj=1∑nyiyjwij+j=1∑nDjjyj2)=21(i=1∑n(j=1∑nwij)yi2−2i=1∑nj=1∑nyiyjwij+j=1∑n(i=1∑nwij)yj2)=21i=1∑nj=1∑nwij(yi−yj)2
2. 矩阵的迹求导
对LE的推导需要补充一些数学知识:
∂
t
r
(
A
T
B
A
)
∂
A
=
(
B
+
B
T
)
A
∂
t
r
(
A
B
A
T
C
)
∂
A
=
C
A
B
+
C
T
A
B
T
\frac{\partial tr(A^TBA)}{\partial A}=(B+B^T)A\\ \ \\ \frac{\partial tr(ABA^TC)}{\partial A}=CAB+C^TAB^T
∂A∂tr(ATBA)=(B+BT)A ∂A∂tr(ABATC)=CAB+CTABT
3. LE
3.1 目标函数
在图嵌入中,我们的目的是得到每个顶点的低维向量表示,假设嵌入向量维度为 m m m。
LE的思想:如果两个数据实例 i i i和 j j j很相似,那么它们在降维后的目标子空间中应该尽量接近。
而在图嵌入中,衡量两个节点是否相似的最直接度量为一阶邻近度,两个节点 v i v_i vi和 v j v_j vj间的一阶邻近度即两个节点间相连边的权重。
一阶邻近度通常意味着真实世界网络中两个节点的相似性。正所谓近朱者赤近墨者黑,比如在社交网络中成为朋友的人往往有相似的兴趣爱好,又比如万维网上相互链接的网页往往谈论类似的话题。由于这种重要性,现有的许多图嵌入算法在设计目标函数时都会保持一阶邻近度。
因此,LE的思想可以重新表述为:如果两个节点在原始图中彼此相邻,那么它们的低维嵌入向量应该彼此接近。
我们设节点
v
i
v_i
vi和
v
j
v_j
vj的向量表示分别为
y
i
∈
R
m
y_i\in R^m
yi∈Rm和
y
j
∈
R
m
y_j\in R^m
yj∈Rm,鉴于此,我们就可以得出LE的目标函数:
m
i
n
1
2
∑
i
=
1
n
∑
j
=
1
n
∣
∣
y
i
−
y
j
∣
∣
2
w
i
j
min\ \ \frac{1}{2}\sum_{i=1}^n\sum_{j=1}^n||y_i-y_j||^2w_{ij}
min 21i=1∑nj=1∑n∣∣yi−yj∣∣2wij
从目标函数可以看出,如果两个节点
v
i
v_i
vi和
v
j
v_j
vj的一阶邻近度
w
i
j
w_{ij}
wij较大(很相似),那么我们在最小化目标函数时,就会更多地考虑二者间的差异。
假设 y i y_i yi是一个列向量,那么 y i 2 = y i T y i y_i^2=y_i^Ty_i yi2=yiTyi。
下面开始对目标函数进行化简:
1
2
∑
i
=
1
n
∑
j
=
1
n
∣
∣
y
i
−
y
j
∣
∣
2
w
i
j
=
1
2
∑
i
=
1
n
∑
j
=
1
n
(
y
i
T
y
i
w
i
j
−
2
y
i
y
j
w
i
j
+
y
j
T
y
j
w
i
j
)
w
i
j
=
1
2
∑
i
=
1
n
(
∑
j
=
1
n
w
i
j
)
y
i
T
y
i
−
∑
i
=
1
n
∑
j
=
1
n
y
i
y
j
w
i
j
+
1
2
∑
j
=
1
n
(
∑
i
=
1
n
w
i
j
)
y
j
T
y
j
=
1
2
∑
i
=
1
n
D
i
i
y
i
T
y
i
−
∑
i
=
1
n
∑
j
=
1
n
y
i
y
j
w
i
j
+
1
2
∑
i
=
1
n
D
i
i
y
i
T
y
i
=
∑
i
=
1
n
D
i
i
y
i
T
y
i
−
∑
i
=
1
n
∑
j
=
1
n
y
i
y
j
w
i
j
=
t
r
(
Y
T
D
Y
)
−
t
r
(
Y
T
W
Y
)
=
t
r
(
Y
T
(
D
−
W
)
Y
)
=
t
r
(
Y
T
L
Y
)
\begin{aligned} &\frac{1}{2}\sum_{i=1}^n\sum_{j=1}^n||y_i-y_j||^2w_{ij}\\ =&\frac{1}{2}\sum_{i=1}^n\sum_{j=1}^n(y_i^Ty_iw_{ij}-2y_iy_jw_{ij}+y_j^Ty_jw_{ij})w_{ij}\\ =&\frac{1}{2}\sum_{i=1}^n(\sum_{j=1}^nw_{ij})y_i^Ty_i-\sum_{i=1}^n\sum_{j=1}^ny_iy_jw_{ij}+\frac{1}{2}\sum_{j=1}^n(\sum_{i=1}^nw_{ij})y_j^Ty_j\\ =&\frac{1}{2}\sum_{i=1}^nD_{ii}y_i^Ty_i-\sum_{i=1}^n\sum_{j=1}^ny_iy_jw_{ij}+\frac{1}{2}\sum_{i=1}^nD_{ii}y_i^Ty_i\\ =&\sum_{i=1}^nD_{ii}y_i^Ty_i-\sum_{i=1}^n\sum_{j=1}^ny_iy_jw_{ij}\\ =&tr(Y^TDY)-tr(Y^TWY)\\ =&tr(Y^T(D-W)Y)\\ =&tr(Y^TLY) \end{aligned}
=======21i=1∑nj=1∑n∣∣yi−yj∣∣2wij21i=1∑nj=1∑n(yiTyiwij−2yiyjwij+yjTyjwij)wij21i=1∑n(j=1∑nwij)yiTyi−i=1∑nj=1∑nyiyjwij+21j=1∑n(i=1∑nwij)yjTyj21i=1∑nDiiyiTyi−i=1∑nj=1∑nyiyjwij+21i=1∑nDiiyiTyii=1∑nDiiyiTyi−i=1∑nj=1∑nyiyjwijtr(YTDY)−tr(YTWY)tr(YT(D−W)Y)tr(YTLY)
其中,
Y
=
(
y
1
,
.
.
.
,
y
n
)
T
Y=(y_1,...,y_n)^T
Y=(y1,...,yn)T,
t
r
(
A
)
tr(A)
tr(A)表示对矩阵
A
A
A求秩(对角线之和)。
3.2 约束条件
考虑到目标函数:
m
i
n
1
2
∑
i
=
1
n
∑
j
=
1
n
∣
∣
y
i
−
y
j
∣
∣
2
w
i
j
min\ \ \frac{1}{2}\sum_{i=1}^n\sum_{j=1}^n||y_i-y_j||^2w_{ij}
min 21i=1∑nj=1∑n∣∣yi−yj∣∣2wij
我们不妨设想一种极端情况,假设所有节点都映射到了同一个位置,也就是所有节点的嵌入向量
y
y
y相同,那么此时目标函数肯定有最小值0。又比如我们就假设所有节点的嵌入向量全部为0向量,此时目标函数也有最小值0。
以上两种情况是毫无意义的。此外,在上述情况下, y y y的维度也是任意的。因此,为了得到唯一解,我们需要对节点最终的嵌入向量 y y y做一些限制。
一个最简单的限制就是:我们希望最终得到的所有节点的嵌入向量 y y y能够尽可能地去填充 R m R^m Rm空间,而不是挤在一起。举个例子,假设 m = 2 m=2 m=2,那么我们不希望所有节点的嵌入向量 y y y(一个点)挤在一起,或者就只是聚集在某一条直线附近,而是尽可能的去散开,因为如果聚在一起就表示图中所有节点具有类似的性质,这显然是不科学的,我们只是需要邻接的节点的嵌入向量相似即可。
为了理解限制条件,我查阅了拉普拉斯特征映射的论文,论文中给出的限制条件为:
Y
T
D
Y
=
I
Y^TDY=I
YTDY=I
原文中关于约束条件
Y
T
D
Y
=
1
Y^TDY=1
YTDY=1的描述为:
Y
T
D
Y
=
1
Y^TDY=1
YTDY=1这一限制条件删除了嵌入中的任意比例因子。也就是说,每一个
y
i
y_i
yi的尺度被固定了。
至于为什么选则 D D D而不是其他矩阵,原文中给出的解释为:度矩阵 D D D可以很好地提供节点自身的一个度量。我们可以这样理解: D D D可以描述每一个节点在graph中的重要性,如果我们使用 D D D对 y y y的尺度进行限制,那么我们可以使得 y y y在 R m R^m Rm上分布更加均匀,也就是前面我们提到的:我们希望最终得到的所有节点的嵌入向量 y y y能够尽可能地去填充 R m R^m Rm空间,而不是挤在一起。
3.3 优化
有了
y
i
T
D
y
i
=
1
y_i^TDy_i=1
yiTDyi=1这一限制条件后,我们可以构造拉格朗日函数如下:
L
=
t
r
(
Y
T
L
Y
)
−
∑
i
=
1
n
λ
i
(
1
−
y
i
T
D
y
i
)
L=tr(Y^TLY)-\sum_{i=1}^n\lambda_i(1-y_i^TDy_i)
L=tr(YTLY)−i=1∑nλi(1−yiTDyi)
我们令
Λ
\Lambda
Λ为一个对角阵,对角阵上的元素
Λ
i
i
=
λ
i
\Lambda_{ii}=\lambda_i
Λii=λi,因此,上述拉格朗日函数可以变为矩阵形式:
L
=
t
r
(
Y
T
L
Y
)
−
t
r
(
Λ
(
Y
T
D
Y
−
I
)
)
L=tr(Y^TLY)-tr(\Lambda(Y^TDY-I))
L=tr(YTLY)−tr(Λ(YTDY−I))
对于第一项,由第二节中求导公式(1)可知:
∂
t
r
(
Y
T
L
Y
)
∂
Y
=
(
L
+
L
T
)
Y
\frac{\partial tr(Y^TLY)}{\partial Y}=(L+L^T)Y
∂Y∂tr(YTLY)=(L+LT)Y
对于第二项,由第二节中求导公式(2)可知:
∂
t
r
(
Λ
Y
T
D
Y
)
∂
Y
=
D
Y
Λ
+
D
T
Y
Λ
T
\frac{\partial tr(\Lambda Y^TDY)}{\partial Y}=DY\Lambda+D^TY\Lambda^T
∂Y∂tr(ΛYTDY)=DYΛ+DTYΛT
因此我们有:
∂
L
∂
Y
=
L
Y
+
L
T
Y
+
D
Y
Λ
+
D
T
Y
Λ
T
=
2
L
Y
+
2
D
Y
Λ
=
0
\begin{aligned} \frac{\partial L}{\partial Y}&=LY+L^TY+DY\Lambda+D^TY\Lambda^T\\ &=2LY+2DY\Lambda=0 \end{aligned}
∂Y∂L=LY+LTY+DYΛ+DTYΛT=2LY+2DYΛ=0
解得:
L
Y
=
−
D
Y
Λ
LY=-DY\Lambda
LY=−DYΛ
写成一般形式为:
L
y
i
=
λ
i
D
y
i
Ly_i=\lambda_iDy_i
Lyi=λiDyi
3.4 广义特征值问题
上述问题转为广义特征值求解问题:
L
y
=
λ
D
y
Ly=\lambda Dy
Ly=λDy
所谓广义特征值问题:对于实对称矩阵
A
A
A和实对称正定矩阵
B
B
B,如果有非零解
x
x
x满足:
A
x
=
λ
B
x
Ax=\lambda Bx
Ax=λBx
则称
λ
\lambda
λ是
A
A
A相对于
B
B
B的特征值。
在本文中, L L L是实对称矩阵, D D D首先是实对称矩阵,其次 D D D也是正定的,这点很好证明,便不再叙述。
那么到底如何求解广义特征值文题呢?我们知道,一般特征值的表达形式为:
A
x
=
λ
x
Ax=\lambda x
Ax=λx
对于一般特征值求解,我们可以转为:
(
A
−
λ
E
)
x
=
0
(A-\lambda E)x=0
(A−λE)x=0
那么我们可以尝试将广义特征值问题转为此类问题。
首先,我们将矩阵
B
B
B进行Cholesky分解:
B
=
G
G
T
B=GG^T
B=GGT
其中
G
G
G为下三角矩阵。
然后有:
A
x
=
λ
G
G
T
x
Ax=\lambda GG^Tx
Ax=λGGTx
两边乘上
G
−
1
G^{-1}
G−1:
G
−
1
A
x
=
λ
G
T
x
G^{-1}Ax=\lambda G^Tx
G−1Ax=λGTx
然后:
G
−
1
A
x
=
λ
G
T
x
G
−
1
A
(
(
G
T
)
−
1
G
T
)
x
=
λ
G
T
x
\begin{aligned} G^{-1}Ax&=\lambda G^Tx \ \\ G^{-1}A((G^T)^{-1}G^T)x&=\lambda G^Tx \end{aligned}
G−1AxG−1A((GT)−1GT)x=λGTx =λGTx
这时两边都出现了
G
T
x
G^Tx
GTx,我们将其合并:
(
G
−
1
A
(
G
T
)
−
1
)
(
G
T
x
)
=
λ
(
G
T
x
)
(G^{-1}A(G^T)^{-1})(G^Tx)=\lambda (G^Tx)
(G−1A(GT)−1)(GTx)=λ(GTx)
我们令:
G
−
1
A
(
G
T
)
−
1
=
T
G
T
x
=
s
\begin{aligned} G^{-1}A(G^T)^{-1}&=T \ \\ G^Tx&=s \end{aligned}
G−1A(GT)−1GTx=T =s
于是原问题变为一般特征值的求解问题:
T
s
=
λ
s
Ts=\lambda s
Ts=λs
然后,我们就能求出矩阵
T
T
T的特征值
s
s
s,进而解出
x
x
x。
3.5 结果
经过3.4之后,得到了 L y i = λ D y i Ly_i=\lambda Dy_i Lyi=λDyi中的解向量 y i y_i yi,然后选取最小的 m m m个非零特征值对应的特征向量作为节点的嵌入向量。
为什么要选取非零特征值的特征向量?根据 L L L的性质, L L L的行和为0。因此,从 L y i = λ D y i Ly_i=\lambda Dy_i Lyi=λDyi可以看出, L L L具有广义特征值0和对应的特征向量 1 = ( 1 , . . . , 1 ) T 1=(1,...,1)^T 1=(1,...,1)T,由如果 1 = ( 1 , . . . , 1 ) T 1=(1,...,1)^T 1=(1,...,1)T被选中,那么每一个节点的嵌入向量中的某一维度将全是1,那么嵌入向量将退化到更低一维的空间中。
为什么要选取
m
m
m个最小的特征值对应的特征向量?参考网上说法:我们将
L
Y
=
−
D
Y
Λ
LY=-DY\Lambda
LY=−DYΛ代回到原目标函数
t
r
(
Y
T
L
Y
)
tr(Y^TLY)
tr(YTLY)中,可以得到:
m
i
n
t
r
(
−
Y
T
D
Y
Λ
)
min\ \ tr(-Y^TDY\Lambda)
min tr(−YTDYΛ)
又由于有限制条件:
Y
T
D
Y
=
I
Y^TDY=I
YTDY=I
所以最终目标函数为:
m
i
n
t
r
(
−
Λ
)
min \ \ tr(-\Lambda)
min tr(−Λ)
这里
t
r
(
Λ
)
=
λ
1
+
.
.
.
+
λ
n
tr(\Lambda)=\lambda_1+...+\lambda_n
tr(Λ)=λ1+...+λn,目标函数即为特征值之和,为了使得目标函数最小化,当然应该选择最小的
m
m
m个特征值。