【全文翻译—超全】【WWW2020】Structural Deep Clustering Network—结构化深度聚类

在这里插入图片描述
原文链接:https://arxiv.org/abs/2002.01633
开源:https://github.com/lxk-yb/SDCN

摘要

聚类是数据分析中的一项基本任务。最近,主要从深度学习方法中获得灵感的深度聚类实现了最先进的性能,并引起了相当大的关注。目前的深度聚类方法通常借助于深度学习强大的表示能力(如autocoder)来提高聚类结果,这表明学习一种有效的聚类表示是一个至关重要的要求。
深度聚类方法的优势在于从数据本身中提取有用的表示,而不是从数据的结构中提取有用的表示,这在表示学习中很少受到关注。基于图卷积网络(GCN)在图结构编码方面取得的巨大成功,我们提出了一种结构化的深度聚类网络(SDCN),将结构信息整合到深度聚类中。具体来说,我们设计了一个传递算子delivery operator,将自编码器学习到的表示传递到相应的GCN层,并设计了一个双重自监督机制来统一这两种不同的深层神经结构,指导整个模型的更新。这样,从低阶到高阶的多重数据结构,自然地与由自动编码器学习的多重表示相结合。此外,我们还从理论上分析了传递算子,即在传递算子的作用下,GCN改进了自编码器的高阶图正则化表示,自动编码有助于缓解GCN中的过平滑问题**。通过综合实验,我们证明了我们提出的模型能够持续地比现有的技术表现得更好。

1 介绍

聚类是最基本的数据分析任务之一,它将相似的样本分组到同一类别中。在过去的几十年里,已经开发了一大类聚类算法,并成功地应用于各种实际应用,如图像聚类和文本聚类。最近,深度学习的突破导致人工智能和机器学习的范式转变,在许多重要任务上取得了巨大成功,包括聚类。因此,深度聚类引起了人们的广泛关注。深度聚类的基本思想是将聚类的目标与深度学习强大的表征能力相结合。因此,学习有效的数据表示是进行深度聚类的关键前提。例如,[27]在K-means中使用由autoencoder学习的表示;[4,26]利用聚类损失帮助autoencoder学习具有高聚类内聚性的数据表示[22],[9]使用可变的自动编码器来学习更好的数据表示以进行聚类。到目前为止,深度聚类方法已经取得了最先进的性能,成为事实上的聚类方法。

尽管深度聚类已经取得了成功,但它们通常只关注数据本身的特性,因此在学习表示时很少考虑数据的结构。值得注意的是,考虑数据样本之间关系的重要性已经被以往的文献所认识,并在数据表示领域取得了成果。这种结构揭示了样本之间潜在的相似性,为学习表示提供了有价值的指导。一种典型的方法是谱聚类[21],它将样本作为加权图中的节点,利用数据的图结构进行聚类。近年来,新兴的图卷积网络(GCN)[11]也对图结构和节点属性进行编码,用于节点表示。总之,结构信息在数据表示学习中起着至关重要的作用。然而,它很少应用于深度聚类。

实际上,将结构信息集成到深度聚类中通常需要解决以下两个问题。
(1) 在深度聚类中应该考虑哪些结构信息?
众所周知,结构信息表示数据样本之间潜在的相似性。然而,数据的结构通常非常复杂,即不仅存在样本间的直接关系(也称为一阶结构),而且还存在高阶结构。高阶结构对样本之间的多跳关系施加了相似性约束。以二阶结构为例,说明对于没有直接关系的两个样本,如果它们有许多共同的邻居样本,它们仍然应该有相似的表示。当数据结构稀疏时,高阶结构就显得尤为重要。因此,在深度聚类中仅仅利用低阶结构是远远不够的,如何有效地考虑高阶结构是第一个问题
(2)结构信息与深度聚类有什么关系?
深度聚类的基本组成部分是深度神经网络(DNN),例如自动编码器。自动编码器的网络结构非常复杂,由多层组成。每层捕获不同的潜在信息。数据之间也存在着各种类型的结构信息。因此,在自动编码器中,不同的结构和不同的层之间的关系是什么?一方面,人们可以用这种结构来正则化由自动编码器学习的表示,另一方面,也可以直接从结构本身学习表示。如何将数据结构与自动编码器结构巧妙地结合起来是另一个问题。

