Road 2 AI-GCN

什么是GCN

  • Graph Convolutional Networks,图卷积神经网络,实际上跟CNN一样,就是一个特征提取器,只不过它的对象是图数据。
  • GCN就精妙的设计了一种从图数据中提取特征的方法,从而让我们可以使用这些特征去对图数据及逆行处理:
  • 节点分类(node classification)
  • 图分类(graph classification)
  • 边预测(link prediction)
  • 图嵌入表示(graph embedding)
  • GCN应用已经渗透在CV,NLP,RS中
    在这里插入图片描述

GCN算法的优势

  • 具有可扩展的优点,能够适应网络的变化
  • 相较于起传统的深度学习,图神经网络由于在关系数据挖掘方面有巨大的潜力,正成为学术界和工业界投入研发的热点,比如商品推荐,金融风控,聊天机器人中的语义分析及意图识别

GCN算法原理

在进行GCN算法之前,我们首先得有一张图,对于一个图网络G=(V,E),有N个节点,每个节点都有自己的特征,目标是要学习图上的信号或特征的一个映射。
在这里插入图片描述

  • 其次我们对这张图求出它的邻接矩阵,这个邻接矩阵的每一行/每一列对应每一个节点,矩阵中的数字1代表两两节点之间存在边的关系,而数字0则代表没有边的关系。
    在这里插入图片描述

  • 然后我们还有度矩阵,度矩阵的表达方式是在对角线上显示每个节点的度的数量(即边的数量),比如:

    • 在节点1中,有节点5+节点2与其相连,那么节点1的度为2。
    • 在节点2中,有节点5+节点1+节点3与其相连,那么节点2的度为3。
  • 有了邻接矩阵和度矩阵,我们可以通过以下公式,求出拉普拉斯矩阵:
    L = D − A L 表 示 拉 普 拉 斯 矩 阵 D 为 节 点 矩 阵 A 为 邻 接 矩 阵 L = D - A\\ L表示拉普拉斯矩阵\\ D为节点矩阵\\ A为邻接矩阵 L=DALDA
    在这里插入图片描述
    -对于常见的拉普拉斯矩阵,除了有L=D-A的形式,还有以下两种:
    L s y s = D − 1 2 A D − 1 2 L r w = D − 1 A L^{sys} = D^{-\frac{1}{2}}AD^{-\frac{1}{2}}\\ L^{rw} = D^{-1}A Lsys=D21AD21Lrw=D1A
    使用拉普拉斯矩阵的好处有以下三点:

  • 拉普拉斯是对称矩阵,可以进行特征的分解(谱分解)

  • 只有在中心顶点和一阶相连的顶点上(1-hop neighbor)有非0元素,其余之处均为0

  • 通过拉普拉斯算子与拉普拉斯矩阵进行类比

当有了以上的矩阵和算子,那么便可以进行GCN的转换了。
GCN模型的输入为矩阵X和A:

  • 矩阵X,表示这些节点特征,N×D维矩阵
  • 矩阵A,表示各个节点之间的关系,N×N维矩阵,也称为邻接矩阵(adjacency matrix)

GCN是一个神经网络层,层与层之间的传播方式:
在这里插入图片描述
在这里插入图片描述
公式解释:

  • 每一层GCN的输入都是邻接矩阵A和Node的特征H,如果我们直接做一个内积,乘以一个参数矩阵W,再激活一下,就相当于一个简单的神经网络层

在这里插入图片描述
实验证明,使用这个简单的神经网络层,就已经很强大了
不过这个简单模型有2个局限性:

  • 局限1,只使用A的话,由于A的对角线上都是0,所以在和特征矩阵H相乘的时候,只会计算一个node的所有邻居的特征的加权和,该node本身的特征却被忽略了。
    • 那么便可以针对此做一个小的变动,即给A加上一个单位矩阵I,这样就让对角线元素变成1了
  • 局限2,A是没有经过归一化的矩阵,如果A与特征矩阵H相乘会改变特征原本的分布,产生一些不可预测的问题。
    • 所以我们可以对A做一个标准化的处理,首先让A的每一行加起来为1,然后对A乘以D^-1,D为度矩阵,那么便可以解决局限2。
    • 进一步把D^-1拆开与A相乘,得到一个对称且归一化的矩阵:
      D − 1 2 A D − 1 2 D^{-\frac{1}{2}}A D^{-\frac{1}{2}} D21AD21
    • 综合以上两种改进方式,得到:
      在这里插入图片描述在这里插入图片描述
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Mr.Wiggles

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值