TNNLS-2015《Linear-Time Subspace Clustering via Bipartite Graph Modeling》
核心思想
这篇论文的核心思想是提出一种线性时间复杂度的子空间聚类方法,以应对大规模数据集的聚类需求。传统最先进的方法(如SSC、LRR)虽然精度高,但其计算复杂度为信号数量 LLL 的多项式级别(如 O(L2)O(L^2)O(L2) 或 O(L3)O(L^3)O(L3)),难以处理海量数据。
作者的创新之处在于,没有直接在信号之间构建亲和矩阵,而是引入了一个字典(Dictionary) D∈RN×MD \in \mathbb{R}^{N \times M}D∈RN×M。每个信号 yiy_iyi 通过稀疏编码(如OMP算法)被表示为字典原子的线性组合,得到稀疏系数矩阵 C∈RM×LC \in \mathbb{R}^{M \times L}C∈RM×L。
接着,作者将稀疏系数矩阵 CCC 的绝对值 A=∣C∣A = |C|A=∣C∣ 视为一个二分图(Bipartite Graph的亲和矩阵。该二分图包含两类互不相交的顶点:一类是 MMM 个字典原子,另一类是 LLL 个信号。边的权重由 AijA_{ij}Aij 决定,表示第 jjj 个信号对第 iii 个原子的依赖程度。
最后,通过一个低复杂度的二分图谱聚类算法对这个图进行分割,从而同时对原子和信号进行聚类。由于字典原子的数量 MMM 远小于信号数量 LLL(即 M≪LM \ll LM≪L),整个算法的复杂度被降低到关于 LLL 的线性级别。
目标函数与优化过程
论文本身并没有像SSC或LRR那样定义一个单一的、端到端的全局目标函数。它的流程是分阶段的,每个阶段有其独立的优化目标:
-
字典学习阶段 (Dictionary Learning):
- 目标: 学习一个能有效稀疏表示所有信号的字典 DDD。
- 优化问题: 采用K-SVD算法,优化以下目标:
{D∗,C∗}=argminD,C∥Y−DC∥F2s.t.∀i,∥ci∥0≤T0 \{D^*, C^*\} = \arg\min_{D, C} \|Y - DC\|_F^2 \quad \text{s.t.} \quad \forall i, \|c_i\|_0 \leq T_0 {D∗,C∗}=argD,Cmin∥Y−DC∥F2s.t.∀i,∥ci∥0≤T0
其中,Y∈RN×LY \in \mathbb{R}^{N \times L}Y∈RN×L 是信号矩阵,C∈RM×LC \in \mathbb{R}^{M \times L}C∈RM×L 是稀疏系数矩阵,cic_ici 是其第 iii 列,T0T_0T0 是稀疏度约束。这是一个交替优化问题,先固定 DDD 优化 CCC(稀疏编码),再固定 CCC 优化 DDD(字典更新)。
-
稀疏编码阶段 (Sparse Coding):
- 目标: 为每个信号 yiy_iyi 找到其在字典 DDD 下的稀疏表示 cic_ici。
- 优化问题: 通常采用OMP(Orthogonal Matching Pursuit)算法来近似求解以下 l0l_0l0 范数最小化问题:
c^i=argminc∥c∥0s.t.∥yi−Dc∥2≤ϵ \hat{c}_i = \arg\min_{c} \|c\|_0 \quad \text{s.t.} \quad \|y_i - Dc\|_2 \leq \epsilon c^i=argcmin∥c∥0s.t.∥yi−Dc∥2≤ϵ
或者其等价形式:
c^i=argminc∥yi−Dc∥2s.t.∥c∥0≤T0 \hat{c}_i = \arg\min_{c} \|y_i - Dc\|_2 \quad \text{s.t.} \quad \|c\|_0 \leq T_0 c^i=argcmin∥yi−Dc∥2s.t.∥c∥0≤T0
OMP通过贪心策略迭代地选择原子,是一个高效的近似求解器。
-
二分图聚类阶段 (Bipartite Graph Clustering):
- 目标: 最小化二分图的归一化割(Normalized Cut),以获得最优的图分割。
- 优化问题: 对于一个图划分为两个子集 V1V_1V1 和 V2V_2V2,归一化割定义为:
Ncut(V1,V2)=cut(V1,V2)weight(V1)+cut(V1,V2)weight(V2) \text{Ncut}(V_1, V_2) = \frac{\text{cut}(V_1, V_2)}{\text{weight}(V_1)} + \frac{\text{cut}(V_1, V_2)}{\text{weight}(V_2)} Ncut(V1,V2)=weight(V1)cut(V1,V2)+weight(V2)cut(V1,V2)
其中,cut(V1,V2)=∑i∈V1,j∈V2Wij\text{cut}(V_1, V_2) = \sum_{i \in V_1, j \in V_2} W_{ij}cut(V1,V2)=∑i∈V1,j∈V2Wij 是连接两个子集的边的权重和,weight(V)=∑i∈V∑kWik\text{weight}(V) = \sum_{i \in V} \sum_{k} W_{ik}weight(V)=∑i∈V∑kWik 是子集内部所有边的权重和。 - 优化过程: 直接最小化Ncut是NP难问题。论文采用谱聚类的近似解法。具体来说,它利用了二分图拉普拉斯矩阵的特殊结构,将问题转化为对矩阵 A=D1−1/2AD2−1/2A = D_1^{-1/2} A D_2^{-1/2}A=D1−1/2AD2−1/2 进行奇异值分解(SVD),其中 D1D_1D1 和 D2D_2D2 是度矩阵。通过求解SVD,得到用于聚类的低维嵌入,最后用K-means算法完成最终的聚类。这个SVD的复杂度是 O(M2L)O(M^2L)O(M2L),由于 M≪LM \ll LM≪L,整体复杂度是线性的。
主要贡献点
- 提出二分图建模新范式: 首次将稀疏表示系数矩阵 CCC 映射为一个连接“原子”和“信号”的二分图,利用图分割来实现子空间聚类。这与传统方法(如SSC、LRR)直接在信号间构建图有本质不同。
- 实现线性时间复杂度: 通过固定原子数量 MMM 并利用高效的二分图谱聚类算法,将整体计算复杂度从多项式级别降低到关于信号数量 LLL 的线性级别 O(L)O(L)O(L),使其能够处理超大规模数据集(如百万级样本)。
- 理论分析: 证明了在理想条件下(信号来自独立子空间,字典正确),即使使用冗余字典,OMP算法也能恢复出正确的稀疏支撑集,从而保证二分图聚类能得到正确的聚类结果。
- 卓越的性能表现: 在人脸聚类和视频时序分割等多个任务上,其聚类精度与最先进的方法(SSC, LRR)相当,但计算速度有数量级的提升。
算法实现过程详解 (Algorithm 1: Subspace Biclustering, SBC)
算法的完整流程如下:
-
输入: 数据矩阵 Y∈RN×LY \in \mathbb{R}^{N \times L}Y∈RN×L, 聚类数 KKK, 字典原子数 MMM。
-
字典学习 (Step 1):
- 使用 K-SVD 算法 从数据 YYY 中学习一个字典 D∈RN×MD \in \mathbb{R}^{N \times M}D∈RN×M。K-SVD是一个迭代算法,交替进行稀疏编码和字典更新,直到收敛。
-
稀疏编码 (Step 2):
- 使用 OMP (Orthogonal Matching Pursuit) 算法,对数据矩阵 YYY 中的每一个信号 yiy_iyi (i=1,2,...,Li=1,2,...,Li=1,2,...,L) 在字典 DDD 下进行稀疏编码。
- 得到稀疏系数矩阵 C∈RM×LC \in \mathbb{R}^{M \times L}C∈RM×L,其中每一列 cic_ici 对应一个信号的稀疏表示。
-
二分图聚类 (Step 3):
- a. 构建亲和矩阵: 计算 A=∣C∣A = |C|A=∣C∣,即取稀疏系数矩阵 CCC 中每个元素的绝对值。AAA 将作为二分图的“原子-信号”关联矩阵。
- b. 计算归一化矩阵的SVD: 构造矩阵 A~=D1−1/2AD2−1/2\tilde{A} = D_1^{-1/2} A D_2^{-1/2}A~=D1−1/2AD2−1/2。其中,D1∈RM×MD_1 \in \mathbb{R}^{M \times M}D1∈RM×M 是一个对角矩阵,其第 iii 个对角元素为 D1(i,i)=∑j=1LA(i,j)D_1(i,i) = \sum_{j=1}^{L} A(i,j)D1(i,i)=∑j=1LA(i,j),即第 iii 个原子连接的所有信号的权重和。D2∈RL×LD_2 \in \mathbb{R}^{L \times L}D2∈RL×L 也是一个对角矩阵,其第 jjj 个对角元素为 D2(j,j)=∑i=1MA(i,j)D_2(j,j) = \sum_{i=1}^{M} A(i,j)D2(j,j)=∑i=1MA(i,j),即第 jjj 个信号连接的所有原子的权重和。
- 对 A~\tilde{A}A~ 进行奇异值分解(SVD): A~=UΣVT\tilde{A} = U \Sigma V^TA~=UΣVT。
- c. 构建嵌入矩阵 ZZZ: 取 UUU 和 VVV 的第2列到第K列(对应第二到第K大的奇异值),构成矩阵:
Z=[D1−1/2U[:,2:K]D2−1/2V[:,2:K]] Z = \begin{bmatrix} D_1^{-1/2} U_{[:, 2:K]} \\ D_2^{-1/2} V_{[:, 2:K]} \end{bmatrix} Z=[D1−1/2U[:,2:K]D2−1/2V[:,2:K]]
矩阵 ZZZ 的维度是 (M+L)×(K−1)(M+L) \times (K-1)(M+L)×(K−1)。它的前 MMM 行对应 MMM 个原子的嵌入,后 LLL 行对应 LLL 个信号的嵌入。 - d. K-means聚类: 对矩阵 ZZZ 的所有 (M+L)(M+L)(M+L) 行(即所有原子和信号的嵌入向量)应用 K-means 算法,聚成 KKK 类。
-
输出: 从K-means的结果中,提取后 LLL 行(即信号部分)的聚类标签 k^(yj),j=1..L\hat{k}(y_j), j=1..Lk^(yj),j=1..L,作为最终的子空间聚类结果。
通过这个流程,算法巧妙地利用字典作为“中介”,将大规模信号的聚类问题转化为小规模原子与信号的联合聚类问题,从而实现了线性时间复杂度。