论文 GMC: Graph-based Multi-view Clustering

GMC: Graph-based Multi-view Clustering

文章连接地址:https://doi.org/10.1109/TKDE.2019.2903810

一、文章介绍

GMC 模型是一个多视图学习,侧重于无监督的多视图聚类。

多视图(Multi-view):多个视图来描述同一个对象或者系统,每个视图都是一个学习任务,但每个视图之间的侧重点是不一样,假设现有一个新闻数据,我们可以用多个视图(eg:文字、图片)来描述同一个新闻,它们可以单独地表述,也可以聚合起来一起描述药物信息。单视图数据一般用一个矩阵表示,而多视图就相当于有 m m m 个矩阵。

多视图学习是聚合多个矩阵来训练模型以得到预测结果。通常的多视图的聚类方法,首先在所有输入图(视图)上找到一个融合图,然后在这个融合图上使用一个额外的聚类算法来产生最终的聚类。

但是在 GMC 模型中,首先为每个视图构建一个 SIG(similarity-induced graph) 矩阵,就会产生 m m m 个 SIG 矩阵 { S 1 , . . . , S m } \{\mathbf{S}^1, ..., \mathbf{S}^m\} {S1,...,Sm};然后将这些 SIG 矩阵融合在一起,学习得到 a unified matrix U \mathbf{U} U,在 U \mathbf{U} U 的学习过程中会自动计算每个视图的权重;最后,对最终学习到 U \mathbf{U} U 的拉普拉斯矩阵添加一个 rank constraint(秩约束),即意味着约束了 U \mathbf{U} U 的连通数量,以确保 U \mathbf{U} U 中的连通数量等于所需的聚类数目 c c c

二、GMC 模型的构建

SIG 矩阵的构建

对于有 m m m 个视图的多视图数据集: X 1 \mathbf{X}^1 X1, X 2 \mathbf{X}^2 X2, …, X m \mathbf{X}^m Xm ,且第 v v v 个视图矩阵为 X v = { x 1 v , x 2 v , . . . , x n v } ∈ R d v × n \mathbf{X}^v = \{\mathbf{x}_1^v, \mathbf{x}_2^v, ..., \mathbf{x}_n^v\} \in \mathbb{R}^{d_v \times n} Xv={x1v,x2v,...,xnv}Rdv×n
X v \mathbf{X}^v Xv 的一列表示一个数据点,因此一共有 n n n 个样本点,其中 x i v \mathbf{x}_i^v xiv 表示为 X v \mathbf{X}^v Xv 的第 i i i 列向量且有 d v d_v dv 个维度。

相似度计算可以将原始的数据转为点与点之间的关系(距离)。这种关系可以表示为一个关系矩阵,其中矩阵的每个元素表示两个数据点之间的相似度或者关系程度;两个数据点之间的距离越小,对应的相似度值就越大,两个数据点之间的距离越大,对应的相似度值就越小(或为零)。
如果 S i j v \mathbf{S}^v_{ij} Sijv 表示数据点 i i i 和数据点 j j j 之间的相似度,那么当 S i j v \mathbf{S}^v_{ij} Sijv 的值较大时,可以认为数据点 i i i 和数据点 j j j 在图中是相连的;而当 S i j v \mathbf{S}^v_{ij} Sijv 的值较小或者为零时,则表示数据点 i i i 和数据点 j j j 在图中是没有连接的。

