图聚类到图卷积神经网络(二)
1、拉普拉斯矩阵的矩阵乘法和特征值的性质
在上一篇文章中,我们介绍了关于图的基础知识,并且介绍了基于拉普拉斯矩阵分解的谱聚类。在本文中我们将集中精力介绍基于图数据的图卷积神经网络。
首先,介绍一下本章节相关的符号系统,对于一个无向无环图,节点数据为,定义度矩阵为,邻接矩阵为。其中邻接矩阵和度矩阵满足关系:
定义拉普拉斯矩阵满足,在上一篇文章中我们已经说明过,拉普拉斯矩阵左乘以一个向量是将与每个中心节点有连接的节点信息汇总到中心节点处。向量左乘拉普拉斯矩阵所得向量的第个元素为:
下面我们利用度矩阵对拉普拉斯矩阵进行标准化,标准化的方式有两种,分别是,,此处我们采用第一种标准化的方法。则向量左乘标准化后的拉普拉斯矩阵的第个元素变为:
依旧是将中心节点,以及与其有连接的节点信息加权汇总到了中心节点处。此外在上篇文章中我们亦有提及,拉普拉斯矩阵是非负定的矩阵,针对二次型运算有:
下面我们给出加权的拉普拉斯矩阵的一点重要性质。
记特征值为,有
【证明】
(1)证明 ,
(2)证明,记,仿照(1)证明有:
即:
得到了标准化后的拉普拉斯矩阵的瑞利商,在上篇文章我们给出了瑞利商的性质:
因此我们证得了标准化后的拉普拉斯矩阵满足非负定,且最大特征值
以上便是关于标准化后的拉普拉斯矩阵的一些矩阵乘法性质、特征值的性质。这些兴致我们都会在定义图卷积神经网络的时候用到。
2、图上的卷积
为什么选择卷积?
卷积神经网络可以抽取局部特征。以CNN为例,对于一规模为5×5的单通道卷积核,其可以在图片上滑动识别一个5×5像素范围的特征,并将局部的特征表现输出中心像素的位置,利用卷积核的平移不变性,其可以遍历全图识别该局部特征。
此外,卷积神经网络可以实现由局部的低级特征到更大范围的高级特征。在多层卷积、same_padding的情境下,每一层的卷积都在将局部的特征汇总到卷积核的中心位置,每经历一层卷积层,信息收集的范围都会扩充,详细的说明可以移步卷积神经网络的相关内容。
以上便是卷积神经网络的两个最重要的优点。
CNN卷积将中心像素周围数据加权汇总到中心像素
首先,回忆一下卷积神经网络上的卷积操作做了什么。在添加了same_padding的卷积操作中,卷积核在图片上移动,将卷积核视野下每个像素的数据与卷积核系数相乘后相加汇总到了一个像素处,就其本质来说是讲一个像素周围的数据经过参数加权求和汇总到中心像素处。这里的权重就是我们卷积神经网络在反向传播的时候要学习的参数。不同的权重组合下倾向于提取不同的信息。
注意到这里的卷积机制像极了前文提到了拉普拉斯矩阵左乘一个向量时候的操作,也是将节点周围的数据汇总到了中心节点处,只不过汇总的权重由邻接矩阵的元素确定。思考一个问题,卷积神经网络的卷积操作可以直接应用到图上么?
非欧式空间的卷积
对于上面的问题的回答是,不能。因为图片的二维卷积或者是文本的一维卷积,都是基于像素之间的空间近邻性质,像素之间规则按照行列和通道排布,可以通过将空间相邻的像素信息汇总到一个像素处,通过卷积核在图片上滑动实现。但是,图数据是典型的非欧式空间数据,节点之间不具有图片一样的空间近邻性。因此要重新定义图上的卷积操作。
问题解决的突破口就在拉普拉斯矩阵上,前文我们再三提及拉普拉斯矩阵可以将中心节点周围的信息加权汇总到中心节点处,这正是我们期待卷积得到的效果。图上的卷积怎么实现?简单说:通过对拉普拉斯矩阵的谱分解,将空域无法进行的卷积转化为频域下实现。
我们定义图上,对向量的卷积为:,其思路如下:
- step1 空域转化为频域
.对标准化后的拉普拉斯矩阵进行相似对角化得,其中为特征向量阵,是频域下对应的一组基,将数据转化到频域为,即将投影到以为坐标系下的坐标情况。 - step2 频域下卷积操作
记卷积核为,由卷积结果为。等价于对各频域的表现赋予了不同的权重,不同的对各频率的权重不同,会从频域数据中抽取不同的特征。 - step3 将卷积结果再转回空域
通过左乘矩阵将数据转为空域下的坐标,得到卷积后的结果
这里我本人有个问题,因为拉普拉斯矩阵和邻接矩阵之间共享特征向量阵,如果我们可以将矩阵相似对角化的特征值和特征向量所表征的网络信息更好的加以区分,便可以更好的说明一些问题。我的理解是,特征向量阵的每个向量表示的是哪些节点之间倾向存在着联系,反映的是网络的局部结构,特征值反映的是这些局部结构的强度情况。这里我们的卷积核扮演了特征对角阵的角色,直观理解便是对不同网络局部结构的信息赋予不同的权重。总结来说,网络结构中的频域即特征向量,是网络中存在的局部结构,特征向量是这些局部结构在网络中的地位或者说信号强度。此外,同一个节点可以在不同的网络结构中,在不同的的特征向量下都有着较大的取值,他们作为网络结构的桥梁节点,在不同的网络结构之间传递信息。如果可以严格证明下这个想法,想必会很有意思。
卷积神经网络总结来说,其实是在网络中依靠网络的拓扑结构,传递信息,搜集信息。逐层深入,使得每个节点的信息不局限于自身,而是和与其相关的节点之间密切相关。点度中心性大的节点,会具备多个网络局部结构的信息。多实践多思考!
3、三类基本的图卷积神经网络结构
- 1、
- 2、
- 3、
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通