为了获取数据的结构信息,我们首先构造了一个K-最近邻(KNN)图,它能够揭示数据的底层(underlying)结构. 为了从KNN图中获取低阶和高阶结构信息,我们提出了一个由多个图卷积层组成的GCN模块来学习GCN的特定表示。

为了将结构信息引入到深度聚类中,我们引入了一个自动编码器模块,从原始数据中学习自编码器的特定表示,并提出了一个传递算子将其与GCN特定表示相结合。从理论上证明了传递算子能够更好地辅助自动编码器与GCN的集成。特别地,我们证明了GCN为自编码器学习的表示提供了一个近似的二阶图正则化,并且通过自编码器学习的表示可以缓解GCN中的过平滑问题

最后,由于自动编码器和GCN模块都会输出表示,因此我们提出了一个双重自监督模块统一指导这两个模块。通过双自监督模块,可以对整个模型进行端到端的聚类训练

综上所述,我们突出的主要贡献如下:
(1)提出了一种新的用于深度聚类的结构化深度聚类网络(SDCN)。所提出的SDCN有效地结合了自动编码器和GCN的优点,采用了一种新的传送算子和一个双重的自监督模块。据我们所知,这是第一次将结构信息显式地应用到深度聚类中。
(2)我们对我们提出的SDCN进行了理论分析,证明了GCN为DNN表示提供了一个近似的二阶图正则化SDCN中学习到的数据表示等价于具有不同阶结构信息的表示之和。通过理论分析,可以有效地缓解SDCN中GCN模块的过平滑问题
(3)在六个真实世界数据集上进行的大量实验表明,与最先进的技术相比,SDCN具有优越性。特别是,与最佳baseline方法相比,SDCN实现了显著的改进(NMI为17%,ARI为28%)。

2 相关工作

在这一部分中,我们将介绍最相关的工作:深度聚类和基于GCN的图聚类。

深层聚类方法是将深层表征学习与聚类目标相结合。例如,[27]提出了深度聚类网络,利用K-means的损失函数来帮助自动编码器学习“K-means友好”的数据表示。深度嵌入聚类[26]设计了KL散度损失, 使自编码器学习到的表示更接近簇中心,从而提高了簇的内聚性。改进的深度嵌入聚类[4]在DEC的目标上增加了重构损失作为约束,以帮助自动编码器学习更好的数据表示。变分深度嵌入[9]能够利用深度变分自动编码器对数据生成过程和聚类进行联合建模,从而获得更好的聚类结果。[8] 提出了一种深子空间聚类网络,它在编码器和解码器之间使用了一种新的自表达层。它能够模拟子空间聚类中的“自表达”特性,从而获得更具表现力的表示。DeepCluster[3]将聚类结果视为伪标签,可以应用于大数据集的深层神经网络训练。然而,所有这些方法都只关注于从样本本身学习数据的表示。学习表征中的另一个重要信息,即数据的结构,在很大程度上被这些方法忽略了

为了处理数据背后的结构信息,一些基于GCN的聚类方法得到了广泛的应用。例如,[10]提出了图形自动编码器和图形变分自动编码器,它使用GCN作为编码器,将图结构整合到节点特征中,学习节点嵌入。深度注意力图嵌入聚类[25]利用注意网络捕捉相邻节点的重要性,并利用DEC的KL散度损失来监督图聚类的训练过程。上述基于GCN的聚类方法都是通过重构邻接矩阵来更新模型,这些方法只能从图结构中学习数据表示,而忽略了数据本身的特性然而,这种方法的性能可能仅限于社区结构之间的重叠

3 提出模型

在这一节中,我们介绍了我们提出的结构化深度聚类网络,其中的整体框架如图1所示。首先根据原始数据构造KNN图。然后将原始数据和KNN图分别输入到autocoder和GCN中。我们将自动编码器的每一层与对应的GCN层连接起来,这样我们就可以通过一个传递算子将自动编码器的特定表示集成到结构感知表示中。同时,我们提出了一种双重自监督机制来监督自编码器和GCN的训练进度。我们将在下面详细描述我们提出的模型。