为此,我们使用一种稀疏表示 (sparse representation) 方法来构造 SIG 矩阵 S v ∈ R n × n \mathbf{S}^v \in \mathbb{R}^{n \times n} SvRn×n。在数学上,我们对这个问题的建模如下:
min ⁡ { S v } ∑ v = 1 m ∑ i , j = 1 n ∥ x i v − x j v ∥ 2 2 s i j v + β ∑ v = 1 m ∑ i n ∥ s i v ∥ 2 2 s . t . ∀ v , s i i v = 0 , s i j v ≥ 0 , 1 T s i v = 1. (1) \mathop{\min}_{\{ \mathbf{S}^v \}} \sum_{v=1}^{m} \sum_{i,j=1}^{n} \parallel \mathbf{x}_i^v - \mathbf{x}_j^v \parallel^2_2 s^v_{ij} + \beta \sum_{v=1}^{m} \sum_{i}^{n} \parallel \mathbf{s}_i^v \parallel^2_2 \\ s.t. \forall v, s_{ii}^v = 0, s_{ij}^v \geq 0, \mathbf{1}^T \mathbf{s}_i^v = 1. \tag{1} min{Sv}v=1mi,j=1nxivxjv22sijv+βv=1minsiv22s.t.∀v,siiv=0,sijv0,1Tsiv=1.(1)
其中, ∥ ⋅ ∥ 2 2 \parallel \cdot \parallel^2_2 22 是二范数, s i v \mathbf{s}_i^v siv S v \mathbf{S}^v Sv 的第 i i i 个向量,且此时一行向量表示一个数据, { S v } \{ \mathbf{S}^v \} {Sv} S 1 \mathbf{S}^1 S1, …, S m \mathbf{S}^m Sm。每个视图的 SIG 矩阵之间是独立的。

矩阵 U \mathbf{U} U 的构建

通过融合和学习 SIG 矩阵 { S 1 \mathbf{S}^1 S1, …, S m \mathbf{S}^m Sm } ,得到 U ∈ R n × n \mathbf{U} \in \mathbb{R}^{n \times n} URn×n 矩阵:
min ⁡ U ∑ v = 1 m w v ∥ U − S v ∥ F 2 s . t . ∀ i , u i j ≥ 0 , 1 T u i = 1. (2) \mathop{\min}_{\mathbf{U}} \sum_{v=1}^{m} w_v \parallel \mathbf{U} - \mathbf{S}^v \parallel^2_F \\ s.t. \forall i, u_{ij} \geq 0, \mathbf{1}^T \mathbf{u}_i=1. \tag{2} minUv=1mwvUSvF2s.t.∀i,uij0,1Tui=1.(2)
其中, ∥ ⋅ ∥ F 2 \parallel \cdot \parallel^2_F F2 是 Frobenius 范数, u i ∈ R n × 1 \mathbf{u}_i \in \mathbb{R}^{n \times 1} uiRn×1 U \mathbf{U} U 的第 i i i 个向量, u i j u_{ij} uij u i \mathbf{u}_i ui 的第 j j j 个元素(一行向量表示一个数据), w v w_v wv 是第 v v v 个 SIG 矩阵 S v \mathbf{S}^v Sv 的权重, w = { w 1 , w 2 , . . . , w m } \mathbf{w} = \{w_1, w_2, ..., w_m\} w={w1,w2,...,wm}

在融合的过程中,注意条件 1 T u i = 1 \mathbf{1}^T \mathbf{u}_i = 1 1Tui=1

1 T u i = 1 \mathbf{1}^T \mathbf{u}_i=1 1Tui=1 表示了向量 u i \mathbf{u}_i ui 的所有元素之和等于 1。在概率分布中,确保概率值之和为 1。

根据文中描述,在对 U \mathbf{U} U 求解中将权重 w v w_v wv 定义为:
w v = 1 2 ∥ U − S v ∥ F 2 (3) w_v = \frac{1}{2\sqrt{\parallel \mathbf{U} - \mathbf{S}^v \parallel^2_F}} \tag{3} wv=2USvF2 1(3)

