代码:https://github.com/461054993/SDCN
摘要
聚类是数据分析中的一项基本任务。 最近,主要从深度学习方法中获得灵感的深度聚类实现了最先进的性能,并引起了相当大的关注。 当前的深度聚类方法通常借助深度学习强大的表示能力(例如自动编码器)来提高聚类结果,这表明学习有效的聚类表示是至关重要的要求。 深度聚类方法的优势在于从数据本身提取有用的表示,而不是数据的结构,而数据结构在表示学习中很少受到关注。 受图卷积网络(GCN)在图结构编码方面取得巨大成功的启发,我们提出了一种结构深度聚类网络(SDCN),将结构信息整合到深度聚类中。 具体来说,我们设计了一个传递算子将自动编码器学习到的表示转移到相应的 GCN 层,并设计了一个双重自监督机制来统一这两种不同的深度神经架构并指导整个模型的更新。 这样,数据从低阶到高阶的多种结构就可以自然地与自动编码器学习到的多种表示相结合。 此外,我们从理论上分析了传递算子,即通过传递算子,GCN 将自动编码器特定的表示改进为高阶图正则化约束,并且自动编码器有助于缓解 GCN 中的过度平滑问题。 通过全面的实验,我们证明我们提出的模型能够始终比最先进的技术表现得更好。
Ⅰintro
聚类是最基本的数据分析任务之一,是将相似的样本归为同一类别[5, 23]。 在过去的几十年里,一大批聚类算法已经被开发出来并成功应用于各种实际应用,例如图像聚类[31]和文本聚类[1]。 最近,深度学习的突破导致了人工智能和机器学习的范式转变,在包括聚类在内的许多重要任务上取得了巨大成功。 因此,深度聚类引起了人们的广泛关注[6]。 深度聚类的基本思想是将聚类的目标融入到深度学习强大的表示能力中。 因此,学习有效的数据表示是深度聚类的关键先决条件。 例如,[30]使用K-means中自动编码器学习到的表示; [4, 29] 利用聚类损失来帮助自动编码器学习具有高聚类内聚性的数据表示 [24],[9] 使用变分自动编码器来学习更好的聚类数据表示。 迄今为止,深度聚类方法已经取得了最先进的性能,并成为事实上的聚类方法。【自编码器、VAE】
尽管深度聚类取得了成功,但他们通常关注数据本身的特征,因此在学习表示时很少考虑数据的结构。 值得注意的是,考虑数据样本之间关系的重要性已被数据表示领域的先前文献和结果充分认识到。 这种结构揭示了样本之间潜在的相似性,因此为学习表示提供了有价值的指导。 一种典型的方法是谱聚类[23],它将样本视为加权图中的节点,利用数据的图结构进行聚类。 最近,新兴的图卷积网络(GCN)[11]也对图结构和节点属性进行编码以用于节点表示。总之,结构信息在数据表示学习中起着至关重要的作用。 然而,它很少被应用于深度聚类。【数据的结构信息、谱聚类】
在现实中,将结构信息整合到深度聚类中通常需要解决以下两个问题。(1) 在深度聚类中应该考虑哪些结构信息?众所周知,结构信息揭示了数据样本之间的潜在相似性。然而,数据的结构通常非常复杂,也就是说,不仅存在样本之间的直接关系(也称为一阶结构),还存在高阶结构。高阶结构从样本之间的多跳关系施加相似性约束。以二阶结构为例,这意味着对于两个没有直接关系的数据样本,如果它们有许多共同的邻居样本,它们仍然应该有相似的表示。当数据的结构是稀疏的,这在实践中总是成立的,高阶结构尤其重要。因此,仅在深度聚类中利用低阶结构是远远不够的,如何有效地考虑高阶结构是第一个问题;(2) 结构信息与深度聚类之间的关系是什么?深度聚类的基本组成部分是深度神经网络(DNN),例如自编码器。自编码器的网络架构非常复杂,由多层组成。每一层捕获不同的潜在信息。数据之间也存在各种类型的结构信息。因此,不同结构与自编码器的不同层之间的关系是什么?人们可以用结构以某种方式规范自编码器学习到的表示,然而,另一方面,人们也可以直接从结构本身学习表示。如何优雅地将数据的结构与自编码器的结构结合起来是另一个问题。【图可以提供数据间一阶关系之外的高阶关系,但要如何利用;不同结构信息与不同层的表示的关系】
为了捕获结构信息,我们首先构建一个 K 最近邻(KNN)图,它能够揭示数据的底层结构[16, 17]。 为了从 KNN 图捕获低阶和高阶结构信息,我们提出了一个由多个图卷积层组成的 GCN 模块,以学习 GCN 特定的表示。
为了将结构信息引入深度聚类,我们引入了一个自动编码器模块来从原始数据中学习自动编码器特定的表示,并提出一个传递算子将其与 GCN 特定的表示相结合。 我们从理论上证明了传递算子能够更好地协助自动编码器和 GCN 之间的集成。 特别是,我们证明 GCN 为自动编码器学习的表示提供了近似二阶图正则化,并且自动编码器学习的表示可以缓解 GCN 中的过度平滑问题。
最后,由于自动编码器和 GCN 模块都会输出表示,因此我们提出了一个双自监督模块来统一指导这两个模块。 通过双自监督模块,整个模型可以以端到端的方式进行聚类任务的训练。
主要贡献如下:
(1)我们提出了一种新颖的结构深度聚类网络(SDCN)用于深度聚类。所提出的SDCN有效地结合了自编码器和图卷积网络(GCN)的优势,通过一种新颖的传递操作符和双重自监督模块。据我们所知,这是第一次明确地将结构信息应用于深度聚类中。
(2)我们对我们提出的 SDCN 进行了理论分析,并证明 GCN 为 DNN 表示提供了近似二阶图正则化,并且在 SDCN 中学习的数据表示相当于具有不同阶结构信息的表示之和。 根据我们的理论分析,SDCN中GCN模块的过度平滑问题将得到有效缓解。
(3)对六个真实世界数据集的大量实验证明了 SDCN 与最先进技术相比的优越性。 具体而言,SDCN 比最佳基线方法取得了显着改进(NMI 提高了 17%,ARI 提高了 28%)。
Ⅱ 相关工作
深度聚类方法旨在将深度表示学习与聚类目标结合起来。例如,[30]提出了深度聚类网络,使用K均值的损失函数帮助自编码器学习一个“对K均值友好”的数据表示。深度嵌入聚类[29]设计了一个KL散度损失,使自编码器学习到的表示更接近聚类中心,从而提高聚类的凝聚力。改进的深度嵌入聚类[4]在DEC的目标中增加了一个重构损失作为约束,帮助自编码器学习更好的数据表示。变分深度嵌入[9]能够通过使用深度变分自编码器,联合建模数据生成过程和聚类,以实现更好的聚类结果。[8]提出了深度子空间聚类网络,它在编码器和解码器之间使用了一个新颖的自表达层。它能够模仿子空间聚类中的“自表达性”属性,从而获得更具表现力的表示。DeepCluster[3]将聚类结果视为伪标签,使其可以应用于训练大型数据集的深度神经网络。然而,所有这些方法只关注从样本本身学习数据的表示。在表示学习中另一个重要的信息——数据的结构,在很大程度上被这些方法忽略了。
为了应对数据背后的结构信息,一些基于图卷积网络(GCN)的聚类方法已被广泛应用。例如,[10]提出了图自编码器和图变分自编码器,它们使用GCN作为编码器将图结构整合到节点特征中,以学习节点嵌入。深度注意力嵌入图聚类[27]使用注意力网络捕获邻近节点的重要性,并采用DEC中的KL散度损失来监督图聚类的训练过。上述所有基于GCN的聚类方法都依赖于重构邻接矩阵来更新模型,这些方法只能从图结构中学习数据表示,忽略了数据本身的特性。然而,这类方法的性能可能受到社区结构重叠的限制。
Ⅲ 模型
图1:我们提出的 SDCN 框架。 X, X^ 分别是输入数据和重构数据。 H(l)和Z(l)分别是DNN和GCN模块中第 l 层的表示。 不同的颜色代表不同的表示 H(l),由 DNN 模块学习。 蓝色实线表示通过分布Q计算目标分布P,两条红色虚线表示双重自监督机制。 目标分布P同时指导DNN模块和GCN模块的更新。
在本节中,我们介绍我们提出的结构深度聚类网络,其总体框架如图1所示。我们首先基于原始数据构建KNN图。 然后我们将原始数据和 KNN 图分别输入到自动编码器和 GCN 中。 我们将自动编码器的每一层与 GCN 的相应层连接起来,这样我们就可以通过传递算子将自动编码器特定的表示集成到结构感知的表示中。 同时,我们提出了一种双重自监督机制来监督自动编码器和 GCN 的训练进度。 我们将在下面详细描述我们提出的模型。
3.1 KNN图
假设我们有原始数据 X ∈ RN×d,其中每行 xi 代表第 i 个样本,N 是样本数,d 是维度。 对于每个样本,我们首先找到其前 K 个相似邻居,并设置边将其与其邻居连接。 计算样本的相似度矩阵 S ∈ RN×N 的方法有很多种。 这里我们列出了构建 KNN 图时使用的两种流行方法:
(1)heat-kernal。样本i和样本j的相似性计算:
其中t是热传导方程中的时间参数。 对于连续数据,例如图像。
(2)Dot-product。样本 i 和 j 之间的相似度计算如下:
对于离散数据,例如词袋,我们使用点积相似度,以便相似度仅与相同单词的数量相关。
计算出相似度矩阵S后,选择每个样本的前K个相似点作为其邻居,构建无向K近邻图。 这样,我们就可以从非图数据中得到邻接矩阵A。
3.2 DNN模型
正如我们之前提到的,学习有效的数据表示对于深度聚类非常重要。 对于不同类型的数据,有几种替代的无监督方法来学习表示。 例如,去噪自动编码器[26]、卷积自动编码器[21]、LSTM编码器-解码器[20]和对抗性自动编码器[19]。 它们是基本自动编码器的变体 [7]。 在本文中,为了通用性,我们采用基本的自动编码器来学习原始数据的表示,以适应不同类型的数据特征。 我们假设自动编码器中有 L 层,l 表示层数。 具体来说,编码器部分第 l 层学习到的表示 H(l)可以如下获得:
ϕ是全连接层的激活函数,例如 Relu [22] 或 Sigmoid 函数,W(l) e 和 b(l) e 分别是编码器中第 l 层的权重矩阵和偏差。 此外,我们将H(0)表示为原始数据X。
编码器部分后面是解码器部分,即通过几个全连接层和方程重建输入数据:
W(l)d 和 b(l)d 分别是解码器中第 l 层的权重矩阵和偏差。
解码器部分的输出是原始数据^X = H(L)的重构,从而得到以下目标函数:
3.3 GCN模型
自编码器能够从数据本身学习有用的表示,例如 H(1), H(2), · · · , H(L),同时忽略样本之间的关系。在本节中,我们将介绍如何使用GCN模块来传播由DNN模块生成的这些表示。一旦DNN模块学习的所有表示都被整合到GCN中,那么GCN可学习的表示将能够适应两种不同类型的信息,即数据本身和数据之间的关系。特别是,通过权重矩阵W,可以通过以下卷积操作获得由GCN的第 l 层学习到的表示 Z(l):
其中A=A+I,Dii = A的度。表示 Z(l−1) 将通过归一化的邻接矩阵 D(−1/2)AeD(−1/2) 传播,以获得新的表示 Z(l)。考虑到自编码器学习到的表示 H(l−1) 能够重建数据本身并包含不同的有价值信息,我们将两个表示 Z(l−1) 和 H(l−1) 结合起来,以获得一个更完整和强大的表示,如下所示:
ϵ是平衡系数,这里我们统一设置为0.5。 这样我们就将autoencoder和GCN逐层连接起来。
然后用第Z(l-1)作为第l层GCN的输入,来生成表示Z(l):
正如式8,自编码器的特定表示H(l-1)通过归一化的邻接矩阵 D(−1/2)AeD(−1/2) 传播。由于每个 DNN 层学习到的表示不同,为了尽可能保留信息,我们将从每个 DNN 层学到的表示转移到相应的 GCN 层中进行信息传播,如图 1 所示。传递算子在 整个模型。 我们将在3.5节中从理论上分析该传递算子的优势。
第一层的输入是原始数据X:
GCN 模块的最后一层是带有 softmax 函数的多重分类层:
结果zij ∈ Z 表示样本 i 属于聚类中心j 的概率,我们可以将Z 视为概率分布。【GCN层产生一个聚类结果】
3.4 双自监督模块
现在,我们已经将自动编码器与神经网络架构中的 GCN 连接起来。 然而,它们并不是为深度聚类而设计的。 基本上,自动编码器主要用于数据表示学习,属于无监督学习场景,而传统的GCN处于半监督学习场景。 它们都不能直接应用于聚类问题。 在这里,我们提出了一个双重自监督模块,它将自动编码器和 GCN 模块统一在一个统一的框架中,并有效地端到端地训练两个模块以进行聚类。
特别地,对于第 i 个样本和第 j 个聚类,我们使用学生 t 分布 [18] 作为核来测量数据表示 hi 和聚类中心向量 µj 之间的相似度,如下所示:
hi 是 H(L) 的第 i 行,μj 由预训练自动编码器学习到的表示的 K 均值初始化,v 是学生 t 分布的自由度。 qij 可以被认为是将样本 i 分配给簇 j 的概率,即软分配。 我们将 Q = [qij] 视为所有样本分配的分布,并让所有实验的 α=1。
在获得聚类结果分布Q之后,我们的目标是通过学习高置信分配来优化数据表示。具体来说,我们希望使数据表示更接近聚类中心,从而提高聚类的内聚性。因此,我们按照以下方式计算目标分布P:
fj = Σi qij 是软聚类频率。在目标分布 P 中,Q 中的每个分配都被平方并标准化,以便这些分配具有更高的置信度,从而得出以下目标函数:
通过最小化 Q 和 P 分布之间的 KL 散度损失,目标分布 P 可以帮助 DNN 模块学习更好的聚类任务表示,即使数据表示更靠近聚类中心。 这被视为一种自监督机制(1虽然之前的一些工作倾向于将这种机制称为自训练,但我们更喜欢使用“自监督”一词,以与 GCN 训练方法保持一致。),因为目标分布P是由分布Q计算的,P分布依次监督分布Q的更新。
至于训练 GCN 模块,一种可能的方法是将聚类分配视为真实标签。然而,这种策略会带来噪声和微不足道的解决方案,并导致整个模型崩溃。如前所述,GCN 模块还将提供一个聚类分配分布 Z。因此,我们可以使用分布 P 来监督分布 Z,如下所示:
至于训练 GCN 模块,一种可能的方法是将聚类分配视为真实标签。然而,这种策略会带来噪声和微不足道的解决方案,并导致整个模型崩溃。如前所述,GCN 模块还将提供一个聚类分配分布 Z。因此,我们可以使用分布 P 来监督分布 Z,如下所示:目标函数有两个优点:(1)与传统的多分类损失函数相比,KL 散度以更“温和”的方式更新整个模型,以防止数据表示受到严重干扰;(2)GCN 和 DNN 模块在同一优化目标下统一,使得它们的结果在训练过程中趋于一致。由于 DNN 模块和 GCN 模块的目标都是近似目标分布 P,这两个模块之间存在密切的联系,因此我们称之为双重自监督机制。
通过这种机制,SDCN可以直接将两个不同的目标,即聚类目标和分类目标集中在一个损失函数中。 因此,我们提出的 SDCN 的总体损失函数为:
其中α > 0是平衡原始数据的聚类优化和局部结构保存的超参数,β > 0是控制GCN模块对嵌入空间的干扰的系数。
在实践中,训练到最大epoch后,SDCN将得到稳定的结果。 然后我们可以给样本设置标签。 我们选择分布Z中的软分配作为最终的聚类结果。 因为GCN学习到的表示包含两种不同类型的信息。 分配给样本 i 的标签是:zij 的计算公式如10.
【最后的聚类结果是由GCN表示,即Z】
3.5 理论分析
在本节中,我们将分析SDCN如何将结构信息引入自编码器中。 在此之前,我们给出图正则化和二阶图正则化的定义。
定义1.图正则化[2]。 给定一个加权图 G,图正则化的目标是最小化以下方程:
wij 表示节点 i 和节点 j 之间的边的权重,hi 是节点 i 的表示。
根据定义1,我们可以发现图正则化表明,如果节点i和j之间的权重较大,则它们的表示应该更相似。
定义 2. 二阶相似性。 我们假设A是图G的邻接矩阵,ai是A的第i列。 节点 i 和节点 j 之间的二阶相似度为
C是节点i和节点j之间的公共邻居的数量,di是节点i的度。
定义 3. 二阶图正则化。 二阶图正则化的目标是最小化方程:sij 是二阶相似度。
与定义1相比,定义3施加了高阶约束,即如果两个节点有很多共同的邻居,那么它们的表示也应该更加相似。
定理 1。GCN 为 DNN 表示提供近似二阶图正则化。
证明:先略
结论:DNN表示经过GCN层后,如果二阶相似度较大的节点,GCN会强制节点的表示彼此接近,这与二阶图正则化的思想相同
定理2:DCN学习到的表示Z(l)相当于不同阶结构信息的表示之和。
证明:略
结论:略
方程(Eq. 7)中交付算子的优点有两个:一是SDCN学习的数据表示Z(`)包含不同的结构信息;二是它可以减轻GCN中的过平滑现象。由于多层GCN集中于高阶信息,SDCN中的GCN模块是具有不同阶结构信息的表示之和。与文献[12]类似,我们的方法也利用不同阶信息的融合来减轻GCN中的过平滑现象。然而,与[12]将不同阶邻接矩阵视为相同表示不同,我们的SDCN为不同阶邻接矩阵提供了不同的表示。这使得我们的模型能够融合更多信息。
3.6 复杂度分析
在这项工作中,我们将 d 表示为输入数据的维度,自动编码器每层的维度为 d1,d2,...,dL。 编码器第一层权重矩阵的大小为W(1) e ∈ Rd×d1 。 N是输入数据的数量。 自动编码器的时间复杂度为 O(Nd2d2 1 ...d2 L)。 对于GCN模块,由于GCN的运算可以利用稀疏矩阵高效地实现,因此时间复杂度与边数|E|成线性关系。 时间复杂度为O(|E|dd1...dL)。 另外,我们假设聚类任务中有K个类,因此式子11的时间复杂度是对应于[29]的 O(NK + N logN)。 我们模型的总体时间复杂度为 O(Nd2d2 1 ...d2 L +|E|dd1...dL +NK+ N logN),它与样本和边缘的数量线性相关。
四 实验
4.1 数据集
我们提出的 SDCN 在六个数据集上进行评估。 这些数据集的统计数据如表1所示,详细描述如下:
4.2 基线
我们将我们提出的方法 SDCN 与三种类型的方法进行比较,包括原始数据的聚类方法、基于 DNN 的聚类方法和基于 GCN 的图聚类方法。
(1)k-Measn:[5]:一种基于原始数据的经典聚类方法。
(2)AE:[7]:它是一种两阶段深度聚类算法,对自动编码器学习到的表示执行 K 均值。
(3)DEC[29]:它是一种深度聚类方法,设计聚类目标来指导数据表示的学习。
(4)IDEC[4]:该方法在DEC的基础上添加了重构损失,从而学习到更好的表示。
(5)GAE & VGAE [10]:它是一种使用 GCN 学习数据表示的无监督图嵌入方法。
(6)DAEGC [27]:它使用注意力网络来学习节点表示,并使用聚类损失来监督图聚类的过程。
(7)SDCNQ:SDCN 的变体,分布为 Q。
(8)SDCN
- 指标:准确度 (ACC)、标准化互信息 (NMI)、平均兰德指数 (ARI) 和宏观 F1 分数 (F1)。 对于每个指标,较大的值意味着更好的聚类结果。
- 参数设置:我们对所有基于DNN的聚类方法(AE+K-means、DEC、IDEC)和SDCN使用预训练的自编码器。我们使用所有数据点进行端到端训练,训练30个轮次,学习率设为10^-3。为了与之前的方法[4, 29]保持一致,我们将自编码器的维度设为d-500-500-2000-10,其中d是输入数据的维度。GCN模块的层维度与自编码器相同。对于基于GCN的方法,我们将GAE和VAGE的维度设为d-256-16,并对所有数据集进行30个轮次的训练。对于DAEGC,我们采用[27]中的设置。在超参数搜索中,我们在DEC和IDEC中尝试{1, 3, 5}作为更新间隔,在IDEC中尝试{1, 0.1, 0.01, 0.001}作为超参数γ,并报告最佳结果。对于我们的SDCN,我们对所有数据集统一设置α = 0.1和β = 0.01,因为我们的方法对超参数不敏感。对于非图数据,我们使用200个轮次训练SDCN,对于图数据,则使用50个轮次训练。这是因为具有先验知识的图结构(例如引用网络)包含的信息比KNN图更多,可以加快收敛速度。批量大小设为256,USPS、HHAR、ACM和DBLP的学习率设为10-3,Reuters和Citeseer的学习率设为10-4。对于所有使用K-means算法生成聚类分配的方法,我们初始化20次,选择最佳解。我们运行所有方法10次并报告平均结果,以防止极端情况的影响。
4.3 聚类结果分析
表 2 显示了六个数据集的聚类结果。 请注意,在 USPS、HHAR 和Reuters 中,我们使用 KNN 图作为 GCN 模块的输入,而对于 ACM、DBLP 和 Citeseer,我们使用原始图。 我们有以下观察:
- 对于每个指标,我们的方法 SDCN 和 SDCNQ 在所有六个数据集中都取得了最佳结果。 特别是,与基线的最佳结果相比,我们的方法在 ACC 上平均显着提高了 6%,在 NMI 上平均提高了 17%,在 ARI 上平均提高了 28%。 原因在于SDCN成功地将结构信息融入到深度聚类中,并且双自监督模块引导自编码器和GCN的更新,使它们相互增强。
- SDCN 通常比 SDCNQ 取得更好的聚类结果。 原因是SDCN使用包含GCN学习到的结构信息的表示,而SDCNQ主要使用自动编码器学习的表示。 不过在Reuters看来,SDCNQ的结果比SDCN好很多。 因为在Reuters的KNN图中,许多不同类别的节点连接在一起,其中包含很多错误的结构信息。 因此,应用GCN的一个重要前提是构建噪声较小的KNN图。
- 基于自动编码器的方法(AE、DEC、IDEC)在具有KNN图的数据上的聚类结果通常优于基于GCN的方法(GAE、VAGE、DAEGC),而基于GCN的方法通常在具有图结构的数据上表现更好 。 原因是基于 GCN 的方法仅使用结构信息来学习数据表示。 当图中的结构信息不够清晰时,例如 KNN 图,基于 GCN 的方法的性能会下降。 此外,SDCN将结构信息融入深度聚类中,因此其聚类性能优于这两种方法。【KNN图如何更好的构建及其重要性】
- 比较AE与DEC的结果以及GAE与DAEGC的结果,我们可以发现,在提高深度聚类性能方面,第13式中定义的聚类损失函数起着重要作用。因为IDEC和DAEGC可以视为分别将聚类损失与AE和GAE结合的结果。通过使数据表示更接近聚类中心,它提高了聚类的凝聚性,从而改善了聚类结果。
4.4 消融实验
我们将我们的模型与两个变体进行比较,以验证 GCN 学习结构信息的能力和传递算子的有效性。 具体来说,我们定义了以下变体:
- SDCN-w/o:这个变体是没有传递算子的SDCN,用于验证我们提出的传递算子的有效性。
- SDCN-MLP:该变体是SDCN用相同层数的多层感知器(MLP)替换GCN模块,用于验证GCN在学习结构信息方面的优势。
从图 2 中,我们得到以下观察结果: - 在图2(a)中,我们可以发现SDCN-MLP的聚类精度在Reuters中优于SDCN-w/o,并且在USPS和HHAR中取得了相似的结果。 这说明在KNN图中,如果没有传递算子,GCN学习结构信息的能力受到严重限制。 原因是多层GCN会产生严重的过平滑问题,导致聚类结果下降。 另一方面,SDCN 优于 SDCN-MLP。 这证明交付算子可以帮助 GCN 缓解过度平滑问题并学习更好的数据表示。
- 在图2(b)中,我们可以发现在包含原始图的所有三个数据集中,SDCN-w/o的聚类精度都优于SDCN-MLP。 这表明GCN具有学习用结构信息表示数据的强大能力。 此外,SDCN 在三个数据集中比 SDCN-w/o 表现更好。 这证明SDCN-w/o仍然存在过平滑问题,但是良好的图结构仍然使得SDCN-w/o取得了不错的聚类结果。
- 比较图2(a)和图2(b)的结果,我们可以发现无论在哪种类型的数据集上,与SDCN-w/o和SDCNMLP相比,SDCN都取得了最好的性能。 这证明了交付算子和GCN对于提高聚类质量都发挥着重要作用。
4.5 不同聚合层的输出
为了调查SDCN是否受益于多层GCN,我们在保持DNN模块不变的情况下,调整GCN模块的深度。具体而言,我们在{1, 2, 3, 4}的范围内搜索层数。在SDCN中,DNN模块的编码器部分总共有四层,分别生成表示H(1)、H(2)、H(3)和H(4)。SDCN-L表示GCN模块中总共有L层。例如,SDCN-2意味着H(3)和H(4)将被传递到相应的GCN层进行传播。我们选择具有原始图的数据集,以验证传播层数对聚类效果的影响,因为它们具有固有的结构信息。从表3中,我们可以得出以下观察结果:
- 增加SDCN的深度显著提升了聚类性能。明显可见,SDCN-2、SDCN-3 和 SDCN-4 在各方面相较于 SDCN-1 都取得了一致的改进。此外,SDCN-4在所有三个数据集上表现优于其他方法。由于自编码器中每一层学习到的表示不同,为了尽可能保留信息,我们需要将从自编码器中学习到的所有表示放入相应的GCN层中。
- 有一个有趣的现象,即在所有数据集中,SDCN-3 的性能都不如 SDCN-2。 原因是 SDCN-3 使用表示 H(2),它是编码器的中间层。 该层生成的表示正处于从原始数据到语义表示的过渡阶段,不可避免地会丢失一些底层信息,缺乏语义信息。 另一个原因是,具有两层的 GCN 不会导致严重的过度平滑问题,这在[15]中得到了证明。 对于SDCN-3,由于层数不够,22式中的过平滑项还不够小,因此仍然受到过度平滑问题的困扰。
4.6 平衡系数ε分析
在之前的实验中,为了减少超参数搜索,我们统一将平衡系数ε设置为0.5。 在这个实验中,我们将探讨 SDCN 在不同数据集上如何受到不同 ϵ 的影响。 具体来说,我们设置 ϵ = {0.0, 0.1, 0.3, 0.5, 0.7, 0.9, 1.0}。 请注意,ϵ = 0.0 表示 GCN 模块中的表示不包含来自自动编码器的表示,而 ϵ = 1.0 表示 GCN 仅使用 DNN 学习到的表示 H(L)。 从图3我们可以发现
- 参数 ϵ = 0.5 的聚类精度在四个数据集(Reuters、ACM、DBLP、Citeseer)中取得了最好的性能,这表明 GCN 模块和 DNN 模块的表示同样重要,SDCN 的改进取决于两个模块的相互增强 。
- 在所有数据集中,参数 ϵ = 0.0 的聚类精度表现最差。 显然,当ϵ = 0.0时,GCN模块相当于标准的多层GCN,这会产生非常严重的过平滑问题[15],导致聚类质量下降。 与 ϵ = 0.1 时的准确率相比,我们可以发现,即使将自动编码器学习到的少量表示注入到 GCN 中也有助于缓解过度平滑问题。
- 另一个有趣的观察是,参数 ϵ = 1.0 的 SDCN 仍然获得更高的聚类精度。 原因是,虽然参数 ϵ = 1.0 的 SDCN 仅使用表示 H(L),但它包含了原始数据最重要的信息。 经过一层GCN后,仍然可以获得一些结构信息,以提高聚类性能。 但由于层数的限制,结果并不是最好的。
4.7 K敏感性分析
由于最近邻数K的数量是KNN图构建中的重要参数,因此我们在KNN图数据集上设计了K敏感性实验。 这个实验主要是为了证明我们的模型是K不敏感的。 因此,我们将 SDCN 与专注于图数据的聚类方法(GAE、VGAE、DAEGC)进行比较。 从图5中,我们可以发现,当K={1,3,5,10}时,我们提出的SDCN比GAE、VGAE和DAEGC要好得多,这证明我们的方法即使在包含噪声的图中也可以学习有用的结构信息。 另一个发现是,这四种方法在K = 3或K = 5时可以取得良好的性能,但在K = 1和K = 10的情况下,性能会明显下降。 原因是当K=1时,KNN图包含较少的结构信息,而当K=10时,KNN图中的社区重叠。 综上所述,与其他基线方法相比,SDCN 在具有不同近邻数量的 KNN 图上可以取得稳定的结果。
4.8 训练过程分析
在本节中,我们分析不同数据集的训练进度。 具体来说,我们想探索 SDCN 中三个样本分配分布的聚类精度如何随迭代次数变化。 图4中,红线SDCN-P、蓝线SDCN-Q和橙色线SDCN-Z分别代表目标分布P、分布Q和分布Z的精度。 大多数情况下,SDCN-P的准确率高于SDCN-Q,这说明目标分布P能够指导整个模型的更新。 开始时,三种分布的准确率结果均出现不同程度的下降。 由于autoencoder和GCN学习到的信息不同,两个模块的结果可能会产生冲突,使得聚类结果下降。 然后SDCN-Q和SDCN-Z的准确率迅速提高到很高的水平,因为目标分布SDCN-P缓解了两个模块之间的冲突,使得它们的结果趋于一致。 此外,我们可以看到,随着训练epoch的增加,SDCN的聚类结果趋于稳定,没有出现明显的波动,表明我们提出的模型具有良好的鲁棒性。
5 总结
在本文中,我们首次尝试将结构信息整合到深度聚类中。 我们提出了一种新颖的结构深度聚类网络,由DNN模块、GCN模块和双自监督模块组成。 我们的模型能够有效地将自动编码器特定的表示与交付操作员的 GCN 特定的表示相结合。 提供理论分析来证明传递算子的实力。 我们表明,我们提出的模型在各种开放数据集中始终优于最先进的深度聚类方法。
标签:Clustering,编码器,Network,模块,Deep,GCN,学习,SDCN,聚类 From: https://www.cnblogs.com/wtbhs/p/18474979