图1
图1:我们提出的SDCN的框架。X、 X ^ \hat X X^分别是输入数据和重建数据。 H ( ℓ ) H^{(\ell)} H() Z ( ℓ ) Z^{(\ell)} Z()分别表示DNN和GCN模块中的 ℓ \ell 层。不同的颜色代表由DNN模块学习的不同表示 H ( ℓ ) H^{(\ell)} H()。蓝色实线表示目标分布P由分布Q计算,两条红色虚线表示双重自监督机制。目标分布P同时指导DNN模块和GCN模块的更新。

3.1 KNN图

假设我们有原始数据 X ∈ R N × d X \in \R ^{N \times d} XRN×d,其中每行 X i X_i Xi代表第 i i i个样本, N N N是样本个数, D D D是维数。对于每个样本,我们首先找到它的前 K K K个相似邻居,并设置边来连接它和它的邻居。计算样本相似矩阵 S ∈ R N × N S\in \R^{N\times N} SRN×N的方法很多。这里我们列出了两种常用的构造KNN图的方法:
(1) Heat Kernel.样本 i i i j j j之间的相似性计算公式如下:
在这里插入图片描述
式中, t t t是热传导的公式的时间参数,用于连续数据,如图像。
(2)Dot-product.样本 i i i j j j之间的相似性计算公式如下:
在这里插入图片描述
对于离散数据,例如词袋,我们使用点积相似度,使得相似度只与相同单词的数量相关。

在计算相似矩阵 S S S后,选取每个样本的前 K K K个相似点作为其邻域,构造无向K-最近邻图。这样,我们就可以从非图数据中得到邻接矩阵 A A A

3.2 DNN模块

如前所述,学习有效的数据表示对于深度聚类非常重要。对于不同类型的数据,有几种可供选择的无监督方法来学习表示。例如,去噪自动编码器[24]、卷积式自动编码器[19]、LSTM编码器解码器[18]和对抗性自动编码器[17]。它们是基本自动编码器的变体[7]。本文从通用性的角度出发,采用basic自动编码器来学习原始数据的表示形式,以适应不同类型的数据特点。我们假设在自动编码器中有 L L L层,而 ℓ \ell 表示层号。具体地说,编码器部分中的第 ℓ \ell 层学习到的表示 H ( ℓ ) H^{(\ell)} H()可以如下获得:
在这里插入图片描述
式中, ϕ \phi ϕ是全连接层的激活函数,如Relu[20]或Sigmoid函数, W e ( ℓ ) W^{(\ell)}_e We() b e ( ℓ ) b^{(\ell)}_e be()分别是编码器中第 ℓ \ell 层的权重矩阵和偏差。此外,我们将 H ( 0 ) H^{(0)} H(0)为原始数据 X X X

在编码部分之后是解码部分,即通过如下方程将输入数据通过多个完连接层进行重构:
在这里插入图片描述
W d ( ℓ ) W^{(\ell)}_d Wd() b d ( ℓ ) b^{(\ell)}_d bd()分别是解码器中第 ℓ \ell 层的权重矩阵和偏差。

解码器部分的输出是原始数据的重构 X ^ = H ( L ) \hat{X} = H^{(L)} X^=H(L),从而得到以下的目标函数:
在这里插入图片描述

3.3 GCN模块

