GNN(一):原理

Pre:关于卷积

        

        gnn的本质,是将欧氏空间的cnn运用在图数据上,对图数据进行学习。而后所有算法,核心都是在找非欧氏空间的图数据的卷积核。

1 基于频域的GNN的数学原理(谱方法)

        定义:G = (V,E,W)。X是个n*d维的矩阵,n是|V|,d代表每个图节点有d维feature。D是一个对角矩阵,对角线上每个值,代表strength或者degree。

        本质:傅里叶变换。把Feature和Weight都视为信号,即X是信号(定义在点上的向量),D/W也是一种信号,找这两种信号间的转换关系。1.4的L的所有特征向量,是傅里叶变换的基。特征向量对应的特征值,是频率。

         L存在一个特征值为0。该特征值对应的特征向量是个全1的特征向量。

               上图的公式2是傅里叶变换,x是定义在点上的信号,经过傅里叶基的变换,在新空间里表示为x`;而x`经过傅里叶逆变换可以还原为x。

                 在G上定义卷积:x、y是节点域上的信号。filter是模型参数。

         需要学习的参数:step2的卷积核。

          

1.1 傅里叶变换与卷积操作

        傅里叶变换是将一组信号分解为若干个正弦信号,即将空域信号转为频域信号。如果空域和频域不好理解,用图像举例,可以理解为把像素信号转为信号频率。把时域转为频域,基是正弦波。其他的傅里叶变化,要找对应的傅里叶变换的基。

        傅里叶变换公式为F(\omega) = \int_{-\infty }^{+\infty}f(t)e^{-i\omega t}dt

        有时域卷积定理F(f_{1}(t)*f_{2}(t)) = F_{1}(\omega )\cdot F_{2}(\omega )),*代表卷积,两信号在时域的卷积积分等于频域上两信号经傅里叶变化的相乘。

        

1.2 拉普拉斯算子

        拉普拉斯算子:\bigtriangleup f = \bigtriangledown ^{2}f = \bigtriangledown\cdot \bigtriangledown f

        拉普拉斯算子是二阶微分在离散点的推广。在图像领域,模糊是通过积分和平均操作实现的;而微分意味着对图像做锐化。因此,拉普拉斯算子可以找到图边缘变化块的区域并对其锐化。

        \bigtriangleup f (x)= \frac{\partial^2 f}{\partial x^2} = {f(x)}'' \approx {f(x)}' - {f(x-1)}' \approx f(x+1) - f(x) - (f(x) - f(x-1)) = f(x+1) + f(x-1) - 2f(x)

        \bigtriangleup f (x,y)= \frac{\partial^2 f}{\partial x^2} + \frac{\partial^2 f}{\partial y^2} = f(x+1,y)+f(x-1,y)+f(x,y+1)+f(x,y-1) - 4f(x,y)

        此外,拉普拉斯算子代表的是扰动增益,通俗点说,变化的快慢。

1.3 图的向量表示和扰动增益

        无向图节点的值为:f = (f_{1} f_{2}f_{3}...f_{n})^{T}

        根据邻接边权值有邻接矩阵W_{N*N} = [w_{ij}],第i个节点的度有d_{i} ={\sum_{j = 1}^{N} w_{ij}}。如果这是个邻接矩阵,D是degree之和;如果是带权矩阵,D是该点的strength。

        度矩阵D = \begin{bmatrix}d_{1} & & \\ & d_{2} & \\ & & d_{N} \end{bmatrix}

        对图点i,扰动增益被定义为\Delta f = \sum_{i = 1}^{n}(f_{i} - f_{j}),该公式并非完整证明,只是参照1.2的一维空间和二维空间所给出的定义。

1.4图的拉普拉斯矩阵

         结合1.2和1.3,考虑边的权重后,两节点间增益为: w_{ij}(f_{i}-f_{j})

        因此,对每个节点i,其邻居节点给与的总增益为:\sum_{j}^{}w_{ij}(f_{i} - f_{j}) = (\sum_{j}^{}w_{ij})f_{i} - \sum_{j}^{}w_{ij}f_{j} = d_{i} f_{i} - \sum_{j}^{}w_{ij}f_{j}

        所以,图的拉普拉斯矩阵为:L = D - W;

        归一化表示:L = I- D^{-\frac{1}{2}}AD^{-\frac{1}{2}}

1.5 ChebNet

        

         把g_{\beta }转化为和特征值有关的数值,带入x*y后,避免正交分解。

        

 

2 基于空域的GNN的数学原理

        开山鼻祖:

        每次只找k个邻居;按距离远近对邻居进行排序;参数共享。

2.1 GraphSage

         采样采用随机游走,而非按距离远近选择k个;而且是无序列化的。

2.2 GCN

        

        1:特征变换:XW。

        2:卷积:Relu非线性变换,而且只按Adjacent相邻的点作为聚合点。

        只有特征变换的W作为可学习的参数,没有卷积核(也就是A_hat)作为可学习的参数,不具有可解释性。

2.2 GAT简介

        GAT:图注意力网络。主要有两个key:1)不同邻居节点对每个点的作用效果不同,即B和C对A的重要程度不一定相同;2)互为邻居的两个点作用效果不同,即A对C的重要程度未必等同于C对A的重要程度。

        注意力层公式:\alpha _{ij}=softmax(\sigma (\alpha^{T}(W\vec{h_{i}}||W\vec{h_{j}})))

        W是将h从输入维数映射到输出维数的权重矩阵。如果说h的维度是1*F,则W是个F*F`的矩阵。||表示张量聚合。通过||操作,得到1*2F`的矩阵,alpha是个attention kernel,为2F`*1的矩阵,经过这部操作可以得到一个未处理的注意力系数。

        再将注意力系数激活,经典GAT用leaklyLeU,激活后进行softmax,从而得到注意力系数的概率分布。

        GAT相比于GCN,不光特征变换的矩阵W是可学习的参数,卷积核a也是可学习的参数。

2.3 MoNet      

        

         提出框架:定义多个核函数,测量中心节点与其他节点相似度,卷积核是不同核函数的加权平均。

3 Graph Pooling

         如果是节点分类任务/边预测任务,没有必要pooling;如果是整个图的分类,需要pooling(即蛋白质结构分类、化学分子性质、交通流量预测需要)。

3.1 graph coarsening

         

         聚类参数和GNN参数一起训练

3.2 node selection

        

        测度函数,选择哪些节点重要。

4 图神经网络的表达能力

 

        1:GNN出现以来,主要应用在图结构,例如知识图谱领域。在出现GNN之前,该领域主要使用像TransE、NetworkEmbedding等方法。

        2:当应用在图半监督学习领域,像推荐系统等,目前基于经验或者启发式方法,通过实验试错方法去取得结果。

        3:无法区分label相同,结构不同的图(表达能力上线:只能找到和原图同构的图)。

cite:

图卷积神经网络 国科大 沈华伟_哔哩哔哩_bilibili

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值