基于深度学习的聚类综述
2022-05-07董永峰邓亚晗王雅琮
董永峰,邓亚晗,董 瑶*,王雅琮
(1.河北工业大学人工智能与数据科学学院,天津 300401;2.河北省大数据计算重点实验室(河北工业大学),天津 300401;3.河北省数据驱动工业智能工程研究中心(河北工业大学),天津 300401)
0 引言
聚类任务是机器学习、计算机视觉、数据压缩等领域的一个基本问题。传统聚类方法已经发展得较为成熟,但人类活动的几何式增加导致存储的数据量及复杂性提升,数据之间的连接以及数据本身的特征也变得愈发复杂,聚类任务的难度也随之提升,面临着计算复杂度高、降维效果差、聚类效果下降的问题。数据的意义不仅在于数据本身,更在基于数据之上所进行的一系列分析活动,帮助人们发掘潜在信息,产生有价值的深层信息。
近年来,深度学习得益于强大的特征的提取和表示能力,它与聚类任务的结合受到了广泛的关注,基于深度学习的聚类,也称深度聚类(Deep Clustering,DC)逐渐兴起。DC本质上是通过深度学习强大的表示能力来提升聚类结果的一类较为领先的聚类方式,关键在于抽取数据的表达——要求既能利用神经网络学习适宜聚类的数据的低维表达,又能够体现原数据的信息特征及结构特征,从而实现更好的聚类效果。文献[1]在传统聚类的发展基础上对大数据聚类和小数据聚类进行了分析与总结,文献[2]则结合近些年的发展,总结了深度聚类早期一些卓有成效的代表性算法,但其缺乏对于图神经网络(Graph Neural Network,GNN)的深度聚类的研究。随着人工智能技术的不断渗透,GNN 的机器学习越来越受到研究者和实践者的关注,且在分类、聚类、链接预测等任务中的应用越来越广泛。本文以提取聚类特征的不同网络结构为标准,介绍基于自动编码器(AutoEncoder,AE)、基于损失的深度神经网络(Deep Neural Network,DNN)、基于生成对抗网络(Generative Adversarial Network,GAN)、基于变分自动编码器(Variational Auto-Encoder,VAE)、基于GNN 的深度聚类五类不同方法,特别研究基于GNN 的深度聚类方法,归纳为基于结构化和多视角的GNN的深度聚类。在此基础上,总结归纳深度聚类的存在问题、评价指标、应用领域及后续研究方向。
1 深度聚类方法
聚类方法的发展和研究为深度聚类的产生提供了强有力的铺垫。得益于深度学习强大的非线性映射和特征提取能力,近年来,将深度学习应用于聚类的方法成为了一个研究的趋势。深度聚类根据提取特征的网络结构可以分为基于AE、基于损失的DNN、基于GAN、基于VAE、基于GNN 五大类,如表1 所示。
表1 深度聚类算法总结Tab 1 Summary of deep clustering algorithms
1.1 基于AE的深度聚类
AE 是无监督表示学习中最重要的算法之一,由Rumelhart 于1986 年首次提出。它是一种典型的无监督式机器学习方法,能够有效地训练映射函数,尽可能保证编码层与重构层的误差达到最小。由于隐藏层的维度通常比输入数据的维数更小,它可以帮助找到数据最显著的特征。
AE 主要由编码器和解码器两部分组成,其整体结构如图1 所示。输入层与输出层维数相同,隐藏层维数小于输入层及输出层。从输入层映射到隐藏层的编码器h
=f
(x
)用来映射原始的数据x
到隐藏层表示h
;解码器y
=g
(h
)用来生成重构表示,且要求重构后的数据尽可能地接近原始数据x
,一般取Sigmoid 作为解码器的激活函数。图1 显示了在基于AE 的深度聚类中,损失函数由两部分构成:横向得出的重构损失L
保证了网络可以强制学习到原始数据的可行表示;纵向得出的聚类损失L
是隐藏层在聚类任务中造成的损失。因此基于AE 的聚类整体损失函数为:图1 基于AE的深度聚类Fig.1 Deep clustering based on AE
DEN(Deep Embedding Network)是一个较为经典的基于AE 的深度聚类模型。该模型利用AE 学习隐藏表示,应用局部保留约束保留原始数据的局部结构属性,与结构损失共同进行优化,提升了聚类效果。
AE 最大的优势就是几乎可以与任何聚类方法相结合,普适性较高且简单易行;但是,由于编码器的对称结构,其网络的深度限制了计算的可行性;此外,平衡聚类损失和重构损失的参数λ
也需根据实际应用的不同需求,依赖人工进行调节。1.2 基于损失的DNN的深度聚类
神经网络是受到生物神经元间的链接方式的启发而出现的,逐渐发展为卷积神经网络(Convolutional Neural Network,CNN)。如图2 所示,一个完整的CNN 一般由输入层、卷积层、池化层、全连接层和Softmax 层5 部分组成,深度聚类任务与其结合时可以只考虑聚类损失。
图2 CNN与聚类的结合Fig.2 Combination of CNN and clustering
随着研究的深入,深度卷积神经网络(Deep CNN,DCNN)在保留神经网络的层级结构的基础上,在层的功能和形式上进行变化,通过局部感知、共享权值、池采样等方式充分利用数据的局部特性优化网络结构,与聚类任务再次结合时,效果得到了进一步提升。这类DNN 同样可以只利用聚类损失去训练网络,其中使用的网络可以替换为全卷积神经网络(Fully Convolutional Neural network,FCN)或深度置信网络(Deep Belief Network,DBN)等。
因为该类深度聚类的损失均由聚类产生,因此它的损失函数为:
由于不像AE 一样存在重构损失,应着重设计聚类任务与网络的适配性,使得神经网络提取的数据特征更加适应聚类任务的需求。当提取的特征数据簇间区别不大时,聚类损失会大幅度减小,这对于深度聚类实际使用是十分不利的。
针对这个问题,可以从网络初始化进行改善,获得适宜聚类的数据。根据网络初始化方式的不同,可分为无监督的预训练,如DEC(Deep Embedded Clustering);有监督的预训练,如CCNN(Clustering CNN);随机初始化,如DAC(Deep Adaptive Clustering)。
基于损失的DNN 的深度聚类优势在于,因为它只针对聚类损失进行优化,所以网络的深度不受限制。通过有监督的预训练可以促使网络提取出更多显著特征,优化聚类效果,从而能够对大规模图像数据集进行聚类。
1.3 基于GAN的深度聚类
GAN 是一种生成式学习框架,由一组生成器和鉴别器组成,它的原理是在生成网络G
和鉴别网络D
这两个神经网络之间建立了一个最小最大的对抗性博弈,目标是实现发生器和鉴别器之间的平衡。其结构如图3 所示,生成网络将随机噪声z
作为输入,输出生成的伪造数据G
(z
)。鉴别网络的输入为真实数据x
或生成数据G
(z
),输出其来自真实数据的概率,即让鉴别网络试图根据数据分布计算输入是真实样本的概率。图3 GAN的结构Fig.3 Structure of GAN
GAN 的目标表述如下:
InfoGAN(Information maximizing GAN)在GAN 框架的基础上,可以分解离散的和连续的潜在因素,并扩展到复杂的数据集。InfoGAN 在聚类效果上的高效率主要来自最大化噪声变量的固定小子集和观测数据之间的互信息。
基于GAN 的优化算法在基础框架上可以施加多类先验性,使得框架更灵活、更多样化,但它存在模态易崩溃、难以收敛等缺点。
1.4 基于VAE的深度聚类
和GAN 相似,VAE 也是一种强大的生成式学习框架,区别在于VAE 试图最大限度地提高数据对数似然的下限,结构如图4 所示。
图4 VAE的结构Fig.4 Structure of VAE
VAE 的整体结构上类似于AE,都含有编码与解码的过程,但本质上并不相同。VAE 的强大之处在于它引入了神经网络以适应条件后验,通过变分下界的重新参数化得到一个下界估计器,该估计器可以使用标准随机梯度方法直接优化,可用于几乎任何具有连续潜在变量的模型中的有效近似后验推断。VAE 的目标函数表述为:
q
(z
|x
)是一个概率编码器,p
(x
|z
)是一个概率解码器。q
(z
|x
))利用深度网络来实现,而隐藏层z
本身服从高斯分布,可以理解为让生成网络(编码器)部分的输出尽可能服从高斯分布,这也是VAE 与AE 的区别,AE 中的隐藏层则没有分布要求。除此以外,AE 只能重构输入数据,而VAE 可以生成含有输入数据特征与参数的新数据。GMVAE(Gaussian Mixture VAE)和VaDE(Variational Deep Embedding)均是在VAE 的基础上,优化了观察样本x
的生成,进而提升了聚类的效果。总的来看,VAE 施加了高斯混合模型先验,保证了理论上的优势,但是其计算复杂度较高。
1.5 基于GNN的深度聚类
传统的深度学习方法在提取欧氏空间数据的特征方面取得了巨大的成功,但许多实际应用场景中的数据是由非欧氏空间生成的。图的复杂性使得现有的深度学习算法在处理聚类问题时面临着巨大的挑战。这是因为图是不规则的,每个图都有一个大小可变的无序节点,图中的每个节点都有不同数量的相邻节点。此外,现有深度学习算法的一个核心假设是数据样本之间彼此独立。然而,对于图来说,情况并非如此,图中的每个数据样本(节点)都会有边与图中其他实数据样本(节点)相关,这些隐藏信息对于聚类任务来说同样重要。
GNN 是一种直接在图结构上运行的神经网络。图数据结构因为其特性——既包含信息,又包含信息间的关联结构,是近几年在各个领域广泛使用的信息量最大、但也最具挑战性的数据结构之一。在传统的聚类任务中,深度聚类的算法都遵循先学习特征表示再进行聚类的步骤,因此聚类效果并不理想,且学习到的特征表示也并非任务导向的。基于GNN 的深度聚类可以在GNN 的基础上,一边学习特征节点的表示、一边充分利用图中信息以及图本身的结构,以自训练的方式增强图聚类的内聚性,是提升聚类的有效方式。
1.5.1 结构化的GNN的深度聚类
现有的许多GNN 的深度聚类方法主要是利用图的结构化数据,使划分出的每个簇实现内部的紧密结构,专注于处理图的结构信息,但这些方法没有充分利用GNN 中的节点特征信息。这些方法的经典代表包括基于归一化切割、模块化和结构密度的聚类。
若将经典的聚类方法,如K
-Means 等,直接应用于深度聚类,大多情况下只能专注于处理图的数据信息,却没有充分利用图的结构信息,致使聚类结果依旧不够理想。基于GNN 的深度聚类方法应同时利用图的结构信息和内容信息,考虑结构相似性和节点属性相似性,生成具有内聚结构和同构节点属性的簇。文献[19-23]在不单纯地处理图的结构信息的同时,又考虑了图的节点信息、特征信息,并将聚类的结果与特征信息的提取通过神经网络进行反复优化,形成了结构化GNN 的深度聚类。1.5.2 多视角的GNN的深度聚类
GNN 的深度聚类大部分结构化算法仅适用于单视图数据,即首先将数据集中的所有视图连接合成为单视图,再在该单视图上采用结构化聚类算法,但这样也无法更好地提高聚类性能,因为每个视图都具有其数据上特定的统计特性,所以该方式在物理上没有意义。由此,多视角聚类(Multi view Clustering,MvC)通过对不同视图的多样性和互补性的结合,作为一种更加先进、全面的深度聚类方式受到越来越多学者关注。表2 介绍了多视角聚类的一些典型算法,可以与GNN 进行结合,优化聚类效果。
表2 经典多视角聚类算法的优缺点比较Tab 2 Advantage and disadvantage comparison of classical multi-view clustering algorithms
2 深度聚类目前存在的问题
2.1 聚类输入环境较差
机器学习的成功很大程度上取决于数据的质量,但是高质量的标记数据通常难以获得,尤其是对于训练参数较多的模型。
为了解决标注数据较少的问题,一个常规的做法是进行自监督的预训练,使得模型能从无标注数据里学得数据的信息,作为初始化数据提供给下游的聚类等任务中。Hu 等提出了GPT-GNN(Generative Pre-Training of GNN)模型,该模型用生成模型来对图分布进行建模,逐步预测出一个图中的新节点会有哪些特征,与哪些节点相连。作者将每个节点的条件生成概率分解为特征生成及图结构生成,确保图结构及图信息的完整性。特别地,对于预训练中避免信息泄露、大图处理及增加负样本采样的准确性均做了相应的模型设计。
为了改善聚类步骤的输入数据,Lim 等改进了Song等提出的方法,提出了一种带距离的VAE(VAE with Distance,VAED)。VAED 将AE 的距离误差函数的输入从潜在空间中的点转变为概率分布,并且应用距离误差函数将VAE 和高斯混合模型(Gaussian Mixed Model,GMM)进行优化,再利用贝叶斯GMM 改进了聚类结果,使得更多隐藏变量和超参数可以更好地在K
-Means 方法中捕捉潜在空间。2.2 无监督学习效率较低
在深度学习与传统聚类进行结合的时候,需要对传统的聚类方法进行适当的改进,以解决无监督学习效率低的问题。
Huang 等对于需要特定的聚类任务,提出一种深度子空间聚类框架,联合嵌入神经网络的提取特征进行子空间学习。该框架包含AE、自我表达层和监督竞争特征学习三个模块。为了达到最佳的聚类结果,作者首次提出使用一个Softmax 函数(软标签)来预测样本的聚类效果,并提出联合最小损失函数,竞争监督聚类效果。利用软标签去近似目标置信分配,引导模型在每次迭代中学习任务的目标表示。
不同于以上通过软标签来预测聚类效果的监督学习方法,Falcon 等研 究 了对比自监督学习(Contrastive Selfsupervised Learning,CSL)的优势,并提出了一个描述CSL 方法概念框架,它包含数据扩充管道、编码器选择、表示提取、相似性度量和损失函数五个方面。本文借此设计了YADIM(Yet Another variant Deep InfoMax)模型来展示其框架的实用性,在CIFAR-10、STL-10 和ImageNet 上都取得了更好的结果,并且使得编码器的选择和表示提取策略更有鲁棒性。
Kang 等则基于半监督分类算法提出了一种图的学习框架SGMK(Structured Graph learning framework with Multiple Kernel),通过考虑秩约束——如果有c
个簇或c
个类,则得到的图将恰好有c
个连通的组件来保存数据的局部和全局结构。该框架能从数据中自适应地学习相似图和标签,但时间复杂度仍然较高。为了达到深度聚类的无监督学习的目的,Zhu 等在没有监督的情况下,直接从图数据的属性和结构中学习区分特征,提出了一种无监督感知GNN 模型CAGNN(Cluster-Aware GNN)。其主要思想是在节点上执行聚类,并通过预测聚类分配来更新模型参数。作者细化了图的拓扑结构,通过加强类内边缘和基于类的标签减少不同类之间的节点连接,更好地保留了嵌入空间中的类结构。
2.3 图信息处理不当
以下两个问题主要针对GNN 的深度聚类提出:
为了解决图隐藏信息抽取不全的问题,Wang 等提出了以目标为导向的深度学习算法DAEGC(Deep Attentional Embedded Graph Clustering),该算法由图注意力网络自动编码器和自训练聚类两部分构成。第一次提出基于图注意力的AE,通过衡量每个节点的邻居来学习每个节点的隐藏表示,将属性值与潜在表示中的图结构结合起来。同时,为了解决无监督的图聚类任务所学习到的嵌入是否达到最优化的问题,作者除了优化重构误差外,还将隐藏的嵌入内容输入到自优化聚类模块中,降低聚类损失,帮助AE 利用嵌入自身的特征和分散嵌入点来操纵嵌入空间以获得更好的聚类性能。
Jia 等为了解决图中邻居信息重复聚集导致计算低效的问题,提出了层次聚合计算图搜索算法HAG(Hierarchically Aggregated computation Graph),该算法是新的GNN 表示形式,提出通过分层管理中间的聚合结果来避免信息冗余,从而消除不必要的计算及数据传输;引入了一个精确的成本函数来定量评估不同HAG 的运行时性能,并使用新颖的HAG 搜索算法来查找最优的HAG,使得最终结果大幅优于传统GNN 的表示。
2.4 图结构信息丢失
为了解决数据结构被忽略的问题,Bo 等受到图卷积网络(Graph Convolutional Network,GCN)成功编码图结构的启发,提出了一个结构化的深度聚类网络(Structural Deep Clustering Network,SDCN)算法,该算法由K
NN 模块(有监督学习的K
近邻的机器学习算法模块)、DNN 模块(AE 学习模块)、GCN 模块(图卷积模块)以及双重自我监督模块构成。作者在该算法的GCN 模块中引入了一个传递算子,将表征进行加权求和,然后再传入标准图卷积层中学习结构信息,从而为AE 中每一层学习到的表征都加入结构信息,同时保留AE 学习数据自身特性的作用。与SDCN 算法类似,Zhang 等则提出一种属性图聚类的自适应的图卷积(Adaptive Graph Convolution,AGC)算法,利用了多层GNN 来提升聚类的效果。主要提出了自适应的k
阶图卷积,当类内距离开始变小时,停止搜索并确定k
值,达到自适应的目的。与SDCN 不同的是,AGC 是从图信号处理谱图理论的角度来理解GNN 并增强了聚类效果,优势在于AGC 可以自适应地确定阶数k
,而SDCN 则需要手动指定权重及阶数。3 深度聚类评价指标
目前对于深度聚类的评价指标,主要使用以下常用的关键评价指标:准确率(Accuracy,Acc)、标准互信息(Normalized Mutual Information,NMI)、调整互信息(Adjusted Mutual Information,AMI)、兰德指数(Rand Index,RI)和调整兰德指数(Adjusted Rand Index,ARI)。
准确率定义如下:
y
是真标签,c
是算法生成的聚类赋值,m
是一个赋值与标签之间一对一的映射函数。NMI 定义如下:
MI
(X
,Y
)为变量X
、Y
间的互信息,H
(X
)为变量X
的熵。AMI 定义如下:
MI
(X
,Y
)]为互信息MI
(X
,Y
)的期望。RI 定义如下:
TP
表示两个同类样本在同一簇中的数量,TN
表示两个非同类样本在不同簇中的数量,TP
、TN
代表正确的聚类决策;FP
表示两个不同类样本在同一簇中的数量,FN
表示两个同类样本在不同簇中的数量,FP
、FN
代表错误的聚类决策。RI
的取值范围为[0,1],值越大代表聚类结果与真实情况越吻合。但因RI
无法保证随机划分的聚类结果的值接近0,因此产生了ARI
,取值范围为[-1,1],值越大代表聚类越好。4 深度聚类应用方向
深度聚类早期主要应用于图像的识别,但随着其技术的逐步成熟,短短几年内就推广到了各个领域,并均有了较好的效果。深度聚类目前主要应用在识别检测、图像处理、事件分析、数据预测、优化处理等。
4.1 识别检测
深度聚类可以完成对目标的识别与检测,如对混凝土结构施工与使用过程中产生的裂缝进行识别。通过将裂缝图片应用到卷积神经网络中,除去图片的噪点,进行裂缝特征的提取与学习,再结合聚类的方法,对图片进行分割、再进行识别、分类,可以实现复杂背景下混凝土表面裂缝图像的精准识别,为该结构的维护、保养和安全检测提供了一定的参考依据。
4.2 图像处理
图像处理是聚类任务的经典应用,Xie 等提出了一种新的深度多视图联合聚类框架,该框架可以同时学习图像中的多个深度嵌入特征、多视图融合机制和聚类分配。通过联合学习策略,可以有效地利用聚类友好的多视图特征和有用的多视图互补信息,提高聚类性能。
4.3 事件分析
在事件分析中,可以利用深度聚类对微博情感、地震特征、社会事件、学术论文等具体事例进行内容分析。
利用深度聚类也可以对语音通话内容进行分析。当有多人同时说话时,如何将这些人声区分开来的问题,被称为鸡尾酒会问题。电力调度通信系统中,通话双方的语音内容被存储在单个录音文件中,基于注意力机制的深度聚类网络可以很好地解决通话双方的人声区分问题。当多个麦克风可用时,可以利用空间信息来区分来自不同方向的信号。因此将语音光谱和空间特征结合在一个深度聚类框架中,同时利用光谱和空间的互补信息来改善语音分离。在深度聚类过程中,即使是在随机传声器阵列的情况下,简单地将传声器间相位模式编码为附加的输入特性,就可以显著提高语音分离性能。
4.4 数据预测
深度聚类同样可以应用于数据预测任务。现有集群预测方法并未考虑集群内各风电场数值天气预报信息在时间序列上的差异性波动,杨子民等据此提出了基于天气过程动态划分的风电集群短期功率预测方法,首先对每份子样本分别进行深度聚类与划分,构建训练集,再通过双向长短期记忆人工神经网络对各子集群进行功率预测。
4.5 优化处理
利用深度聚类的优势,可以进对视频图像、社区网络和多频网络进行优化。如针对网络社区发现这一具体应用场景,李亚芳等提出结合社区结构优化进行节点低维特征表示的深度自编码聚类模型CADNE(Community-Aware Deep Network Embedding),该模型通过保持网络局部及全局链接的拓扑特性学习节点低维表示,然后利用网络聚类结构对节点低维表示进一步优化,同时学习节点的低维表示和节点所属社区的指示向量,使节点的低维表示不仅保持原始网络结构中的拓扑结构特性,而且保持节点的聚类特性。
5 结语
基于深度学习的聚类目前取得了一定的进展,已成为深度学习与机器学习结合的有效范本,在很多公开数据集上都达到了较为良好的性能,故下一步研究可以从以下几个方面入手:
1)无论使用哪种深度聚类方法,首先需要解决的是数据的问题。面对不同的应用问题需要使用不同的模型,而能否通过数据的预处理,或者在特征提取的过程中构造出适宜聚类使用的数据则显得尤为重要。
2)伴随着信息的海量增长,现有的工作依旧面临着聚类过程中计算复杂度高、降维效果差导致聚类效果下降的根本问题。未来可以探索如何依靠无监督、半监督、自监督等方法帮助神经网络进行反复优化,如利用对比学习的方式对数据进行更好的表示学习,或者在复杂问题中通过设计优良的模型架构辅助完成聚类任务的拆解。
3)在GNN 的深度聚类中,如何对图信息以及图结构的性质和特征加以充分利用,仍旧缺乏一个合理的、整体性的解决方法或思想。对如何在大规模的数据集或者跨方向的数据集中充分提取信息的问题,或可以通过构建知识图谱解决。
4)图数据的结构极为不同,具有异构性、动态性,因此如何根据关键的子图结构,解决图的异构性、动态性问题,是值得探索的方向。
本文介绍了近年来深度聚类的方法、归纳阐述了研究过程中普遍存在的问题及应用方向。总的来看,要想得到更好的聚类效果,就要在聚类任务执行前处理得到有效且合适的数据,获得数据精准的特征表达及数据之间的关联,优化所使用的网络模型及聚类方法。