NIPS-2013《Distributed PCA and $k$-Means Clustering》
推荐深蓝学院的《深度神经网络加速:cuDNN 与 TensorRT》,课程面向就业,细致讲解CUDA运算的理论支撑与实践,学完可以系统化掌握CUDA基础编程知识以及TensorRT实战,并且能够利用GPU开发高性能、高并发的软件系统,感兴趣可以直接看看链接:
深蓝学院《深度神经网络加速:cuDNN 与 TensorRT》
核心思想
该论文的核心思想是将主成分分析(PCA)与分布式 k k k-均值聚类相结合,提出一种分布式PCA算法,用于处理大规模高维数据的分布式聚类问题。论文解决了分布式环境中高维数据通信成本高的问题,通过以下步骤实现:
- 分布式PCA降维:在每个分布式节点上进行局部PCA,将高维数据投影到低维空间,降低通信成本。
- 全局PCA整合:基于局部PCA的结果,构建全局协方差矩阵,提取全局主成分,进一步投影数据。
- 结合分布式核集(coreset):在降维后的数据上应用分布式核集构造方法,生成数据摘要,从而在不牺牲聚类质量的情况下显著降低通信成本。
- 理论保证:证明降维后的数据在 k k k-均值聚类中的近似解与原始数据的解在误差范围内接近。
该方法的关键创新在于,投影后的数据的 k k k-均值聚类成本与原始数据接近,且通信成本与原始数据的大小和维度无关。这对于分布式数据库、传感器网络等需要处理大规模高维数据的场景尤为重要。
目标函数
论文的目标函数是 k k k-均值聚类的目标函数,定义为最小化数据集 P ⊆ R d P \subseteq \mathbb{R}^d P⊆Rd到 k k k个聚类中心的平方欧几里得距离之和:
cost ( P , x ) = ∑ p ∈ P d ( p , x ) 2 , 其中 d ( p , x ) = min x ∈ x d ( p , x ) , \operatorname{cost}(P, \mathbf{x}) = \sum_{p \in P} d(p, \mathbf{x})^2, \quad \text{其中} \quad d(p, \mathbf{x}) = \min_{x \in \mathbf{x}} d(p, x), cost(P,x)=p∈P∑d(p,x)2,其中d(p,x)=x∈xmind(p,x),
其中 x = { x 1 , x 2 , … , x k } \mathbf{x} = \{x_1, x_2, \dots, x_k\} x={x1,x2,…,xk}是 k k k个聚类中心的集合, d ( p , x ) d(p, x) d(p,x)表示点 p p p与中心 x x x的欧几里得距离。
在分布式设置中,数据分布在 n n n个节点上,每个节点 v i v_i vi拥有局部数据集 P i P_i Pi,全局数据集为 P = ⋃ i = 1 n P i P = \bigcup_{i=1}^n P_i P=⋃i=1nPi。目标是优化全局的 cost ( P , x ) \operatorname{cost}(P, \mathbf{x}) cost(P,x),同时最小化通信成本。
此外,分布式PCA的目标是通过降维保留数据的关键信息,确保投影数据 P ^ \hat{P} P^的 k k k-均值聚类成本满足:
( 1 − ϵ ) cost ( P , x ) ≤ cost ( P ^ , x ) + c 0 ≤ ( 1 + ϵ ) cost ( P , x ) , (1-\epsilon) \operatorname{cost}(P, \mathbf{x}) \leq \operatorname{cost}(\hat{P}, \mathbf{x}) + c_0 \leq (1+\epsilon) \operatorname{cost}(P, \mathbf{x}), (1−ϵ)cost(P,x)≤cost(P^,x)+c0≤(1+ϵ)cost(P,x),
其中 c 0 ≥ 0 c_0 \geq 0 c0≥0是一个常数, ϵ ∈ ( 0 , 1 ] \epsilon \in (0,1] ϵ∈(0,1]是误差参数。这表明投影数据上的聚类解是原始数据的 ( 1 + ϵ ) (1+\epsilon) (1+ϵ)近似解。
目标函数的优化过程
优化过程分为两个主要阶段:分布式PCA和分布式核集构建与聚类。
1. 分布式PCA优化
分布式PCA算法(算法1)通过以下步骤实现降维:
- 局部PCA:
- 在每个节点 v i v_i vi上,对局部数据集 P i P_i Pi进行奇异值分解(SVD): P i = U i D i ( E i ) T P_i = U_i D_i (E_i)^T Pi=UiDi(Ei)T。
- 保留前 t t t个奇异值和对应的奇异向量,得到降维后的局部数据 P i ( t ) = U i D i ( t ) ( E i ) T P_i^{(t)} = U_i D_i^{(t)} (E_i)^T Pi(t)=UiDi(t)(Ei)T,其中 D i ( t ) D_i^{(t)} Di(t)是仅保留前 t t t个奇异值的对角矩阵。
- 每个节点广播 D i ( t ) D_i^{(t)} Di(t)和前 t t t个奇异向量 E i ( t ) E_i^{(t)} Ei(t)。
- 全局PCA:
- 各节点利用接收到的 D i ( t ) D_i^{(t)} Di(t)和 E i ( t ) E_i^{(t)} Ei(t),计算局部协方差矩阵 S i ( t ) = ( P i ( t ) ) T P i ( t ) S_i^{(t)} = (P_i^{(t)})^T P_i^{(t)} Si(t)=(Pi(t))TPi(t)。
- 汇总全局协方差矩阵 S ( t ) = ∑ i = 1 n S i ( t ) S^{(t)} = \sum_{i=1}^n S_i^{(t)} S(t)=∑i=1nSi(t),并对其进行特征值分解: S ( t ) = E Λ E T S^{(t)} = E \Lambda E^T S(t)=EΛET。
- 取前 t t t个特征向量构成矩阵 E ( t ) E^{(t)} E(t),将局部数据 P i ( t ) P_i^{(t)} Pi(t)投影到 E ( t ) E^{(t)} E(t)上,得到最终投影数据 P ^ i = P i ( t ) E ( t ) ( E ( t ) ) T \hat{P}_i = P_i^{(t)} E^{(t)} (E^{(t)})^T P^i=Pi(t)E(t)(E(t))T。
- 全局投影数据为 P ^ T = [ P ^ 1 T , … , P ^ n T ] \hat{P}^T = [\hat{P}_1^T, \dots, \hat{P}_n^T] P^T=[P^1T,…,P^nT]。
优化目标是通过选择适当的投影维度 t t t(满足 d − 1 ≥ t ≥ k + ⌈ 50 k / ϵ 2 ⌉ d-1 \geq t \geq k + \lceil 50k / \epsilon^2 \rceil d−1≥t≥k+⌈50k/ϵ2⌉),确保投影数据 P ^ \hat{P} P^与原始数据 P P P在 k k k-均值聚类成本上的误差控制在 ϵ \epsilon ϵ范围内。
2. 分布式核集与 k k k-均值聚类
- 在投影数据 P ^ \hat{P} P^上应用文献[3]中的分布式核集构造算法,生成一个 ϵ \epsilon ϵ-核集 S S S,其大小与原始数据维度和大小无关。
- 核集 S S S满足:对于任意中心集 x \mathbf{x} x,存在常数 c 0 ≥ 0 c_0 \geq 0 c0≥0,使得
( 1 − ϵ ) cost ( P , x ) ≤ ∑ p ∈ S w ( p ) cost ( p , x ) + c 0 ≤ ( 1 + ϵ ) cost ( P , x ) , (1-\epsilon) \operatorname{cost}(P, \mathbf{x}) \leq \sum_{p \in S} w(p) \operatorname{cost}(p, \mathbf{x}) + c_0 \leq (1+\epsilon) \operatorname{cost}(P, \mathbf{x}), (1−ϵ)cost(P,x)≤p∈S∑w(p)cost(p,x)+c0≤(1+ϵ)cost(P,x),
其中 w : S → R w: S \rightarrow \mathbb{R} w:S→R是核集点的权重。 - 在核集 S S S上运行 k k k-均值聚类算法(如Lloyd算法),得到一个 α \alpha α-近似解,进而通过核集的性质保证对原始数据的 ( 1 + 3 ϵ ) α (1+3\epsilon)\alpha (1+3ϵ)α-近似解。
- 通信成本分析:通信量主要包括局部PCA的广播( O ( m t 2 ) O(m t^2) O(mt2))和核集构造的通信( O ( m n k log ( n k / δ ) ) O(m n k \log (n k / \delta)) O(mnklog(nk/δ))),总通信成本为
O ( m ( k 2 ϵ 2 + 1 ϵ 2 log 1 δ ) + m n k log n k δ ) , O\left(m\left(\frac{k^2}{\epsilon^2} + \frac{1}{\epsilon^2} \log \frac{1}{\delta}\right) + m n k \log \frac{n k}{\delta}\right), O(m(ϵ2k2+ϵ21logδ1)+mnklogδnk),
其中 m m m是通信图的边数, δ \delta δ是失败概率。
主要贡献点
- 提出分布式PCA算法:设计了一种分布式PCA算法,通过局部和全局PCA结合,显著降低高维数据的通信成本。
- 理论保证:通过定理1和定理2,证明了投影数据的 k k k-均值聚类成本与原始数据的成本在 ( 1 ± ϵ ) (1 \pm \epsilon) (1±ϵ)范围内接近,且所需投影维度 t t t与原始维度 d d d无关,仅依赖于聚类数 k k k和误差 ϵ \epsilon ϵ。
- 结合核集降低通信成本:将分布式PCA与核集方法结合,提出了一种通信成本与数据大小和维度无关的分布式 k k k-均值聚类算法。
- 实验验证:在真实数据集上验证了算法的有效性,展示了在大幅降低维度和通信成本的同时,聚类质量仅略有下降。
实验结果
实验在以下数据集上进行:
- Daily and Sports Activities:9210个点,维度5625, k = 10 k=10 k=10。
- MNIST:70,000个点,维度784, k = 10 k=10 k=10。
- Bag of Words (NYTimes):300,000个点,维度102,660, k = 20 k=20 k=20。
实验设置:
- 通信图:随机图(边概率0.3)和网格图(3×3或10×10)。
- 数据分布:通过加权分区将数据分配到节点,权重服从 ∣ N ( 0 , 1 ) ∣ |N(0,1)| ∣N(0,1)∣。
- 方法:对不同投影维度 t t t,在投影数据上构建核集(使用[3]中的COMBINE或分布式核集算法),然后运行Lloyd算法,计算聚类成本与原始数据成本的比率。
结果:
- 图2展示了投影维度降低时 k k k-均值成本(归一化后)与通信成本的关系。
- Daily and Sports Activities:当维度从5625降至40时,聚类成本仅增加不到4%。
- Bag of Words:维度从102,660降至约20时,成本增加幅度较小,通信成本大幅降低。
- 分布式核集算法在与分布式PCA结合时,性能优于COMBINE算法。
- 结论:算法在大幅降低通信成本的同时,保持了高质量的聚类结果,特别是在高维数据上效果显著。
算法实现过程详细解释
以下是对算法1(分布式PCA)的详细实现过程解释,结合数学推导和实现步骤:
1. 输入
- 局部数据集 { P i , 1 ≤ i ≤ n } \{P_i, 1 \leq i \leq n\} {Pi,1≤i≤n},每个 P i ⊆ R d P_i \subseteq \mathbb{R}^d Pi⊆Rd是节点 v i v_i vi上的数据矩阵,行表示数据点。
- 投影维度 t t t,满足 d − 1 ≥ t ≥ k + ⌈ 50 k / ϵ 2 ⌉ d-1 \geq t \geq k + \lceil 50k / \epsilon^2 \rceil d−1≥t≥k+⌈50k/ϵ2⌉。
2. 局部PCA(Round 1)
- SVD分解:
- 每个节点 v i v_i vi对 P i P_i Pi进行SVD: P i = U i D i ( E i ) T P_i = U_i D_i (E_i)^T Pi=UiDi(Ei)T,其中:
- U i U_i Ui是左奇异向量矩阵,列为正交单位向量。
- D i D_i Di是对角矩阵,包含非递增的奇异值 s 1 , … , s d \sqrt{s_1}, \dots, \sqrt{s_d} s1,…,sd。
- E i E_i Ei是右奇异向量矩阵,列为正交单位向量。
- 保留前 t t t个奇异值,构造 D i ( t ) D_i^{(t)} Di(t),其中前 t t t个对角元素为 D i D_i Di的奇异值,其余为0。
- 计算降维后的局部数据: P i ( t ) = U i D i ( t ) ( E i ) T P_i^{(t)} = U_i D_i^{(t)} (E_i)^T Pi(t)=UiDi(t)(Ei)T。
- 提取 E i E_i Ei的前 t t t列,得到 E i ( t ) E_i^{(t)} Ei(t)。
- 每个节点 v i v_i vi对 P i P_i Pi进行SVD: P i = U i D i ( E i ) T P_i = U_i D_i (E_i)^T Pi=UiDi(Ei)T,其中:
- 通信:
- 每个节点广播 D i ( t ) D_i^{(t)} Di(t)和 E i ( t ) E_i^{(t)} Ei(t)到所有其他节点(通过ANNOUNCE操作)。
- 通信成本:每个节点广播 t t t个奇异值和 t × d t \times d t×d矩阵 E i ( t ) E_i^{(t)} Ei(t),总通信量为 O ( m t 2 ) O(m t^2) O(mt2),其中 m m m是通信图边数。
3. 全局PCA(Round 2)
- 计算局部协方差矩阵:
- 每个节点利用收到的 D i ( t ) D_i^{(t)} Di(t)和 E i ( t ) E_i^{(t)} Ei(t),计算 S i ( t ) = ( P i ( t ) ) T P i ( t ) S_i^{(t)} = (P_i^{(t)})^T P_i^{(t)} Si(t)=(Pi(t))TPi(t)。
- 由于 P i ( t ) = U i D i ( t ) ( E i ) T P_i^{(t)} = U_i D_i^{(t)} (E_i)^T Pi(t)=UiDi(t)(Ei)T,且 U i U_i Ui具有正交列,计算简化为:
S i ( t ) = ( P i ( t ) ) T P i ( t ) = ( E i ( t ) D i ( t ) U i T ) ( U i D i ( t ) ( E i ) T ) = E i ( t ) ( D i ( t ) ) 2 ( E i ( t ) ) T 。 S_i^{(t)} = (P_i^{(t)})^T P_i^{(t)} = (E_i^{(t)} D_i^{(t)} U_i^T) (U_i D_i^{(t)} (E_i)^T) = E_i^{(t)} (D_i^{(t)})^2 (E_i^{(t)})^T。 Si(t)=(Pi(t))TPi(t)=(Ei(t)Di(t)UiT)(UiDi(t)(Ei)T)=Ei(t)(Di(t))2(Ei(t))T。
- 汇总全局协方差矩阵:
- 各节点计算全局协方差矩阵: S ( t ) = ∑ i = 1 n S i ( t ) S^{(t)} = \sum_{i=1}^n S_i^{(t)} S(t)=∑i=1nSi(t)。
- 特征值分解:
- 对 S ( t ) S^{(t)} S(t)进行特征值分解: S ( t ) = E Λ E T S^{(t)} = E \Lambda E^T S(t)=EΛET,其中 Λ \Lambda Λ是对角矩阵,包含特征值, E E E是特征向量矩阵。
- 取前 t t t个特征向量,构成 E ( t ) E^{(t)} E(t)。
- 投影:
- 将局部数据 P i ( t ) P_i^{(t)} Pi(t)投影到 E ( t ) E^{(t)} E(t)上: P ^ i = P i ( t ) E ( t ) ( E ( t ) ) T \hat{P}_i = P_i^{(t)} E^{(t)} (E^{(t)})^T P^i=Pi(t)E(t)(E(t))T。
- 全局投影数据为 P ^ T = [ P ^ 1 T , … , P ^ n T ] \hat{P}^T = [\hat{P}_1^T, \dots, \hat{P}_n^T] P^T=[P^1T,…,P^nT]。
4. 输出
- 输出投影后的全局数据集 P ^ \hat{P} P^,维度为 t t t,可用于后续的分布式核集构造和 k k k-均值聚类。
5. 理论保证
- 定理1:对于任意 d × j d \times j d×j正交矩阵 X X X,投影数据满足:
0 ≤ ∥ P X ∥ 2 2 − ∥ P ^ X ∥ 2 2 ≤ ϵ d 2 ( P , L ( X ) ) , 0 ≤ ∥ P X − P ^ X ∥ 2 2 ≤ ϵ d 2 ( P , L ( X ) ) , 0 \leq \|P X\|_2^2 - \|\hat{P} X\|_2^2 \leq \epsilon d^2(P, L(X)), \quad 0 \leq \|P X - \hat{P} X\|_2^2 \leq \epsilon d^2(P, L(X)), 0≤∥PX∥22−∥P^X∥22≤ϵd2(P,L(X)),0≤∥PX−P^X∥22≤ϵd2(P,L(X)),
其中 L ( X ) L(X) L(X)是 X X X列张成的子空间, t ≥ j + ⌈ 4 j / ϵ ⌉ − 1 t \geq j + \lceil 4j / \epsilon \rceil - 1 t≥j+⌈4j/ϵ⌉−1。 - 证明思路:
- 局部PCA误差:由引理1(来自[8])保证, P i P_i Pi到 P i ( t ) P_i^{(t)} Pi(t)的投影误差满足 ∥ P i X ∥ 2 2 − ∥ P i ( t ) X ∥ 2 2 ≤ ϵ d 2 ( P i , L ( X ) ) \|P_i X\|_2^2 - \|P_i^{(t)} X\|_2^2 \leq \epsilon d^2(P_i, L(X)) ∥PiX∥22−∥Pi(t)X∥22≤ϵd2(Pi,L(X))。
- 全局PCA误差:类似地, P ( t ) P^{(t)} P(t)到 P ^ \hat{P} P^的投影误差满足 ∥ P ( t ) X ∥ 2 2 − ∥ P ^ X ∥ 2 2 ≤ ϵ ( 1 + ϵ ) d 2 ( P , L ( X ) ) \|P^{(t)} X\|_2^2 - \|\hat{P} X\|_2^2 \leq \epsilon (1+\epsilon) d^2(P, L(X)) ∥P(t)X∥22−∥P^X∥22≤ϵ(1+ϵ)d2(P,L(X))。
- 综合两步误差,得到定理1的结论。
- 定理2:投影数据 P ^ \hat{P} P^的 k k k-均值成本满足:
( 1 − ϵ ) cost ( P , x ) ≤ cost ( P ^ , x ) + c 0 ≤ ( 1 + ϵ ) cost ( P , x ) , (1-\epsilon) \operatorname{cost}(P, \mathbf{x}) \leq \operatorname{cost}(\hat{P}, \mathbf{x}) + c_0 \leq (1+\epsilon) \operatorname{cost}(P, \mathbf{x}), (1−ϵ)cost(P,x)≤cost(P^,x)+c0≤(1+ϵ)cost(P,x),
其中 t ≥ k + ⌈ 50 k / ϵ 2 ⌉ t \geq k + \lceil 50k / \epsilon^2 \rceil t≥k+⌈50k/ϵ2⌉。这保证了投影数据的聚类解是原始数据的近似解。
6. 后续处理
- 在 P ^ \hat{P} P^上应用分布式核集算法[3],生成大小与维度无关的核集 S S S。
- 在 S S S上运行 k k k-均值算法,得到近似解,通信成本显著降低。
总结
该论文通过分布式PCA和核集的结合,解决了分布式 k k k-均值聚类中的高维数据通信成本问题。算法通过局部和全局PCA降维,结合核集构造,实现了与数据大小和维度无关的通信成本,同时理论上保证了聚类质量。实验结果验证了算法在真实数据集上的有效性,特别是在高维数据场景下,通信成本降低显著,聚类成本增加极小。