自动编码器能够从数据本身学习有用的表示,例如 H ( 1 ) H^{(1)} H(1) H ( 2 ) H^{(2)} H(2)、···、 H ( L ) H^{(L)} H(L),而忽略了样本之间的关系。在本节中,我们将介绍如何使用GCN模块来传递由DNN模块生成的这些表示。一旦DNN模块学习到的所有表示都集成到GCN中,那么GCN可学习表示将能够适应两种不同的信息,即数据本身和数据之间的关系。特别是,利用权重矩阵 W W W,可以通过以下卷积运算获得GCN的第 ℓ \ell 层的表示, Z ( ℓ ) Z^{(\ell)} Z()
在这里插入图片描述
其中 A ˜ = A + I \text{\~A} = A + I A˜=A+I, D ˜ i i = Σ j A ˜ i j \text{\~D}{_{ii}} = \Sigma_j \text{\~A}_{ij} D˜ii=ΣjA˜ij I I I是每个节点中中自循环的相邻矩阵A的单位对角矩阵。从式6可以看出,表示 Z ( ℓ − 1 ) Z^{(\ell-1)} Z(1)将通过归一化邻接矩阵 D ˜ − 1 / 2 A ˜ D ˜ − 1 / 2 \text{\~D}^{-1/2}\text{\~A}\text{\~D}^{-1/2} D˜1/2A˜D˜1/2 传播,从而获得新的表示式 Z ( ℓ ) Z^{(\ell)} Z()。考虑到自动编码器 H ( ℓ − 1 ) H^{(\ell-1)} H(1)学习到的表示能够重建数据本身并包含不同的有价值的信息,我们将两种表示 Z ( ℓ − 1 ) Z^{(\ell-1)} Z(1) H ( ℓ − 1 ) H^{(\ell-1)} H(1)结合在一起,得到更完整、更强大的表示,如下所示:
在这里插入图片描述
其中, ϵ \epsilon ϵ是一个平衡系数,我们在这里统一地设为0.5。通过这种方式,我们将自动编码器和GCN层层连接起来。
然后我们使用 Z ˜ ( ℓ − 1 ) \text{\~{Z}}^{(\ell-1)} Z˜(1)为GCN中第 l l l层的输入来生成表示 Z ( ℓ ) Z^{(\ell)} Z()
在这里插入图片描述
如我们在等式8中所见,自动编码器特定的表示 H ( ℓ − 1 ) H^{(\ell-1)} H(1)将通过归一化的邻接矩阵 D ˜ − 1 / 2 A ˜ D ˜ − 1 / 2 \text{\~D}^{-1/2}\text{\~A}\text{\~D}^{-1/2} D˜1/2A˜D˜1/2 传播。因为每个DNN层所学的表示不同,为了尽可能地保留信息,我们将从每个DNN层学习到的表示转移到相应的GCN层以进行信息传播,如图1所示。传递银子在整个模型中工作了 L L L次。我们将在第3.5节中从理论上分析这种传递算子的优势。
注意,第一层GCN的输入是原始数据 L L L
在这里插入图片描述
GCN模块的最后一层是具有softmax功能的多分类层:
在这里插入图片描述
结果 z i j ∈ Z z_{ij} \in Z zijZ表明样本 i i i属于聚类中心 j j j的概率,可以将 Z Z Z看作一个概率分布。

3.4 双重自监督模块

现在,我们已经在神经网络架构中将自动编码器与GCN连接起来。然而,它们并不是为深度聚类而设计的。基本上,自动编码器主要用于数据表示学习,这是一种无监督的学习场景,而传统的GCN则是半监督学习场景。这两种方法都不能直接应用于聚类问题。在这里,我们提出了一个双重自监督模块,它将自动编码器和GCN模块统一在一个统一的框架中,并有效地对这两个模块进行端到端的聚类训练。
特别是,对于第 i i i个样本和第 j j j个聚类,我们使用Student的t分布[16]作为核来度量数据表示 h i h_i hi和聚类中心向量 μ j \mu_j μj之间的相似性,如下所示:
在这里插入图片描述
其中 h i h_i hi H ( L ) H^{(L)} H(L)的第 i i i行,预训练自动编码器学习到的表示由K-means作用,初始化得来 μ j \mu_j μj v v v是Student的t分布的自由度。 q i j q_{ij} qij可以看作是将样本 i i i分配给聚类 j j j的概率,即软分配。我们将 Q = [ q i j ] Q=[q_{ij}] Q=[qij]视为所有样本的赋值分布,所有实验的 α = 1 α=1 α=1
在得到**聚类结果分布 Q Q Q**后,我们通过学习高置信度赋值来优化数据表示。具体来说,我们希望使数据表示更接近簇中心,从而提高簇内聚力。因此,我们计算目标分布P如下:
在这里插入图片描述
其中 f j = Σ i q i j f_j = \Sigma_i{q}_{ij} fj=Σiqij是软簇频率。在目标分布 P P P中, Q中的每一个赋值都是平方归一化的,这样
任务会有更高的置信度,以指导目标函数如下:
在这里插入图片描述
通过最小化 Q Q Q P P P分布之间的KL散度损失,目标分布P可以帮助DNN模块学习更好的聚类任务表示,即使数据表示更靠近聚类中心。这被视为一种自监督机制 1 ^1 1,因为目标分布P由分布Q计算,而P分布又监督分布Q的更新。
1 ^1 1尽管之前的一些工作倾向于称这种机制为自我训练(self-training),但我们更喜欢使用“自我监督”(self-supervised)一词来与GCN训练方法保持一致。

