文章链接:https://arxiv.org/abs/2002.01633
源码链接:https://github.com/bdy9527/SDCN
TL;DR
本文提出了一种结构深度聚类网络(SDCN),将结构信息集成到深度聚类中。设计了一个传递算子将autoencoder学习到的表示传递到相应的GCN层,并设计了双重自监督机制来统一这两种不同的深层神经结构并指导整个模型的更新。通过这种方式,从低阶到高阶的多重数据结构,自然地与自动编码器学习到的多重表示相结合。
模型/算法

如图所示。首先构造一个基于原始数据的KNN(K-Nearest Neighbor)图。然后将原始数据和KNN图分别输入到自动编码器和GCN中。将自动编码器的每一层与GCN的相应层连接起来,通过传递操作符将特定于自动编码器的表示集成到结构感知的表示中。用一种双重自我监督机制来监督自动编码器和GCN的训练进度。
kNN Graph
构建KNN图两种常用的方法:
在计算相似矩阵后,选取每个样本的top-K个相似点作为其近邻,构造无向k近邻图。这就可以从非图数据中得到邻接矩阵A。
DNN Module
构造一个有L 层的autoencoder,H(ℓ) 表示 encoder 的第ℓ层:
H(ℓ)=ϕ(We(ℓ)H(ℓ−1)+be(ℓ))
H(0)为原始数据X。
在encoder部分之后是decoder部分,decoder部分也是几个全连接层来重构输入数据:
H(ℓ)=ϕ(Wd(ℓ)H(ℓ−1)+bd(ℓ))
decoder的输出是原始数据的重建误差:X^=H(L),目标函数是:
Lres=2N1i=1∑N∥xi−x^i∥22=2N1∥X−X^∥F2
GCN Module
常规的L 层图卷积网络,最后一层为Softmax多分类层:
Z=softmax(D−21AD−21Z(L)W(L))
Dual Self-Supervised Module
Student’s t-distribution作为内核来衡量数据的表示向量hi和聚类中心向量ui 的相似性:
qij=∑j′(1+∥∥∥hi−μj′∥∥∥2/v)−2v+1(1+∥∥∥hi−μj∥∥∥2/v)−2v+1
hi 是H(L)的第i 行向量,ui 是预训练autoencoder学习到的向量表示的K-means初始化中心。qij表示样本i分配给类别j 可能性。
在获得聚类结果分布Q后,目标是通过学习高置信度赋值来优化数据表示。具体来说,希望使数据表示更接近聚类中心,从而提高聚类的内聚性。因此,计算目标分布P 如下:
pij=∑j′qij′2/fj′qij2/fj
其中fj=∑iqij是soft cluster frequencies。在目标分布P中,Q中的每一个赋值都被平方并归一化,使赋值具有更高的置信度,从而得到如下目标函数:
Lclu=KL(P∥Q)=i∑j∑pijlogqijpij
目标分布P通过最小化Q和P分布之间的KL散度损失,可以帮助DNN模块更好地表示聚类任务,即,使数据表示更接近集群中心。这被认为是一种自我监督机制,因为目标分布P是由分布Q来计算的,而P分布反过来又监督分布Q的更新。
GCN模块也提供一个聚类分配分布Z,因此可以使用分布P对分布Z进行监督:
Lgcn=KL(P∥Z)=i∑j∑pijlogzijpij
整体模型的总损失函数如下:
L=Lres+αLclu+βLgcn
选择分布Z中的 soft assignments 作为最终的聚类结果。因为GCN学习的表示包含两种不同的信息。分配给样本i 的标签为:
ri=jargmaxzij
整体算法流程如下:

Experiment details


联系作者