联合公式 ( 1 ) (1) (1), ( 2 ) (2) (2) ( 3 ) (3) (3),就可以将SIG 矩阵与统一图矩阵 U \mathbf{U} U 耦合起来,描述为:
min ⁡ { S v } , U ∑ v = 1 m ∑ i , j = 1 n ∥ x i v − x j v ∥ 2 2 s i j v + β ∑ v = 1 m ∑ i n ∥ s i v ∥ 2 2 + ∑ v = 1 m w v ∥ U − S v ∥ F 2 s . t . ∀ v , s i i v = 0 , s i j v ≥ 0 , 1 T s i v = 1 , u i j ≥ 0 , 1 T u i = 1 (4) \mathop{\min}_{\{ \mathbf{S}^v \}, \mathbf{U}} \sum_{v=1}^{m} \sum_{i,j=1}^{n} \parallel \mathbf{x}_i^v - \mathbf{x}_j^v \parallel^2_2 s^v_{ij} + \beta \sum_{v=1}^{m} \sum_{i}^{n} \parallel \mathbf{s}_i^v \parallel^2_2 \\ + \sum_{v=1}^{m} w_v \parallel \mathbf{U} - \mathbf{S}^v \parallel^2_F \\ s.t. \forall v, s_{ii}^v = 0, s_{ij}^v \geq 0, \mathbf{1}^T \mathbf{s}_i^v = 1, \\ u_{ij} \geq 0, \mathbf{1}^T \mathbf{u}_i=1 \tag{4} min{Sv},Uv=1mi,j=1nxivxjv22sijv+βv=1minsiv22+v=1mwvUSvF2s.t.∀v,siiv=0,sijv0,1Tsiv=1,uij0,1Tui=1(4)

添加约束拉普拉斯秩进行多视图聚类

为了可以直接从 U \mathbf{U} U 中得到簇类结果,需要在 U \mathbf{U} U 的图拉普拉斯矩阵 L U \mathbf{L}_U LU 上施加一个 秩约束 来限定 U \mathbf{U} U 的连通分量的个数。

定理2:拉普拉斯矩阵 L U \mathbf{L}_U LU 的特征值为 0 0 0 的重数 r r r 等于矩阵 U \mathbf{U} U 的图中连通分量的个数。
解释:拉普拉斯矩阵 L U \mathbf{L}_U LU 的特征值 0 0 0 的重数 r r r 表示图 U \mathbf{U} U r r r 个连通分量,每个连通分量可以看作是一个独立的子图,其中的节点之间是相互连接的,而与其他连通分量的节点是没有连接的。
特征值的重数: 特征值的重数是指该特征值在特征多项式中出现的次数。
拉普拉斯矩阵至少有一个特征值为 0,零特征值的个数等于图的连通分量(Connected Components)的个数。

假设 ϑ i ( L U ) \vartheta_i(\mathbf{L}_U) ϑi(LU) L U \mathbf{L}_U LU 中第 i i i 个最小的特征值,且需要 L U \mathbf{L}_U LU 是半正定矩阵,因为 ϑ i ( L U ) ≥ 0 \vartheta_i(\mathbf{L}_U) \ge 0 ϑi(LU)0

如果矩阵 L U \mathbf{L}_U LU c c c 个零特征值( ∑ i = 1 c ϑ i ( L U ) = 0 \sum_{i=1}^c \vartheta_i(\mathbf{L}_U) = 0 i=1cϑi(LU)=0),那么矩阵 L U \mathbf{L}_U LU 就有 r a n k ( L U ) = n − c rank( \mathbf{L}_U ) = n − c rank(LU)=nc 。因此需要求解 L U \mathbf{L}_U LU 的最小特征值:
∑ i = 1 c ϑ i ( L U ) = min ⁡ F ∈ R n × c T r ( F T L U F ) s . t . F T F = I (5) \sum_{i=1}^c \vartheta_i(\mathbf{L}_U) = \mathop{\min}_{\mathbf{F}\in \mathbb{R}^{n \times c}}Tr( \mathbf{F}^T \mathbf{L}_U \mathbf{F} ) \quad s.t. \mathbf{F}^T \mathbf{F} = \mathbf{I} \tag{5} i=1cϑi(LU)=minFRn×cTr(FTLUF)s.t.FTF=I(5)
其中, F = { f 1 , . . . , f c } \mathbf{F} = \{\mathbf{f}_1, ..., \mathbf{f}_c \} F={f1,...,fc} 是一个嵌入矩阵,即为 L U \mathbf{L}_U LU 的特征向量。