对于GCN模块的训练,一种可能的方法是将聚类任务视为真值标签[3]。然而,这种策略会带来噪声和琐碎解,并导致整个模型的崩溃。如前所述,GCN模块也将提供一个聚类分配分布 Z Z Z。因此,我们可以使用分布 P P P来监督分布 Z Z Z,如下所示:
在这里插入图片描述
该目标函数有两个优点:
(1)与传统的多分类损失函数相比,KL散度函数以更“温和”的方式更新整个模型,以防止数据表示受到严重干扰;
(2)GCN和DNN模块统一在同一优化目标上,使其结果在训练过程中趋于一致。
由于DNN模块和GCN模块的目标是靠近目标分布P,这两个模块之间有很强的联系,我们称之为双重自监督机制。

通过这种机制,SDCN可以直接将聚类目标和分类目标集中在一个损失函数中。因此,我们提出的SDCN的整体损失函数是:
在这里插入图片描述
其中 α > 0 α>0 α>0是平衡聚类优化原始数据的局部结构保持的超参数, β > 0 β>0 β>0是控制GCN模块对嵌入空间扰动的系数。
在实践中,经过训练到最高epoch,SDCN将获得稳定的结果。然后我们可以给样品贴标签。我们选择分布 Z Z Z中的软分配作为最终的聚类结果。因为GCN学习到的表示包含两种不同的信息。分配给样本 i i i的标签是:
在这里插入图片描述
z i j z_{ij} zij由公式(10)计算。

整个模型的算法如算法1所示:
在这里插入图片描述

Q: 为什么不直接用分布Q来监督分布P?
A: 其原因有两个:
1)以前的方法考虑使用聚类赋值作为伪标签,以一种有监督的方式重新训练编码器,即deepCluster。然而,在实验中我们发现交叉熵损失的梯度太大,无法阻止嵌入空间受到干扰。
2) 虽然可以用KL散度代替交叉熵损失,但仍然存在一个我们担心的问题,即没有聚类信息。
我们研究深度聚类的初衷是将聚类的目标与深度学习强大的表征能力相结合。因此,我们引入分布P来增加聚类性能的内聚性。

3.5 理论分析

在本节中,我们将分析SDCN如何将结构信息引入到自动编码器中。在此之前,我们给出了图正则化和二阶图正则化的定义。
定义1。图正则化[2]。给定一个有权图 G G G,图正则化的目标是最小化以下公式:
在这里插入图片描述
其中 w i j w_{ij} wij表示节点 i i i和节点 j j j之间的边的权重, h i h_i hi表示节点 i i i

在定义1的基础上,我们可以发现图的正则化表示如果节点 i i i j j j之间的权重较大,它们的表示应该更加相似。

定义2。二阶相似性。假设 A A A是图 G G G的邻接矩阵, a i a_i ai A A A的第 i i i列。节点 i i i和节点 j j j之间的二阶相似性为:
在这里插入图片描述其中 C C C是节点 i i i和节点 j j j之间的公共邻居的数目, d i d_i di是节点 i i i的度。

定义3。二阶图正则化。二阶图正则化的目的是使如下方程最小化:
在这里插入图片描述其中 s i j s_{ij} sij是二阶相似性。

与定义1相比,定义3施加了一个高阶约束,即如果两个节点有多个公共邻居,则它们的表示也应该更加相似。

定理1。GCN为DNN表示提供了一个近似的二阶图正则化。
证明:略
DNN表示通过GCN层传递后,如果二阶相似性较大的节点,GCN将迫使节点的表示彼此接近,这与二阶图正则化的思想相同。

定理2。SDCN学习到的表征 Z ( ℓ ) Z^{(\ell)} Z()相当于具有不同阶结构信息的表征之和。
证明:略
公式(7)中传递算子的优点有两个方面:一是SDCN学习的数据表示 Z ( ℓ ) Z^{(\ell)} Z()包含不同的结构信息。另一个是它可以缓解GCN中的过平滑现象。由于多层GCN关注的是高阶信息,SDCN中的GCN模块是具有不同阶结构信息的表示的总和。与文献[12]相似,我们的方法还利用不同阶数信息的融合来缓解GCN中的过平滑现象。然而,与文献[12]对不同阶邻接矩阵的相同表示不同,我们的SDCN对不同阶的邻接矩阵给出了不同的表示。这使得我们的模型包含了更多的信息。

