综述 图神经网络时代的深度聚类

本文综述了图神经网络在深度聚类领域的应用,介绍了DAEGC、SDCN、AGC和EGAE-JOCAS等模型。这些模型利用图自编码器和GNN学习任务导向的节点表示,提升聚类效果。DAEGC通过自训练增强聚类内聚性,SDCN结合DNN与多层GNN捕获特征和结构信息,AGC自适应选择图卷积阶数,EGAE-JOCAS结合K-Mean和谱聚类实现联合聚类。实验表明,这些方法在多个数据集上取得了显著的性能提升。
摘要由CSDN通过智能技术生成

作者:纪厚业

单位:北京邮电大学

研究方向:图神经网络和推荐系统

Introduction

聚类作为经典的无监督学习算法在数据挖掘/机器学习的发展历史中留下了不可磨灭的印记. 其中,经典的聚类算法K-Means也被选为数据挖掘十大经典算法. 随着深度学习的兴起,一些工作尝试将深度学习技术(如Autoencoder)引入到传统聚类算法中,也取得了不错的效果.

近些年,图神经网络已经成为深度学习领域最热门的方向之一, 也在推荐/自然语言处理/计算机视觉等很多领域得到了广泛的应用.

那么,能不能利用图神经网络强大的结构捕获能力来提升聚类算法的效果呢? 本文梳理总结了图神经网络赋能的深度聚类算法,供大家参考.

Models

19IJCAI Attributed Graph Clustering: A Deep Attentional Embedding Approach

Motivation

本文认为之前的深度聚类算法都是two-step的: 首先学习数据的特征表示embedding,然后基于特征表示进行数据聚类. 这样所学习的数据embedding并不是任务导向的. 那么,如果能够在学习embedding的过程中,针对聚类任务做一些针对性的设计,那么学习到的embedding自然可以实现更好的聚类.

针对上述问题,本文提出了一种聚类导向的深度算法Deep Attentional Embedded Graph Clustering (DAEGC). DAEGC一边通过图神经网络来学习节点表示,一边通过一种自训练的图聚类增强同一簇节点之间的内聚性.

下图清晰的展示two-step和本文所提出的DAEGC的差异.

image-20200303212938360

Model

下图展示了DAEGC的模型框架

image-20200303214225852

可以看出,整个DAEGC主要包含两大模块:带有注意力机制的图自编码器+自训练聚类.

带有注意力机制的图自编码器

这里就是经典的GAE架构:通过对邻居的聚合来学习节点表示,然后利用节点对的内积来重构原始网络结构. 比较有特色的部分就是结合注意力机制来学习邻居的权重, 这样可以更好的学习节点表示.

下式展示了融合注意力机制的GAE是如何聚合邻居信息来更新节点表示的.本质上就是对邻居的加权平均.
z i l + 1 = σ ( ∑ j ∈ N i α i j W z j l ) z_{i}^{l+1}=\sigma\left(\sum_{j \in N_{i}} \alpha_{i j} W z_{j}^{l}\right) zil+1=σjNiαijWzjl
其中, z i l , z i l + 1 z_{i}^{l},z_{i}^{l+1} zil,zil+1分别是聚合邻居信息前后的节点 i i i的表示, N i N_{i} Ni代表节点 i i i的邻居集合, α i j \alpha_{ij} αij表示了节点对 ( i , j ) (i,j) (i,j)之间的注意力权重.

有了节点表示后, GAE可以通过计算节点对的内积来重构原始网络结构,进而实现无监督的节点表示学习.
A ^ i j = sigmoid ⁡ ( z i ⊤ z j ) \hat{A}_{i j}=\operatorname{sigmoid}\left(z_{i}^{\top} z_{j}\right) A^ij=sigmoid(zizj)
其中, A ^ i j \hat{A}_{i j} A^ij可以理解为节点对 ( i , j ) (i,j) (i,j)间存在边的概率.最后,通过经典的AE重构损失 L r = ∑ i = 1 n loss ⁡ ( A i , j , A ^ i j ) L_{r}=\sum_{i=1}^{n} \operatorname{loss}\left(A_{i, j}, \hat{A}_{i j}\right) Lr=i=1nloss(Ai,j,A^ij)就可以对GAE进行训练.

自训练聚类

GAE所学习到的节点表示只是为了更好的重构网络结构,和聚类并没有直接联系.自训练聚类模块就是对GAE所学习到的embedding进行约束和整合,使其更适合于聚类任务. 假定聚类中为 μ u \mu_{u} μu, 那么节点 i i i属于某个类别的概率 q i u q_{i u} qiu, 如下式所示:
q i u = ( 1 + ∥ z i − μ u ∥ 2 ) − 1 ∑ k ( 1 + ∥ z i − μ k ∥ 2 ) − 1 q_{i u}=\frac{\left(1+\left\|z_{i}-\mu_{u}\right\|^{2}\right)^{-1}}{\sum_{k}\left(1+\left\|z_{i}-\mu_{k}\right\|^{2}\right)^{-1}} qiu=k(1+ziμk2)1(1+ziμu2)1
这里, q i u q_{i u} qiu可以看作是节点的分配的分布. 进一步的, 为了引入聚类信息来实现聚类导向的节点表示, 我们需要迫使每个节点与相应的聚类中心更近一些,以实现所谓的类内距离最小,类间距离最大.因此,我们定义了如下的目标分布:

p i u = q i u 2 / ∑ i q i u ∑ k ( q i k 2 / ∑ i q i k ) p_{i u}=\frac{q_{i u}^{2} / \sum_{i} q_{i u}}{\sum_{k}\left(q_{i k}^{2} / \sum_{i} q_{i k}\right)} piu=k(qik2/iqik)qiu2/iqiu
在目标分布中, 通过二次方 q i u q_{i u} qiu可以实现一种"强调"的效果(二次方后, 分布会变得更加尖锐,也更置信). 在训练过程中,分布 p p p实际起到了一种标签的效果. 最后,通过计算两个分布之间的KL散度,来实现互相约束,也就是所谓的自训练.
L c = K L ( P ∥ Q ) = ∑ i ∑ u p i u log ⁡ p i u q i u L_{c}=K L(P \| Q)=\sum_{i} \sum_{u} p_{i u} \log \frac{p_{i u}}{q_{i u}} Lc=KL(PQ)=iupiulogqiupiu
综合起来,模型最终的损失函数为
L = L r + γ L c L=L_{r}+\gamma L_{c} L=Lr+γLc
节点 i i

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值