F T L U F \mathbf{F}^T \mathbf{L}_U \mathbf{F} FTLUF 表示拉普拉斯矩阵 L U \mathbf{L}_U LU 在其特征向量基底上的对角化形式,结果是一个对角矩阵,其对角元素为拉普拉斯矩阵的特征值。
T r ( F T L U F ) Tr( \mathbf{F}^T \mathbf{L}_U \mathbf{F} ) Tr(FTLUF) 求括号内矩阵的对角线上所有元素的和,即为求得拉普拉斯矩阵 L U \mathbf{L}_U LU 的所有特征值之和。

因此,我们在公式 ( 4 ) (4) (4) 中添加了一个秩约束 r a n k ( L U ) = n − c rank( \mathbf{L}_U ) = n − c rank(LU)=nc,通过上面的定理2,目标公式变为:
min ⁡ { S v } , U ∑ v = 1 m ∑ i , j = 1 n ∥ x i v − x j v ∥ 2 2 s i j v + β ∑ v = 1 m ∑ i n ∥ s i v ∥ 2 2 + ∑ v = 1 m w v ∥ U − S v ∥ F 2 + 2 λ T r ( F T L U F ) s . t . ∀ v , s i i v = 0 , s i j v ≥ 0 , 1 T s i v = 1 , u i j ≥ 0 , 1 T u i = 1 , F T F = I (6) \mathop{\min}_{\{ \mathbf{S}^v \}, \mathbf{U}} \sum_{v=1}^{m} \sum_{i,j=1}^{n} \parallel \mathbf{x}_i^v - \mathbf{x}_j^v \parallel^2_2 s^v_{ij} + \beta \sum_{v=1}^{m} \sum_{i}^{n} \parallel \mathbf{s}_i^v \parallel^2_2 \\ + \sum_{v=1}^{m} w_v \parallel \mathbf{U} - \mathbf{S}^v \parallel^2_F + 2 \lambda Tr( \mathbf{F}^T \mathbf{L}_U \mathbf{F} ) \\ s.t. \forall v, s_{ii}^v = 0, s_{ij}^v \geq 0, \mathbf{1}^T \mathbf{s}_i^v = 1, \\ u_{ij} \geq 0, \mathbf{1}^T \mathbf{u}_i=1, \mathbf{F}^T \mathbf{F} = \mathbf{I} \tag{6} min{Sv},Uv=1mi,j=1nxivxjv22sijv+βv=1minsiv22+v=1mwvUSvF2+2λTr(FTLUF)s.t.∀v,siiv=0,sijv0,1Tsiv=1,uij0,1Tui=1,FTF=I(6)
其中, λ \lambda λ 是一个参数,且它的值由 c c c 个簇决定(In practice, we increase or decrease the value of λ \lambda λ when the number of connected components is smaller or greater than c c c. )。

三、OPTIMIZATION ALGORITHMS

