图卷积神经网络(GCN)原理详解

作者: 希望每天涨粉

一 GCN简介

    

  GNN 模型主要研究图节点的表示(Graph Embedding),图边结构预测任务和图的分类问题,后两个任务也是基于 Graph Embedding 展开的。目前论文重点研究网络的可扩展性、动态性、加深网络。{1632316117423}

  

  谱卷积有理论支持,但有时候会受到拉普拉斯算子的限制;而空间域卷积更加灵活,主要困难在于选择定量邻域上,没有统一理论。

  未来方向:**

*

  • 加深网络:研究表明随着网络层数增加,模型性能急剧下降。
  • 感受野:节点的感受野是指一组节点,包括中心节点和其近邻节点,有些节点可能只有一个近邻,而有些节点却有数千个近邻。
  • 可扩展性:大部分图神经网络并不能很好地扩展到大型图上。
  • 动态性和异质性:大多数当前的图神经网络都处理静态同质图。一方面,假设图架构是固定的。另一方面,假设图的节点和边来自同一个来源。

  GCN模型具备深度学习的三种性质:**

*

  • 层级结构(特征一层一层抽取,一层比一层更抽象,更高级)。
  • 非线性变换 (增加模型的表达能力)。
  • 端对端训练(不需要再去定义任何规则,只需要给图的节点一个标记,让模型自己学习,融合特征信息和结构信息。)。

  GCN的四个特征:**

*

  • GCN 是对卷积神经网络在 graph domain 上的自然推广。
  • 它能同时对节点特征信息与结构信息进行端对端学习,是目前对图数据学习任务的最佳选择。
  • 图卷积适用性极广,适用于任意拓扑结构的节点与图。
  • 在节点分类与边预测等任务上,在公开数据集上效果要远远优于其他方法。

  通过谱图卷积的局部一阶近似,来确定卷积网络结构,通过图结构数据中部分有标签的节点数据对卷积神经网络结构模型训练,使网络模型对其余无标签的数据进行进一步分类。

二 spectral domain

离散卷积是什么,在CNN中发挥什么作用?

  离散卷积本质:**加权求和

  CNN 中的卷积本质上就是利用一个共享参数的过滤器(kernel),通过计算中心像素点以及相邻像素点的加权和来构成 feature map 实现空间特征的提取,当然加权系数就是卷积核的权重系数。

    

GCN 中的 Graph 是指什么?为什么要研究GCN?

  CNN 有效地提取空间特征。需注意的是:CNN 处理的图像或者视频数据中像素点是排列成整齐的矩阵。这里对应了 Euclidean Structure 。

    

  与之相对应,科学研究中还有很多 Non Euclidean Structure 的数据。社交网络、信息网络中有很多类似的结构。

    

  实际上,这样的网络结构(Non Euclidean Structure)就是图论中抽象意义上的拓扑图。所以,Graph Convolutional Network 中的 Graph 是指图论中的用顶点和边建立相应关系的拓扑图。

为什么要研究 GCN ?

  • 因为 CNN 无法处理非欧几里得结构的数据,学术上的表述是传统的离散卷积在非欧几里得结构的数据上无法保持平移不变性。通俗来说就是在拓扑图中每个顶点的相邻顶点数目都可能不同,那就没办法用一个同样尺寸的卷积核来进行卷积操作;
  • 广义来讲任何数据在赋范空间内都可以建立拓扑关联,谱聚类就是应用了这样的思想,所以说拓扑连接是一种广义的数据结构,GCN有很大的应用空间。

三 提供拓扑图空间特征的两种方式

(1)vertex domain(spatial domain)

  提取拓扑图上的空间特征,就是把每个顶点的相邻 neighbors 找出来

  • 按照什么条件去找中心 vertex 的 neighbors,如何确定 receptive filed?   
  • 确定了 receptive field 之后,按照什么方式处理包含不同数目 neighbors 的特征?

   

  这种方法主要的缺点如下:

  • 每个顶点提取出来的 neighbors 不同,使得计算处理必须针对每个顶点。
  • 提取特征的效果可能没有卷积好。

(2)spectral domain

  借助图谱的理论来实现拓扑图上的卷积操作。

  • 什么是Spectral graph theory?
  • 借助于图的拉普拉斯矩阵的特征值和特征向量来研究图的性质。

四 什么是拉普拉斯矩阵?为什么GCN要用拉普拉斯矩阵?

  Graph Fourier Transformation及Graph Convolution定义都用到图的拉普拉斯矩阵,那么首先来介绍一下拉普拉斯矩阵。

  对于图 $G=(V,E)$ 其 Laplacian 矩阵的定义为 $L=D−A$,其中 L 是 Laplacian 矩阵,D 是顶点的度矩阵,对角线上元素依次为各个顶点的度,A是图的邻接矩阵。{MathJax-Element-5-Frame}

    

  常用的拉普拉斯矩阵实际用三种:**

