2. 核心思想
论文提出了一种加速kkk-means聚类算法的新方法,通过结合Elkan算法[2]和Hamerly算法[3]的优点,使用自适应的距离下界数量(bbb,其中1<b<k1 < b < k1<b<k)来减少不必要的距离计算,同时保持与标准kkk-means算法完全相同的输出结果。核心思想是利用三角不等式和动态调整的距离界,在运行时根据数据特性自适应地选择和调整下界数量bbb,以在中等维度数据(约20-120维)上实现比Elkan和Hamerly算法更快的性能。这种方法在保持计算效率的同时,降低了维护多个距离界的开销,特别适用于kkk值较大(k≥50k \geq 50k≥50)的场景。
3. 目标函数
kkk-means聚类的目标函数是最小化畸变(distortion),定义为每个数据点到其所属聚类中心的平方距离之和。数学上,目标函数为:
J(x,c,a):=∑i=1n∑j=1ka(i,j)∥x(i)−c(j)∥2 J(x, c, a) := \sum_{i=1}^n \sum_{j=1}^k a(i, j) \|x(i) - c(j)\|^2 J(x,c,a):=i=1∑nj=1∑ka(i,j)∥x(i)−c(j)∥2
其中:
- x(i)x(i)x(i) 表示第iii个数据点,i=1,2,…,ni=1,2,\dots,ni=1,2,…,n;
- c(j)c(j)c(j) 表示第jjj个聚类中心,j=1,2,…,kj=1,2,\dots,kj=1,2,…,k;
- a(i,j)a(i, j)a(i,j) 是二元指示变量,若数据点x(i)x(i)x(i)被分配到中心c(j)c(j)c(j),则a(i,j)=1a(i, j) = 1a(i,j)=1,否则a(i,j)=0a(i, j) = 0a(i,j)=0;
- ∥x(i)−c(j)∥2\|x(i) - c(j)\|^2∥x(i)−c(j)∥2 表示数据点x(i)x(i)x(i)到中心c(j)c(j)c(j)的欧几里得距离的平方。
目标是通过迭代优化a(i,j)a(i, j)a(i,j)(分配点到最近的中心)和c(j)c(j)c(j)(更新中心为分配点的质心),最小化J(x,c,a)J(x, c, a)J(x,c,a)。
4. 目标函数的优化过程
论文提出的算法基于标准kkk-means的Lloyd算法[4],通过引入距离上界和下界来加速优化过程。优化过程如下:
-
初始化:
- 给定数据集xxx(包含nnn个数据点)、初始聚类中心ccc(kkk个中心)以及要维护的下界数量bbb(1<b<k1 < b < k1<b<k)。
- 为每个数据点x(i)x(i)x(i)维护以下信息:
- u(i)u(i)u(i):数据点x(i)x(i)x(i)到其分配中心yyy的距离上界;
- l(i,z)l(i, z)l(i,z):数据点x(i)x(i)x(i)到其第(z+1)(z+1)(z+1)最近中心的距离下界,z=1,2,…,bz=1,2,\dots,bz=1,2,…,b;
- a(i,z)a(i, z)a(i,z):对应l(i,z)l(i, z)l(i,z)的中心索引;
- t(j)t(j)t(j):中心c(j)c(j)c(j)在上一次迭代中移动的距离。
-
迭代过程(Algorithm 1):
- 分配阶段:对每个数据点x(i)x(i)x(i):
- 检查是否可以通过距离界避免距离计算:如果u(i)≤l(i,z)u(i) \leq l(i, z)u(i)≤l(i,z),说明x(i)x(i)x(i)到其分配中心的距离上界小于到第(z+1)(z+1)(z+1)最近中心的下界,则无需计算到其他中心的距离(Algorithm 1, 行5-10)。
- 如果满足上述条件,仅对前z+1z+1z+1个最近中心重新排序(调用Algorithm 2: SORT-CENTERS),然后跳到下一个数据点。
- 否则,计算x(i)x(i)x(i)到所有中心的距离并重新排序(Algorithm 2)。
- 更新阶段:
- 将中心移动到其分配点的质心,更新t(j)t(j)t(j)(Algorithm 1, 行11)。
- 更新距离界(调用Algorithm 3: UPDATE-BOUNDS)。
- 收敛判断:重复上述步骤直到中心不再移动或达到收敛条件。
- 分配阶段:对每个数据点x(i)x(i)x(i):
-
距离界更新(Algorithm 3):
- 计算所有中心移动距离的最大值m=max1≤j≤kt(j)m = \max_{1 \leq j \leq k} t(j)m=max1≤j≤kt(j)。
- 对每个数据点x(i)x(i)x(i):
- 更新上界:u(i)←u(i)+t(y)u(i) \leftarrow u(i) + t(y)u(i)←u(i)+t(y),其中yyy是x(i)x(i)x(i)的分配中心。
- 更新最外层下界:l(i,b)←l(i,b)−ml(i, b) \leftarrow l(i, b) - ml(i,b)←l(i,b)−m,考虑未跟踪的k−b−1k-b-1k−b−1个最远中心的移动。
- 更新其他下界:l(i,z)←l(i,z)−t(a(i,z))l(i, z) \leftarrow l(i, z) - t(a(i, z))l(i,z)←l(i,z)−t(a(i,z)),z=1,2,…,b−1z=1,2,\dots,b-1z=1,2,…,b−1。
- 保持下界按升序排列:如果l(i,z)>l(i,z+1)l(i, z) > l(i, z+1)l(i,z)>l(i,z+1),则强制l(i,z)=l(i,z+1)l(i, z) = l(i, z+1)l(i,z)=l(i,z+1)。
-
自适应调整bbb:
- 初始设置b=k8b = \frac{k}{8}b=8k。
- 每轮迭代后,统计有效界(即允许跳过距离计算的界)的数量,调整bbb为该数量(但不低于k8\frac{k}{8}8k),以减少后续维护开销。
5. 主要的贡献点
- 提出混合算法:结合Elkan算法(维护kkk个下界)和Hamerly算法(维护1个下界)的优点,通过维护1<b<k1 < b < k1<b<k个下界,平衡了计算效率和维护开销。
- 自适应调整bbb:提出动态调整下界数量bbb的策略,根据运行时数据特性优化性能,无需预先知道最佳bbb值。
- 中等维度性能优越:实验表明,该算法在中等维度(约20-120维)和较大kkk值(k≥50k \geq 50k≥50)下优于Elkan和Hamerly算法。
- 理论与实践结合:通过分析下界的使用效率(图2),提供了一种实用的自适应调参方法,增强了算法的通用性。
6. 实验结果
实验在4核3GHz Xeon机器(8GB内存)上进行,测试了k=25,50,100,200,400k=25, 50, 100, 200, 400k=25,50,100,200,400,使用均匀随机数据和真实数据集(mnist50, mnist784, kddeup98, birchDS1, covtype)。
-
均匀随机数据:
- 图1显示了算法运行时间与维度的关系(对数坐标轴),k=50k=50k=50和k=200k=200k=200:
- 低维度(d<20d < 20d<20):Hamerly算法最佳。
- 高维度(d≥120d \geq 120d≥120):Elkan算法最佳。
- 中等维度(20≤d≤12020 \leq d \leq 12020≤d≤120,k=200k=200k=200;30≤d≤13030 \leq d \leq 13030≤d≤130,k=50k=50k=50):提出算法优于两者。
- 均匀随机数据是kkk-means的“最坏情况”,因为缺乏聚类结构,距离界效果较弱,但仍提供一致的性能比较基准。
- 图1显示了算法运行时间与维度的关系(对数坐标轴),k=50k=50k=50和k=200k=200k=200:
-
真实数据集(k=200k=200k=200,图3):
- 在mnist50、kddeup98、covtype数据集上,提出算法优于Elkan和Hamerly算法。
- 在低维birchDS1(d=2d=2d=2)上,Hamerly算法胜出;在高维mnist784(d=784d=784d=784)上,Elkan算法胜出,符合维度对算法性能的影响预期。
-
下界效率(图2):
- 展示了各下界避免距离计算的效率,随迭代进行,较少数量的下界(如第一、第二个)足以处理大多数点,验证了自适应调整bbb的合理性。
7. 算法的实现过程
以下详细解释算法的实现过程,结合伪代码(Algorithm 1, 2, 3):
数据结构
- 输入:
- 数据点x(i)x(i)x(i),i=1,2,…,ni=1,2,\dots,ni=1,2,…,n;
- 初始中心c(j)c(j)c(j),j=1,2,…,kj=1,2,\dots,kj=1,2,…,k;
- 下界数量bbb,1<b<k1 < b < k1<b<k。
- 维护的结构:
- u(i)u(i)u(i):x(i)x(i)x(i)到其分配中心yyy的距离上界。
- l(i,z)l(i, z)l(i,z):x(i)x(i)x(i)到第(z+1)(z+1)(z+1)最近中心的距离下界,z=1,2,…,bz=1,2,\dots,bz=1,2,…,b。
- a(i,z)a(i, z)a(i,z):对应l(i,z)l(i, z)l(i,z)的中心索引。
- t(j)t(j)t(j):中心c(j)c(j)c(j)在上次迭代的移动距离。
算法流程
-
初始化(Algorithm 1, 行1-2):
- 对每个数据点x(i)x(i)x(i),调用SORT-CENTERS(Algorithm 2):
- 计算x(i)x(i)x(i)到所有中心的距离,按升序排序。
- 设置分配中心y=r(1)y = r(1)y=r(1),上界u(i)=∥x(i)−y∥u(i) = \|x(i) - y\|u(i)=∥x(i)−y∥。
- 设置前bbb个下界l(i,z)=∥x(i)−a(i,z)∥l(i, z) = \|x(i) - a(i, z)\|l(i,z)=∥x(i)−a(i,z)∥,其中a(i,z)=r(z+1)a(i, z) = r(z+1)a(i,z)=r(z+1)。
- 对每个数据点x(i)x(i)x(i),调用SORT-CENTERS(Algorithm 2):
-
主循环(Algorithm 1, 行3-12):
- 分配点(行4-10):
- 对每个点x(i)x(i)x(i),检查bbb个下界:
- 如果u(i)≤l(i,z)u(i) \leq l(i, z)u(i)≤l(i,z),说明x(i)x(i)x(i)到yyy的距离上界小于到第(z+1)(z+1)(z+1)最近中心的下界,无需计算到更远中心的距离。
- 构造子集r={y,a(i,1),…,a(i,z)}r = \{y, a(i, 1), \dots, a(i, z)\}r={y,a(i,1),…,a(i,z)},调用SORT-CENTERS(Algorithm 2)对前z+1z+1z+1个中心重新排序,更新yyy、u(i)u(i)u(i)和l(i,z)l(i, z)l(i,z),然后跳到下一个点。
- 如果所有下界都无效,调用SORT-CENTERS对所有中心排序。
- 对每个点x(i)x(i)x(i),检查bbb个下界:
- 更新中心(行11):
- 计算每个中心的分配点集,更新中心为质心,记录移动距离t(j)t(j)t(j)。
- 更新距离界(调用Algorithm 3):
- 计算最大中心移动距离m=maxt(j)m = \max t(j)m=maxt(j)。
- 更新上界:u(i)←u(i)+t(y)u(i) \leftarrow u(i) + t(y)u(i)←u(i)+t(y)。
- 更新最外层下界:l(i,b)←l(i,b)−ml(i, b) \leftarrow l(i, b) - ml(i,b)←l(i,b)−m。
- 更新其他下界:l(i,z)←l(i,z)−t(a(i,z))l(i, z) \leftarrow l(i, z) - t(a(i, z))l(i,z)←l(i,z)−t(a(i,z)),并强制下界升序。
- 自适应调整bbb:
- 统计有效界数量(允许跳过距离计算的界),调整bbb为该数量(但不低于k8\frac{k}{8}8k)。
- 分配点(行4-10):
-
终止条件:
- 当中心不再移动或达到最大迭代次数时,算法终止。
自适应调参
- 初始b=k8b = \frac{k}{8}b=8k,基于训练数据(均匀随机分布)在k8≤b≤k4\frac{k}{8} \leq b \leq \frac{k}{4}8k≤b≤4k范围内表现良好。
- 每轮迭代后,检查各下界的利用率(图2),将bbb调整为最大有效界数量,减少维护开销。
8. 目标函数的局限性及改进建议
局限性
- 对维度敏感:
- 算法在中等维度(20-120维)表现最佳,但在低维(d<20d < 20d<20)和高维(d≥120d \geq 120d≥120)数据上分别逊于Hamerly和Elkan算法,缺乏全维适配性。
- 均匀数据性能:
- 在均匀随机数据(无明显聚类结构)上,距离界的效率较低,限制了加速效果。
- 调参依赖:
- 虽然bbb是自适应调整的,但初始值k8\frac{k}{8}8k和范围k8≤b≤k4\frac{k}{8} \leq b \leq \frac{k}{4}8k≤b≤4k基于经验,可能不适用于所有数据集。
- 计算开销:
- 维护bbb个下界和排序操作仍引入额外开销,尤其当bbb接近kkk时,性能趋向Elkan算法。
改进建议
- 动态维度适应:
- 引入维度感知机制,自动根据数据维度选择算法分支(例如,d<20d < 20d<20用Hamerly,20≤d<12020 \leq d < 12020≤d<120用提出算法,d≥120d \geq 120d≥120用Elkan),实现全维优化。
- 增强初始调参:
- 在初始化时,通过快速采样分析数据集的聚类结构(如方差或点间距离分布),更精确地设置初始bbb值,而非固定的k8\frac{k}{8}8k。
- 改进下界更新:
- 优化最外层下界更新策略(当前使用mmm近似),通过更精确地估计未跟踪中心的移动距离(如基于中心分布的统计模型),提高下界的紧致性。
- 并行化:
- 利用多核处理器并行化距离计算和界更新,特别是在高维数据上,减少计算瓶颈。
- 结合其他加速技术:
- 集成kkk-means++[1]的初始化方法,改善初始中心的质量,减少迭代次数,从而进一步降低总运行时间。
总结
该论文提出了一种高效的kkk-means加速算法,通过自适应调整距离下界数量bbb,在中等维度数据上实现了比Elkan和Hamerly算法更好的性能。其核心创新在于结合两者的优点并动态调参,实验结果验证了其在k≥50k \geq 50k≥50和中等维度(20-120维)场景下的优越性。算法实现通过维护上界、下界和中心移动距离,利用三角不等式减少距离计算,同时自适应调整bbb以优化开销。然而,算法对维度的敏感性和调参依赖性限制了其通用性,未来的改进可聚焦于动态维度适应和更精确的界更新策略。