1、初始化每个变量
  • 初始化 SIG 矩阵 S v \mathbf{S}^v Sv:每个维度为 d v × n d_{v} \times n dv×n 的视图矩阵 X v \mathbf{X}^v Xv 都会生成一个维度为 n × n n \times n n×n 的SIG 矩阵 S v \mathbf{S}^v Sv,其中每一行表示一个数据点【可以根据 k k k 个邻居点进行构建 – 选取按从大到小排好序的一行的前 k+1 个元素】;
    s i j = { b i , k + 1 − b i j k b i , k + 1 − ∑ h = 1 k b i h j ≤ k 0 j > k s_{ij} = \left\{ \begin{array}{ll} \frac{b_{i,k+1} - b_{ij}}{k b_{i, k+1} - \sum_{h=1}^k b_{ih}} &j \leq k \\ 0 & j > k \end{array} \right. sij={kbi,k+1h=1kbihbi,k+1bij0jkj>k
    其中, b i j = ∥ x i v − x j v ∥ 2 2 b_{ij} = \|\mathbf{x}_i^v - \mathbf{x}_j^v \|_2^2 bij=xivxjv22 k k k 是邻居点的个数。
  • 初始化 w v w_v wv:每个元素均为 1 m \frac{1}{m} m1,且维度为 m × 1 m \times 1 m×1
  • 初始化 U \mathbf{U} U:公式 ( 2 ) (2) (2),根据上一步得到 SIG 矩阵,生成一个 n × n n \times n n×n 的矩阵 U \mathbf{U} U,;
  • 初始化 F \mathbf{F} F:公式 ( 5 ) (5) (5),先得到 U \mathbf{U} U 的拉普拉斯矩阵 L U ( n × n ) \mathbf{L}_U (n \times n) LU(n×n) ,再对这个 L U \mathbf{L}_U LU 进行 eig() 计算得到特征向量和特征值,其中维度为 n × c n \times c n×c 的特征向量就是 F \mathbf{F} F,而特征值的维度为 c × 1 c \times 1 c×1

[V, D] = eig(A):在 matlab 中这个函数求解方阵 A 的特征值和特征向量,返回得到的 V 是特征向量,而 D 是对角矩阵,对角元素为与特征向量所对应的特征值,且没有排序关系。

2、循环更新这些变量
  • 固定 w , U , F w,\mathbf{U},\mathbf{F} w,U,F,逐个更新每个视图的相似度 S v \mathbf{S}^v Sv,问题 ( 6 ) (6) (6) 变为:
    min ⁡ S v ∑ v = 1 m ∑ i , j = 1 n ∥ x i v − x j v ∥ 2 2 s i j v + β ∑ v = 1 m ∑ i n ∥ s i v ∥ 2 2 + ∑ v = 1 m w v ∥ U − S v ∥ F 2 s . t . s i i v = 0 , s i j v ≥ 0 , 1 T s i v = 1 (7) \mathop{\min}_{\mathbf{S}^v} \sum_{v=1}^{m} \sum_{i,j=1}^{n} \parallel \mathbf{x}_i^v - \mathbf{x}_j^v \parallel^2_2 s^v_{ij} + \beta \sum_{v=1}^{m} \sum_{i}^{n} \parallel \mathbf{s}_i^v \parallel^2_2 + \sum_{v=1}^{m} w_v \parallel \mathbf{U} - \mathbf{S}^v \parallel^2_F \\s.t. s_{ii}^v = 0, s_{ij}^v \geq 0, \mathbf{1}^T \mathbf{s}_i^v = 1 \tag{7} minSvv=1mi,j=1nxivxjv22sijv+βv=1minsiv22+v=1mwvUSvF2s.t.siiv=0,sijv0,1Tsiv=1(7)
    实际上,我们不需要选择全部的特征,而是选择具有较高相似度的点。也就是说,我们在 S v \mathbf{S}^v Sv 中学习 S i v \mathbf{S}^v_i Siv(一个数据点 (行) 中选择 k k k 个特征),从数据点的邻居中找出 k k k 个最高的相似度值作为学习的目标。因此变化为:
    s i j v = { e i , k + 1 − e i j + 2 w v u i j − 2 w v u i , k + 1 k e i , k + 1 − ∑ h = 1 k e i h − 2 k w v u i , k + 1 + ∑ h = 1 k w v u i h j ≤ k 0 j > k (8) s_{ij}^v = \left\{ \begin{array}{ll} \frac{e_{i,k+1} - e_{ij} + 2 w_v u_{ij} - 2 w_v u_{i, k+1}}{k e_{i, k+1} - \sum_{h=1}^k e_{ih} - 2k w_v u_{i,k+1} + \sum_{h=1}^k w_v u_{ih}} &j \leq k \\ 0 & j > k \end{array} \right. \tag{8} sijv={kei,k+1h=1keih2kwvui,k+1+h=1kwvuihei,k+1eij+2wvuij2wvui,k+10jkj>k(8)
    其中, e i j = ∥ x i v − x j v ∥ 2 2 e_{ij} = \parallel \mathbf{x}_i^v - \mathbf{x}_j^v \parallel^2_2 eij=∥xivxjv22
  • 固定 S 1 , . . . , S m , U , F \mathbf{S}^1, ..., \mathbf{S}^m, \mathbf{U},\mathbf{F} S1,...,Sm,U,F,更新权重 w v w_v wv,则根据等式 ( 3 3 3) 直接求得;
  • 固定 S 1 , . . . , S m , w v , F \mathbf{S}^1, ..., \mathbf{S}^m, w_v,\mathbf{F} S1,...,Sm,wv,F,更新 U \mathbf{U} U,当 T r ( F T L U F ) = 1 2 ∑ i , j ∥ f i − f j ∥ 2 2 u i j Tr(\mathbf{F}^T \mathbf{L}_U \mathbf{F}) = \frac{1}{2}\sum_{i,j} \parallel \mathbf{f}_i - \mathbf{f}_j \parallel^2_2 u_{ij} Tr(FTLUF)=21i,jfifj22uij,且求解单个的 u i \mathbf{u}_i ui(注意条件关于 s i j s_{ij} sij 的范围),则问题 ( 6 ) (6) (6) 变成:
    min ⁡ u i ∑ v = 1 m ∑ j = 1 n w v ( u i j − s i j v ) 2 + λ ∑ j = 1 n ∥ f i − f j ∥ 2 2 u i j s . t . ∀ i , u i j ≥ 0 , 1 T u i = 1. (9) \mathop{\min}_{\mathbf{u}_i} \sum_{v=1}^{m} \sum_{j=1}^{n} w_v (u_{ij} - s_{ij}^v)^2 + \lambda \sum_{j=1}^{n} \parallel \mathbf{f}_i - \mathbf{f}_j \parallel^2_2 u_{ij} \\ s.t. \forall i, u_{ij} \geq 0, \mathbf{1}^T \mathbf{u}_i=1 . \tag{9} minuiv=1mj=1nwv(uijsijv)2+λj=1nfifj22uijs.t.∀i,uij0,1Tui=1.(9)
    其中,将 d i j = ∥ f i − f j ∥ 2 2 d_{ij} = \parallel \mathbf{f}_i - \mathbf{f}_j \parallel^2_2 dij=∥fifj22 ,则 ( 9 ) (9) (9) 变为(通过额外的步骤):
    min ⁡ u i ∑ v = 1 m ∥ u i − s i v + λ 2 m w v d i ∥ 2 2 s . t . ∀ i , u i j ≥ 0 , 1 T u i = 1. (10) \mathop{\min}_{\mathbf{u}_i} \sum_{v=1}^{m} \parallel \mathbf{u}_i - \mathbf{s}_i^v + \frac{\lambda}{2 m w_v}\mathbf{d}_i \parallel^2_2 \\ s.t. \forall i, u_{ij} \geq 0, \mathbf{1}^T \mathbf{u}_i=1 . \tag{10} minuiv=1muisiv+2mwvλdi22s.t.∀i,uij0,1Tui=1.(10)
    关于 u i j u_{ij} uij 的求解需要参考 4.2 章节。
  • 固定 S 1 , . . . , S m , w v , U \mathbf{S}^1, ..., \mathbf{S}^m, w_v, \mathbf{U} S1,...,Sm,wv,U,更新 F \mathbf{F} F:根据公式 ( 5 ) (5) (5) 更新,过程跟初始化差不多,需要 U \mathbf{U} U 的参与。
  • 当迭代次数或 λ \lambda λ 大小到一定范围后,循环结束,得到最终 U \mathbf{U} U
  • U \mathbf{U} U 直接使用 graphconncomp() 函数进行求解,得到图的连通分量的个数以及每个数据点对应的连通分量

graphconncomp 函数是 MATLAB 中用于计算图的连通分量的函数。[S, C] = graphconncomp(sparse(A)) :S 是连通分量的数量,C 是每个节点的连通分量标签。
然而在 MATLAB R2022b 及之后的版本中,该函数已被删除或不推荐使用,后续的版本可以用 conncomp 函数来代替。

文章中,模型执行流程

  • 10
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值