本文主要是介绍图神经网络模型介绍(1),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
我们将图神经网络分为基于谱域的模型和基于空域的模型,并按照发展顺序详解每个类别中的重要模型。
1.1基于谱域的图神经网络
谱域上的图卷积在图学习迈向深度学习的发展历程中起到了关键的作用。本节主要介绍三个具有代表性的谱域图神经网络:谱图卷积网络、切比雪夫网络和图卷积网络。
(1)谱图卷积网络
卷积定理:函数卷积的傅里叶变换是函数傅里叶变换的乘积,即F{f*g}=F{f}·F{g}=f^.g^,F{f} 表示f的傅里叶变换得到对应的谱域信号f^。通过傅里叶逆变换F-1, 可以得到如下卷积形式
f*g=F-¹{F{f}·F{g}}。给定一个有n 个节点的图G, 若它的拉普拉斯矩阵L可特征分解为UUT, 对于图信号x, 它的图论傅里叶变换为 F(x)=UTx,图论傅里叶逆变换为F-¹(x)=Ux 。 就得到了图信号x 与一个滤波器g 的卷积操作:
其中,表示元素积(Hadamard Product)。根据这个公式,我们把UTg 整体当 作一个可参数化的卷积核θ,那么我们有:
其中,gθ是对角线元素为θ的对角阵。
总结一下,对于图卷积网络公式(3.3),我们可以将它看成一个图信号x, 进行了如下三个步骤的变换:
(1)将空域的图信号x 进行图论傅里叶变换,得到F(x)=Ux。
(2)在谱域上定义可参数化的卷积核gθ, 对谱域信号进行变换,得到gθUTx。
(3)将谱域信号进行图论傅里叶逆变换,将其转换成空域信号F- ¹(g₀UTx)=
UgθUTx。最终,得到一个简洁的图卷积的形式:
为了将这种图卷积应用到图数据上,我们还需要把上述图卷积的定义从n 维图信号x 扩展到n×d 维的图节点属性矩阵,具体来说,假设在第1层节点状态为 X, 它的维度为n×d,那么我们可以更新节点状态为:
其中,是矩阵的第i列,也就是第i维的图信号;,j对应L层第i维图信号()的卷积核; 如果下一层的节点状态有 n×dL+1 维,那么在这一层就有dL×dl+1个卷积核。图卷积是可以重构出网格上的卷积神经网络的。虽然这个早期的模型为谱域上的图卷积指明了方向,但是它仍有诸多需要改善的地方。让我们看看实现这个神经网络所需要的代价。
(1)我们需要计算出图拉普拉斯矩阵的特征向量,这是一个O(n³) 复杂度的操作(n 为节点数量),可想而知,当图很大的时候计算它是不现实的。
(2)每次向前传递,都要计算U,jUT, 这种矩阵运算是很费时的操作。
(3)每一层都需要n×dL×dL+1个参数来定义卷积核,当图很大时,参数可能过多,计算量大且不容易拟合。
(4)这种谱域卷积方式在空域上没有明确的意义,不能明确地局部化到顶点上。
接下来,介绍两个将谱域图卷积真正推向实用的模型。
为了突破上述早期谱域图卷积网络的局限性,Deferard 等人提出了一 个新的谱域图卷积网络,实现了快速局部化和低复杂度。由于使用了切比雪夫 多项式展开近似,这个网络被称为切比雪夫网络。回顾谱域图卷积操作g*x=Ug₉UT(转置)x ,从图信号分析的角度考虑,我们希望这个过滤函数g 能够有比较好的局部化, 也就是只影响图节点周围一个小区域的节点,因此我们可以把g 定义成一个拉普拉斯矩阵的函数 (L), 因为作用一次拉普拉斯矩阵相当于在图上把信息扩散到距离为1的邻接点。信号x 被这个滤波器过滤后得到的结果可以写成:
y=(L)x=(UUT)x=U()UTx (3.8) 。也就是说,我们可以把谱域图卷积中的卷积核ge 看作拉普拉斯矩阵特征值的函数 ()。通常,我们可以选择使用一个多项式卷积核:
其中,参数θk是多项式的系数。通过这个定义,我们现在只需要K+1 个参数 (K<n), 这大大降低了参数学习过程的复杂度。相当于我们定义了因此信息在每个节点最多传播K步,这样我们就同时实现了卷积的局部化。而ChebyNet在此基础上提出了进一步的加速方案,把() 近似为切比 雪夫多项式的K阶截断:
其中,Tk是k 阶切比雪夫多项式,Ã=2An/入max-In 是一个对角阵,主要为了将特征值对角阵映射到[-1,1]区间。之所以采用切比雪夫多项式,是因为它可以循环递归求解(如式3.11)。
Tk(x)=2xTk-1(x)-Tk-2(x) (3.11)
从初始值To=1,T₁=x 开始,采用递归公式(3.11),可以轻易求得k阶Tk的值。为了避免特征值分解,我们将式(3.8)写回为L的函数(3.12):
其 中 ,i=2L/λmax-In 。这个式子是拉普拉斯矩阵的K次多项式,因此它仍然保持了K- 局部化(节点仅被其周围的K 阶邻居节点所影响)。在实际 应用中,我们经常用对称归一化拉普拉斯矩阵Lsym= L代替原本的L。
图卷积网络
把切比雪夫网络中的多项式卷积核限定为1阶,这样图卷积(公式(3.12))就近似成了一个关于的线性函数,大大减少了计算量。当然,这样也带来了一个问题,即节点只能被它周围的1阶邻接点所影响。不过,我们只需要叠加K层这样的图卷积层,就可以把节点的影响力扩展到 K 阶邻居节点,这个问题也就迎刃而解了。事实上,叠加多层的1阶图卷积反而让节点对K 阶邻居节点的依赖变得更弹性,在实验中也取得了很好的效果。
接下来,我们从切比雪夫网络的公式(3.12)出发,对图卷积网络进行推导。 取拉普拉斯矩阵的对称归一化版本。由于拉普拉斯矩阵的最大特征值可以近似 取λmax≈2,1 阶图卷积可以写为式3.13:
为了进一步减少参数数量,防止过拟合,取θ¹=0o= -θ₁, 因此式(3.13)就变成了:
观察矩阵,它的特征值范围为[0,2]。如果我们多次迭代这个操作,则有可能造成数值不稳定和梯度爆炸/弥散问题。为了缓解这个问题,需要再做一次归一化,让它的特征值落在[0,1]。我们定义Ã=A+In, 对角阵有,则归一化后的矩阵变为:
我们的卷积操作变成了。将图信号扩展到(相当于有几个节点,每个节点有c维的属性,X是所有节点的初始属性矩阵):。∈Rc×d(上标) 是参数矩阵,Z∈Rn×d(上标) 是图卷积之后的输出。
在实际应用中,我们通常可以叠加多层图卷积,得到一个图卷积网络。我们以H¹ 表示第L层的节点向量,W¹表示对应层的参数,定义,那么每层图卷积可以正式定义为:
下面,我们以一个常用的两层图卷积网络来解释图卷积网络是怎么对节点进行半监督分类的。假设我们有一个n个节点的图G={v,8}, 图中节点属性矩阵为X∈Rn×d(上标),邻接矩阵为A, 图中每个节点可以被分为m 类中的一个。 我们采用以下方法来预测节点的标签:
首先,我们输入整个图的节点属性矩阵X和邻接矩阵A, 通过一个两层图卷积网络,得到节点嵌入矩阵, 然后用Softmax函数输出预测的分类结果,最后在训练集的节点Vtrain上比较预测结果 和真实标签Y 的差距,计算它们之间的交叉熵,将其结果作为损失函数:
通过随机梯度下降法进行训练,就可以得到这个网络的权重了。
谱域图神经网络的局限和发展
尽管谱域图神经网络有着坚实的理论基础,并且在实际任务中取得了很好的效果,但是也存在明显的局限性。首先,很多谱域图神经网络需要分解拉普拉斯矩阵得到特征值和特征向量,这是一个复杂度很高的操作。虽然切比雪夫和图卷积网络在做了简化之后已经不需要这一步了,但是它们在计算时仍然需要将全图存入内存,这是很消耗内存的。其次,谱域图神经网络的卷积操作通常作用在图拉普拉斯矩阵的特征值矩阵上,在换到另一个图上时,这些卷积核参数是没办法迁移的,因此谱域图神经网络通常只作用在一个单独的图上,这大大限制了这类模型的跨图学习和泛化能力。
由于谱域图神经网络模型的复杂性一般很高(图卷积网络是个特例),局限性也很大,它的后续研究并没有空域图神经网络那么多。但是,图谱分析为我们提供了一个非常好的分析工具,对谱域图卷积的研究也一直没有停止。
这篇关于图神经网络模型介绍(1)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!