TL;DR
这篇论文针对属性图聚类问题提出了自适应的图卷积方法 AGC,主要想法是运用高阶图卷积来捕获图的全局簇结构特征,并且可以对不同的图来自适应地选择合适的阶数。实验部分在不同的基准网络数据集中验证了 AGC 的效果优于当前的 baseline。
给定无向图G=(V,E,X),其中V,E 分别表示节点集合{v1,v2,…,vn} 和边集合,X 表示所有节点的特征矩阵X=[x1,x2,⋯,xn]⊤∈Rn×d,A 表示邻接矩阵{aij}∈Rn×n。属性图聚类的目标是将图G 中的节点划分到m 个不同的簇中C={C1,C2,⋯,Cm}。
论文的整体工作就是利用 GCN 在属性图中进行社团检测,貌似解决了之前我在学校想解决但是没有解决的问题,这也是看这篇文章的原因。
PS:哎 看完之后好像还是没有解决 看样子是期待太高了。
Algorithm/Model
Graph Convolution
GCN 的背景知识不再赘述,可以参考另一篇博客 图卷积网络 GCN(三)详解三代图卷积网络理论,本文直接从作者对 GCN 的改进说起。
图卷积的公式可以表达为以下形式:
f=Gf
其中f 表示图信号,f 表示过滤后的图信号,可以理解为图节点特征矩阵X 的一列值;G 表示基于拉普拉斯矩阵的一个线性的图滤波器G=Up(Λ)U−1∈Rn×n,其中值表示归一化的拉普拉斯矩阵特征分解矩阵Ls=UΛU−1,Λ=diag(λ1,⋯,λn),U=[u1,⋯,un],p(Λ)=diag(p(λ1),⋯,p(λn)) 表示傅里叶变换的频率响应函数。所以图信号可以使用拉普拉斯矩阵的特征向量为一组基进行表示。
f=Uz=q=1∑nzquq
其中z=[z1,⋯,zn]⊤ 表示这组基的系数,因此图卷积公式可以重写成
f=Gf=Up(Λ)U−1⋅Uz=q=1∑np(λq)zquq
为了过滤掉图中的高频信号并保留低频信号,所以频率响应函数p(⋅) 应该是递减且非负的,作者就设计了一种图的低通滤波器,令p(λq)=1−21λq,📢 注意:拉普拉斯矩阵的特征值范围为 [0,2] 所以才可以定义这种线性函数,所以图滤波器G 的形式变化为
G=Up(Λ)U−1=U(I−21Λ)U−1=I−21Ls
所以对于图中所有节点特征进行卷积的的计算公式可以表示为
Xˉ=GX=(I−21Ls)X
作者指出论文中提出的滤波器和三代图卷积 GCN 的不同点主要在于:GCN 的一阶近似滤波器G=I−Ls,其中p(λq)=1−λq 不是低通滤波的,因为在(1,2] 特征值区间频率响应函数是负的!为什导致负数了呢,难道是近似计算太多导致最后结果都不是图谱卷积? 🤔
思考:重新反思下论文中想法与传统 GCN 的不同点:
- 二代图卷积的思路是使用K 阶多项式来近似表示频率响应函数gθ(Λ)≈∑k=0K−1θkΛk.
- 三代图卷积是直接使用一阶来近似卷积,然后通过训练和堆叠卷积层来达到多阶的效果。
- 传统的图卷积都是通过训练来学习卷积核参数,而论文中直接自定义了低通图滤波器G,即图卷积核参数。
综上,那么最直观地导致结果是论文中提出的方法 node embedding 都不需要训练了,直接通过拉普拉斯矩阵进行 Smoothing 就可以得到 node embedding,厉害厉害 👏
k-Order Graph Convolution
剩下的就是如何使用多阶图卷积来捕获图全局的计算方法了。
根据上述的一阶图卷积,那么k 阶图卷积的计算公式如下
Xˉ=(I−21Ls)kX
对应的图滤波器和频率响应函数为
G=(I−21Ls)k=U(I−21Λ)kU−1
p(λq)=(1−21λq)k
节点特征的k 阶迭代的计算公式如下所示,
xi(0)=xixi(1)=21⎝⎛xi(0)+(vi,vj)∈E∑didjaijxj(0)⎠⎞⋯xi(k)=21⎝⎛xi(k−1)+(vi,vj)∈E∑didjaijxj(k−1)⎠⎞
那么还剩下个问题,如何选择合适大小的k 值呢?在下一节就会讲到。
Clustering AGC
至于聚类方法,论文中采用的是谱聚类将过滤后的特征矩阵Xˉ 划分为m 个簇。
首先通过特征矩阵来计算节点间的距离
K=XˉXˉT
为了使距离矩阵是对称且非负的,因此将矩阵进行对称化
W=21(∣K∣+∣∣∣K⊤∣∣∣)
其中∣⋅∣ 表示将矩阵中的值求绝对值。
根据距离矩阵W 求解m 个最大的特征值然后使用 k-means 算法获得最终的划分结果。
对于论文中的k 阶图卷积还有个关键问题: 如何选择的k 值?,因为k 值太大会导致 over-smoothing 问题。
首先给出 cora 数据集中不同k 值的可视化结果,发现k=12 时分类效果较好。

为了选择合适的k ,论文中选用一个聚类性能指标 簇内距离 来判断,主要意义是可以表示不同聚类C 的效果。计算公式如下图所示
intra(C)=∣C∣1C∈C∑∣C∣(∣C∣−1)1vi=vjvi,vj∈C,∑∥xˉi−xˉj∥2
将k 从 1 进行迭代,论文中找到的是局部最优解,如果intra(C) 开始增大时就停止迭代,因为好的聚类结果是簇内距离小而簇间距离大。
怎么说呢?这个指标就类似图聚类中模块度 Modularity,根据指标度量聚类效果从而选择最好参数k。
好像有什么不对的地方?就像有个量筒我要往里面倒 100 ml 水,本来是想一次性倒完那么可能误差大一点;那现在我倒很多次,每次倒一下看看是不是到了 100 ml,不够就再加。😔
整体算法步骤可以描述如下

Experiments
数据集采用了四个经典属性图网络 Cora,Citeseer,Pubmed,Wiki,实验效果如下所示

还展示了不同k 值对聚类性能的影响。

Thoughts
- 论文中自定义了一种低通滤波图卷积核并通过理论分析其合理性,优势很明显是模型不需要训练,但也存在一些问题。
- 节点原始特征经过论文定义的图卷积 AGC,节点特征维度并没有任何变化,因此就不太适用于高维度特征图,但是低维度的图可以尝试下。
- 对于图聚类中簇数量如何选择这个根本问题还是没有解决。