3.6 复杂性分析(略)

4 实验

4.1 数据集

我们提出的SDCN在六个数据集上进行了评估。这些数据集的统计如表1所示,详细说明如下:
在这里插入图片描述
USPS[13]
USPS数据集包含9298幅16x16像素的灰度手写数字图像。特征是图像中像素点的灰度值,所有特征都被归一化为[0,2]。
HHAR[23]
异质性人类活动识别(HHAR)数据集包含来自智能手机和智能手表的10299个传感器记录。所有样本被划分为6类人类活动,包括骑自行车、坐着、站着、走路、上楼梯和下楼梯。
Reuters[14]
这是一个文本数据集,包含约81万篇英文新闻,并用分类树标注。我们使用4个根类别:企业/工业、政府/社会、市场和经济作为标签,随机抽取10000个样本进行聚类。
ACM[http://dl.acm.org/]:
这是来自ACM数据集的论文网络。如果两篇论文是由同一作者写的,两篇论文之间就有边相连。论文特征是关键词的词袋。我们选择发表在KDD,SIGMOD,SIGCOMM,MobiCOMM上的论文,并按研究领域分为数据库、无线通信、数据挖掘三大类。
DBLP[https://dblp.uni-trier.de]:
这是来自DBLP数据集的作者网络。如果两个作者是合著者,他们之间就有边相连。作者分为四个领域:数据库、数据挖掘、机器学习和信息检索。我们根据每个作者提交的会议给他们的研究领域贴上标签。作者特征是由词袋表示的关键词。
Citeseer[http://citeseerx.ist.psu.edu/index]:
这是一个引文网络,包含每个文档的稀疏词袋特征向量,和文档之间的引文链接列表。这些标签包含六个领域:代理、人工智能、数据库、信息检索、机器语言和人机交互。

4.2 基准

我们将所提出的方法SDCN与三种方法进行了比较,包括基于原始数据的聚类方法、基于DNN的聚类方法和基于GCN的图聚类方法。
K-means[5]:基于原始数据的经典聚类方法。
AE[7]:这是一个两阶段的深度聚类算法,对自动编码器学习到的表示执行K-means。
DEC[26]:这是一种深度聚类方法,它设计了一个聚类目标来指导数据表示的学习。
IDEC[4]:这种方法增加了DEC的重建损失,以便学习更好的表示。
GAE&VGAE[10]:这是一种使用GCN学习数据表示的无监督图嵌入方法。
DAEGC[25]:它使用注意力网络来学习节点表示,并使用聚类损失来监督图聚类的过程。
SDCN Q _Q Q:SDCN的变体,具有分布Q。
SDCN:本文提出的的方法。

指标。我们采用四种常用的指标:准确度(ACC)、标准化互信息(NMI)、平均兰德指数(ARI)和宏观F1得分(F1)。对于每个度量,值越大表示聚类结果越好。

参数设置
我们对所有基于DNN的聚类方法(AE+K-means,DEC,IDEC)和SDCN使用预训练的自动编码器。我们使用30个epoch,对所有数据点,端对端地训练自动编码器,学习率为 1 0 − 3 10^{-3} 103。为了与之前的方法[4,26]一致,我们将自动编码器的尺寸设置为 d − 500 − 500 − 2000 − 10 d-500-500-2000-10 d500500200010,其中d是输入数据的尺寸。GCN模块中各层的尺寸与自动编码器相同。
对于基于GCN的方法,我们将GAE和VAGE的维数设置为d-256-16,并对所有数据集进行30个epoch的训练。
对于DAEGC,我们使用[25]的设置。在超参数搜索中,我们在DEC和IDEC中尝试使用{1,3,5}更新间隔,在IDEC中尝试使用{1,0.1,0.01,0.001},并报告最佳结果。
对于我们的SDCN,我们统一地为所有数据集设置 α = 0.1 α=0.1 α=0.1 β = 0.01 β=0.01 β=0.01,因为我们的方法对超参数不敏感。
对于非图数据,我们用200个epoch训练SDCN,对于图形数据,我们训练50个epoch。
由于具有先验知识的图结构,即引文网络,比KNN图包含更多的信息,可以加快收敛速度。USPS、HHAR、ACM、DBLP的batch大小设置为256,学习率设置为 1 0 − 3 10^{-3} 103,Reuters、Citeseer的学习率设置为 1 0 − 4 10^{-4} 104
对于所有使用K-means算法生成聚类赋值的方法,我们初始化了20次并选择了最佳的解决方案。我们运行所有方法10次,并报告平均结果,以防止极端情况。

4.3 聚类结果分析

在这里插入图片描述
表2显示了六个数据集的聚类结果。请注意,在USPS、HHAR和Reuters中,我们使用KNN图作为GCN模块的输入,而对于ACM、DBLP和citeeser,我们使用原始图形。我们有以下观察结果:

(1)对于每一个指标,我们的方法 S D C N SDCN SDCN S D C N Q SDCN_Q SDCNQ在所有六个数据集中都取得了最好的结果。特别是,与baseline的最佳结果相比,我们的方法平均在ACC、NMI和ARI上分别实现了6%、17%和28%的显著改善。究其原因,SDCN成功地将结构信息集成到深度聚类中,双重自监督模块引导自编码器和GCN的更新,使二者相互增强。

(2)SDCN通常比SDCNQ获得更好的聚类结果。究其原因,SDCN使用GCN学习的结构信息表示,而SDCNQ主要使用自动编码器学习的表示。然而,在Reuters看来,SDCNQ的结果比SDCN好得多。因为在Reuters的KNN图中,许多不同类型的节点连接在一起,包含了很多错误的结构信息。因此,构造一个噪声较小的KNN图是GCN应用的一个重要前提。

(3)基于自动编码的方法(AE、DEC、IDEC)在具有KNN图的数据上的聚类结果通常优于基于GCN的方法(GAE、VAGE、DAEGC),而基于GCN的方法对具有图结构的数据的聚类结果通常更好。这是因为基于GCN的方法只利用结构信息来学习数据表示。当图中的结构信息不够清晰时,如KNN图,基于GCN的方法的性能会下降。此外,SDCN将结构信息集成到深度聚类中,因此其聚类性能优于这两种方法。

(4)比较AE和DEC的结果和GAE与DAEGC的结果,我们可以发现等式(13)中定义的聚类损失函数对提高深度聚类性能起着重要作用。因为IDEC和DAEGC可以分别看作是聚类损失与AE和GAE的组合。它通过使数据表示更接近聚类中心来提高聚类的内聚性,从而提高聚类结果。

4.4 变体分析

我们将我们的模型与两个变量进行比较,以验证GCN在学习结构信息方面的能力以及传递算子的有效性。具体来说,我们定义了以下变体:
•SDCN-w/o:此变体为没有传递算子的SDCN,用于验证我们提出的传递算子的有效性。
•SDCN-MLP:此变体是SDCN用相同层数的多层感知器(MLP)代替GCN模块,用于验证GCN在学习结构信息方面的优势。
在这里插入图片描述
从图2中,我们可以得到以下观察结果:
(1)在图2(a)中,我们可以发现,在Reuters中,SDCN-MLP的聚类精度优于SDCN-w/o,在USPS和HHAR中获得了类似的结果。这说明在KNN图中,没有传递算子,GCN学习结构信息的能力受到严重限制。其原因是多层GCN会产生严重的过光滑问题,导致聚类结果的下降。另一方面,SCDN比SDCN-MLP更好。这证明了传递算子可以帮助GCN缓解过平滑问题,学习更好的数据表示。
(2)在图2(b)中,我们可以发现,在包含原始图的三个数据集中,SDCN-w/o的聚类精度都优于SDCN-MLP。这说明GCN在学习具有结构信息的数据表示方面具有强大的能力。另外,在这三个数据集中,SDCN的性能优于SDCN-w/o。这证明了SDCN-w/o仍然存在超光滑问题,但良好的图结构仍然使SDCN-w/o获得了不错的聚类结果。
(3)对比图2(a)和图2(b)中的结果,我们可以发现无论是哪种类型的数据集,SDCN的性能都优于SDCN-w/o和SDCN-MLP。这证明了传递算子和GCN都对提高聚类质量起着重要作用。

4.5 不同传播层分析

为了研究SDCN是否受益于多层GCN,我们在保持DNN模块不变的情况下改变GCN模块的深度。特别是,我们搜索{1,2,3,4}范围内的层数。SDCN中DNN模块的编码部分共有四层,分别生成表示 H ( 1 ) H^{(1)} H1 H ( 2 ) H^{(2)} H2 H ( 3 ) H^{(3)} H3 H ( 4 ) H^{(4)} H4。SDCN-L表示GCN模块中共有L层。例如,SDCN-2意味着 H ( 3 ) H^{(3)} H3 H ( 4 ) H^{(4)} H4将被传送到相应的GCN层进行传播。我们选取原始图结构的数据集来验证传播层数对聚类效果的影响,因为它们具有自然的结构信息。从表3中,我们有以下观察结果:
在这里插入图片描述

(1)增加SDCN的深度可以显著提高集群性能。很明显,SDCN-2、SDCN-3和SDCN-4在各个方面都比SDCN-1实现了一致的改进。此外,SDCN-4在这三个数据集中的表现都优于其他方法。由于自动编码器中各层学习到的表示是不同的,为了尽可能地保留信息,我们需要将从自动编码器中学习到的所有表示放入相应的GCN层中。
(2)有一个有趣的现象,即在所有数据集中,SDCN-3的性能都不如SDCN-2。原因是SDCN-3使用表示 H ( 2 ) H^{(2)} H2,它是编码器的中间层。该层生成的表示处于从原始数据到语义表示的过渡阶段,不可避免地会丢失一些底层信息,缺乏语义信息。另一个原因是具有两层的GCN不会引起严重的过平滑问题,这在[15]中得到了证明。对于SDCN-3,由于层数不够,公式22中的过平滑项不够小,因此仍然受到过平滑问题的困扰。

4.6 平衡系数 ϵ \epsilon ϵ分析

在这里插入图片描述
在以往的实验中,为了减少超参数搜索,我们将平衡系数ϵ统一设置为0.5。在这个实验中,我们将探讨不同数据集上不同的ϵ对SDCN的影响。具体地,我们设置ϵ为{0.0, 0.1, 0.3, 0.5, 0.7, 0.9 }。注意,ϵ=0.0表示GCN模块中的表示不包含来自自动编码器的表示,而ϵ=1.0表示GCN仅使用DNN学习的表示 H ( L ) H^{(L)} HL
从图3中,我们可以发现:
(1)在四个数据集(Reuters、ACM、DBLP、Citeseer)中,参数ϵ=0.5的聚类精度达到最佳,说明GCN模块和DNN模块的表示同样重要,SDCN的改进依赖于两个模块的相互增强。
(2)在所有数据集中,参数ϵ=0.0的聚类精度表现最差。显然,当ϵ=0.0时,GCN模块相当于标准多层GCN,会产生非常严重的过平滑问题[15],导致聚类质量下降。与ϵ=0.1时的精度相比,我们可以发现,即使在GCN中注入少量的自编码器学习的表示,也有助于缓解过平滑问题。
(3)另一个有趣的观察是,参数ϵ=1.0的SDCN仍然可以获得更高的聚类精度。原因是,尽管参数ϵ=1.0的SDCN只使用表示 H ( L ) H^{(L)} HL,但它包含了原始数据的最重要信息。经过一个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能够指导整个模型的更新。一开始,三种分布的精度都在不同的范围内下降。由于自动编码器和GCN学习到的信息不同,可能会引起两个模块结果之间的冲突,使聚类结果下降。然后SDCN-Q和SDCN-Z的精度迅速提高到一个较高的水平,因为目标分布SDCN-P缓和了两个模块之间的冲突,使它们的结果趋于一致。另外,随着训练时间的增加,SDCN的聚类结果趋于稳定,且没有明显的波动,说明本文提出的模型具有良好的鲁棒性。

5 结论

本文首次尝试将结构信息整合到深度聚类中。提出了一种新的结构化深度聚类网络,包括DNN模块、GCN模块和双重自监督模块。我们的模型能够有效地将自动编码器的特定表示与GCN的特定表示相结合。通过理论分析,证明了该方法传递算子的有效性。我们的结果表明,在各种公开数据集中,我们提出的模型始终优于最先进的深度聚类方法。

猜你喜欢

转载自blog.csdn.net/weixin_44934424/article/details/108346277