Structural Deep Clustering Network
Structural Deep Clustering Network
整个模型大概包括三部分:深度神经网络模块,图卷积模块和双重自监督模块。
这篇文章写的是聚类算法,但是值得学习的是:它利用传输因子将深度神经网络模块和卷积模块融合
深度神经网络模块主要是利用自编码器学习数据自身的特性,损失函数为解码器的重构数据和原始数据之间的误差:
图卷积模块主要是将图卷积层学到的GCN特定表征和自编码器学到的特征表征进行结合,然后通过在KNN图上进行传播学习到结构信息。
与标准图卷积层不同,我们的图卷积模块为了同时学习到GCN的表征和自编码器的表征,引入了一个传递算子,它将两个表征进行加权求和:
双重自监督模块主要有两个作用,一是引入聚类信息来指导模型学习更好的数据表征;二是指导深度神经网络模块和图卷积模块的更新。具体来说,对于自编码器学到的数据xi的表征hi,我们利用Student’s t分布作一个核来衡量数据表征xi和聚类中心uj的相似性:
在获得聚类分布Q之后,我们想要引入聚类信息来指导模型学习更好的数据表征,具体来说,我们想要让数据表征更紧密的围绕在数据中心周围,以此来提高聚类结果的内聚性,为此我们设计了目标分布P:
引入KL散度作为损失函数来进行优化:
通过最小化Q分布和P分布之间的KL散度,Q分布会逐渐向P分布靠近,以此来达到提升聚类结果的内聚度的效果。
对于图卷积模块的训练,一种较为直观地方式是将聚类的结果作为真实标签进行分类训练,然而,这种策略会带来噪声和平凡解,并导致整个模型的崩溃。受到聚类损失函数的启发,我们将目标分布P作为监督信息来指导分布Z的更新:
该目标函数有两个优点:(1)与传统的多分类损失函数相比,KL散度以更“温和”的方式更新整个模型,以防止数据表征受到严重干扰;(2)图卷积模块和深度神经网络模块统一在同一优化目标中,使其两个模块的结果在训练过程中趋向于一致。因为深度神经网络模块和图卷积模块的目标是近似目标分布P,而且两个模块之间有很强的关系,所以我们称之为双重自监督机制。
整个模型的整体损失函数为:
α是平衡原始数据聚类优化和局部结构保存的超参数,β是控制图卷积模块对嵌入空间干扰的系数。通过对这个损失函数的优化,我们可以以端到端的方式更新整个模型。
备注:参考https://zhuanlan.zhihu.com/p/107648120