聚类论文详解:Structral Deep Clustering Network

682 阅读5分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第9天,点击查看活动详情

这篇文章我们接着解析深度聚类论文,那么本次论文为《Structral Deep Clustering Network》结构化深度聚类,这篇论文涉及到的数学知识还是蛮多的,所以,大家在看本论文之前也可以先去了解相关的数学知识,例如 KL散度、学生t分布、点积相似度的计算。

论文创新点

(1)论文动机

那么我们先说一下作者写这篇文章的动机,也就是说作者这篇文章是为了优化聚类算法中的哪一部分。

作者认为,现有的深度聚类通常只关注数据自身的特性,即从数据本身中提取有用的表示,在学习表征时很少考虑数据的结构,例如自编码(AE, 一种利用反向传播算法使得输出值等于输入值的神经网络,它先将输入压缩成潜在空间表征,然后通过这种表征来重构输出);而图卷积神经网络(GCN)同时对图结构和节点属性进行编码,基于GCN的图数据聚类方法通过重构图的邻接矩阵来保持数据间的结构,但不能充分利用数据特征的信息。基于此,作者认为如果模型可以同时考虑到数据本身的特性个结构信息,那么此算法的精度会更高。

(2)论文创新点

提出一种结构化深度聚类网络(SDCN),充分利用数据本身的特性和结构信息,即将AE学习到的表示转移到相应的GCN层,设计一个双重自监督机制,将两种不同的深层神经结构统一起来,然后通过KL散度引导整个模型的更新。

SDCN模型

image.png 从这个图中我们看出,SDCN模型包括三个部分:深度神经网络模块(DNN)图卷积神经网络模块(GCN) 以及双重自监督模块(Dual Self-Supervised Module)。那么下面我们具体讲述下这三个模块以及初始化模块之前的数据预处理方式。

(1)KNN Graph

为了引入数据之间的结构信息,初始化模型参数前,先基于原始样本数据计算相似度矩阵S,可以构造一个K最近邻图,作为GCN模块的输入。那么相似度矩阵S的计算有以下两个方法:

  • 对于图像等连续数据,使用Heat Kernel:

image.png

  • 对于离散数据,使用点积相似度:

image.png

(2) DNN Module

使用基本的自编码器结构来学习原始数据的表示\

  • 编码器encoder:

image.png

  • 解码器decoder:

image.png

那么损失函数就是解码器的重构数据(输出)和原始数据之间的误差:

image.png

(3)GCN Module

将自编码器学到的特征表示传递给GCN模块后,GCN学习到的表示将能够适应两种不同类型的信息,即数据本身和数据之间的关系。通过以下卷积运算可获得GCN的第L层学习到的表示ZlZ^l

image.png

其中,image.png是指对称归一化邻接矩阵(邻接矩阵乘以它度矩阵的逆)。

为了将两个表示结合在一起,论文定义了一个传递算子:

image.png

然后使用这个算子的值作为第L层的输入,那么表示ZlZ^l:

image.png

(4)Dual Self-Supervised Module

自编码器主要用于数据表示学习,是一种无监督的学习场景,而传统的GCN是在半监督学习中使用的,它们都不能直接用于聚类问题,所以论文中提出一种双重自监督模块,作用是:

  1. 可以引入聚类信息来指导模型学习更好的数据表征;
  2. 指导深度神经网络模块和图卷积模块更新。

DNN的优化
具体来说,对于自编码器学到的数据表示 hih_i, 我们利用Student’s t分布作为一个核来衡量数据表示 hih_i 和聚类中心向量 uiu_i 之间的相似性:

image.png

在获得聚类分布 Q=qijQ=q_ij 后,我们希望数据表示可以更加接近聚类中心,从而提高聚类结果的内聚性,因此设计了目标分布P:

image.png

在目标分布P 中,对Q中的每个分配都进行平方和归一化,以使得每个分配都可以获得更高的置信度,然后引入KL散度作为损失函数来进行优化:

image.png

我们通过最小化 Q分布 和 P分布 之间的 KL散度,Q分布 会逐渐向 P分布 靠近,以此来达到提升聚类结果的内聚度的效果。

GCN的优化
对于图卷积模块的训练,一种较为直观的方式是将聚类的结果作为真实标签进行分类训练,但是这种策略会带来噪声以导致整个模型的崩溃。所以我们用目标分布P作为监督信息来指导分布Z的更新:

image.png

之所以使用KL散度,是因为与传统的多分类损失函数相比,KL散度会以更“温和”的方式更新整个模型,以防止数据表征受到严重干扰。

图卷积模块和深度神经网络模块统一在同一优化目标中,使得两个模块的结果在训练过程中趋向于一致。因为深度神经网络模块和图卷积模块的目标是近似目标分布P,而且两个模块之间有很强的关系,所以我们称之为双重自监督机制。

SDCN损失函数

SDCN模型的整体损失函数为:

image.png

其中,image.png是平衡原始数据聚类优化和局部结构保存的超参数, image.png是控制图卷积模块对嵌入空间干扰的系数。通过对这个损失函数的优化,我们可以用端到端的方式更新整个模型。

总结

这篇论文用到的数学知识还是比较多的,感兴趣的读者可以再精读论文,那么涉及到的数学知识如下:

  • 自编码器的相关知识
    denoising autoencoder/ convolutional autoencoder/ adversarial autoencoder
  • 随机变量的几种分布
    正态分布、泊松分布、二项分布、Student’s t分布
  • KL散度