*

  • Combinatorial Laplacian:$L=D-A $
  • Symmetric normalized Laplacian: $L^=D^{-1 / 2} L D^{-1 / 2} $
  • Random walk normalized Laplacian: $L^=D^{-1} L $

  为什么GCN要用拉普拉斯矩阵?**

  • 拉普拉斯矩阵是对称矩阵,可以进行特征分解(谱分解)。
  • 拉普拉斯矩阵只在中心顶点和一阶相连的顶点上有非 0 元素,其余之处均为 0。
  • 通过拉普拉斯算子与拉普拉斯矩阵进类比。

参考

原文创作:希望每天涨粉

原文链接:https://www.cnblogs.com/BlairGrowing/p/15321328.html

更多推荐

更多
  • .NET人工智能教程-四、使用自然语言理解 什么是 NLU?,自然语言理解的历史,为什么机器很难理解自然语言,语言理解智能服务(LUIS),为 LUIS 获取 Azure 订阅,演示:定义应用,概述,自然语言的复杂性,统计模型作为解决方案是不够的,充满希望的未来,基于 LUIS
    Apache CN

  • .NET人工智能教程-十、人工智能的未来 AI 为什么这么受欢迎?,改进的计算能力,人工智能算法的发明,数据是新的货币,云计算的出现,服务 vs 解决方案?,认知类别,NLU 的挑战和未来,演讲的挑战和未来,搜索的挑战和未来,挑战和建议的未来,AI 优先,智能边缘,将被淘汰的是
    Apache CN

  • .NET人工智能教程-七、与语音 API 交互 与语音互动的方式,入门指南,首先获取 JSON Web 令牌,消费者语音 API,语音合成,定制语音服务,说话人识别,摘要,认知搜索 API,语音识别,语音识别内部,定制声学模型,自定义语言模型,发音数据,自定义语音转文本端点,说话人验
    Apache CN

  • .NET人工智能教程-五、探索认知语言模式 iamfeanggoodgermanyvsargentinafootballliveepic fail,Bing 拼写检查 API,文本分析 API,Web 语言模型(WebLM) API,语言分析 API,概述,这是什么?
    Apache CN

  • .NET人工智能教程-一、人工智能基础入门 真实与虚构,历史和演变,微软和人工智能,基本概念,微软的认知服务,概述,当前的事态,人工智能的商品化,机器学习,语言,演讲,计算机视觉,视力,演讲,语言,知识,搜索, 想象一下,创建一个如此智能的软件,它不仅能理解人类语言,还能理解俚语
    Apache CN

  • .NET人工智能教程-三、使用微软技术构建对话式用户界面 什么是对话式用户界面?,简史,设计原则,微软机器人框架,使用 Bot 框架创建 CUI 应用,概述,一开始:命令行界面(CLI),然后是图形用户界面,UI 又一次进化了:对话式用户界面,艾在《崔》中的角色,崔的陷阱,混合用户界面(CUI
    Apache CN

  • .NET人工智能教程-二、在 Visual Studio 中创建基于人工智能的应用 使用认知服务的先决条件,设置开发环境,获取认知服务的 Azure 订阅密钥,测试 API,创建你的第一个基于人工智能的应用,让你的应用更有趣,概述,步骤 1:设置 Azure 帐户,步骤 2:创建一个新的认知服务帐户,步骤 3:获取订阅
    Apache CN

  • .NET人工智能教程-八、应用搜索产品 搜索无处不在,普及、预测、主动(搜索的三个 p),冰的历史,必应有什么独特之处?,搜索 API,Bing 图像搜索 API,Bing 新闻搜索 API,Bing 视频搜索 API,如何使用 Bing 视频搜索 API,Bing 网络搜索
    Apache CN

  • .NET人工智能教程-九、使用建议 了解基础知识,经常汇集(FBT)的建议,逐项,基于过去历史的建议,这些建议是如何起作用的?,模型和类型,建议构建,经常聚集在一起(FBT)建设,排名,SAR(智能自适应)构建,在构建中设置规则,离线评估,用户界面,摘要, 机器学习无处不
    Apache CN

  • .NET人工智能教程-六、消费和应用 LUIS 规划您的应用,创建 LUIS 应用,添加意图,添加/标记话语,发布您的应用,添加实体,添加短语列表,建议的后续步骤,LUIS 与 Bot 框架的集成,将您的机器人添加到 Skype,概述,机器人应该能做什么?,机器人需要用户提供什么信息
    Apache CN

  • 近期文章

    更多
    文章目录

      推荐作者

      更多