图神经网络之GNN整体介绍

举报
AI Medicine 发表于 2022/03/01 16:17:20 2022/03/01
【摘要】 GNN 什么是图 常见图结构点,边 图片如何表示为图结构像素点为节点像素之间的关系,为边和周边的像素点联系 文本如何表示为图结构字为节点前后的联系,为边(关系) 分子化学分子分子性质预测分子生成化学反应蛋白质网络相互作用,药物-蛋白 社交网络 文章的引用结构 图数据的性质节点的不均匀分布边的额外属性排列不变性 发展历史 目标通过人工神经网络,将图和图上的几点映射到一个低维空间 谱域神经网络...

GNN

图神经网络整体介绍

什么是图

常见图结构

  • 点,边

图片如何表示为图结构

  • 像素点为节点
  • 像素之间的关系,为边
  • 和周边的像素点联系

文本如何表示为图结构

  • 字为节点
  • 前后的联系,为边(关系)

分子

  • 化学分子

    • 分子性质预测
    • 分子生成
    • 化学反应
  • 蛋白质网络

    • 相互作用,药物-蛋白

社交网络

文章的引用结构

图数据的性质

  • 节点的不均匀分布
  • 边的额外属性
  • 排列不变性

发展历史

目标

  • 通过人工神经网络,将图和图上的几点映射到一个低维空间

谱域神经网络

  • 为了解决空间邻域的不规则性,提出图上的谱网络

  • 对图的拉普拉斯矩阵,进行谱分解

    • 利用得到的特征值和特征向量进行卷积操作
  • 利用切比雪夫网络将卷积核定义为多项式形式,计算近似卷积核,提高效率

    • 只使用一阶近似的卷积核
    • 实现快速局部化和低复杂度计算
  • 缺点

    • 计算复杂度高

      • 需要计算拉普拉斯矩阵,得到特征值和特征向量
      • 需要将全图存入,消耗内存较多
    • 无法扩展到更多图

      • 因为图卷积核依赖于每个图的拉普拉斯矩阵,没办法扩展到其他图

        • 参数不能在不同图上分享
        • 卷积计算的基底不一样

空域神经网络

  • GGNN(门控图神经网络)

  • MPNN(消息传递神经网络),2017

    • GraphSAGE, 2017

      • GIN (图同构神经网络), 2019
      • 定义:从直推式学习扩展到归纳式学习
    • GAT, 2018

      • 利用注意力机制来定义图卷积

任务

Graph level

  • 图的分类、生成和匹配等
  • 图神经网络作为编码器的Graph2Seq

Node level

  • 分类,回归及聚类

Edge Level

  • 链接预测,边的分类

图上的信息

nodes

  • 顶点的属性

edges

  • 边的属性

global-context

  • 全局信息

connectivity

GNN(Graph Neural Networks)

对属性做变换,不改变图的结构

  • 用了3个全连接层

Passing messages between parts of the graph

  • 先得到点的向量,再将邻居的向量加在一起(类似图片的卷积)
  • 然后再放到MLP里

实验

  • 可选参数

    • layers

      • 2-4
    • aggregation的方法

      • sum
      • mean
      • max
    • embedding方法

      • 大小
    • 如何做信息传递

    • 评测指标

      • AUC
  • 消息传递的方法

增加全局信息

  • master node or context vector

    • 和所有的顶点相连

GraphSAGE 归纳式图表示学习

主要思路

  • 先把邻居节点的信息,用一个聚合函数aggregate,聚合到一起
  • 再与节点本身,进行整合和状态更新
  • 用得到的所有节点的嵌入向量,作为下游任务的输入

主要点

  • SAMPLE

    • 方便批处理

      • 先取出K阶邻居节点

        • 一般取K=2
    • 降低计算复杂度

      • 再采样固定数量的邻居节点
  • AggreGATE

    • w参数在,concat后,与concat相乘

    • 均值聚合

    • LSTM

      • 比均值聚合有更强的表达力,但是部队称
      • 随机打乱再聚合邻接点
    • 池化聚合

      • 让所有节点通过一个全连接层
      • 然后做最大池化

aggregate

MPNN消息传递神经网络

定义

  • 空域卷积的形式化框架

公式

  • 信息传递

    • M

      • 节点v的邻接节点的信息,边的信息,汇总在一起
  • 状态更新

    • Update

      • 收到每个邻居的信息后,结合该节点上一时间点的状态hv,更新自己的状态

特点

  • 加入了边的信息

种类

  • 图卷积网络
  • Neural FPs
  • 门控图神经网络
  • SpectralGNN

图注意力网络

通过注意力机制计算顶点和邻接点间的自注意力

思路

  • 把原来的节点特征,从F维转换为F’维

    • 再通过函数attention,映射到一个注意力权重

      • eij表明节点j相对于i的重要度

方法

  • 拼接转换后的节点信息

    • 乘以一个参数

  • 通常选取一个单层的前馈神经网络和一个LeaklyRELU作为非线性激活函数来计算eij

  • softmax激活和归一化

    • 得到注意力权重
  • 基于注意力权重,开始更新节点

GCN作为子图函数的近似

GCN

MPNN

主要是矩阵的乘法

Graph explaination

图的评价

做优化比较难,稀疏的架构,也是动态的架构

  • 如何做加速很难

对超参数很敏感

  • 如何采样?
  • 用哪些超参?

工业界的应用比较少

Distil

判断图是否同构

weisfeiler-Lehman子树

图的池化

聚类与池化

  • 常规的池化思路

    • 定义邻居,邻域内取最大值或者平均值等
  • 根据图结构,进行聚类,选取一类节点进行池化

DiffPool

  • 可学习的池化,给以一定参数

TopK池化

  • 将节点通过属性映射到节点*1维上,然后根据重要性排序,确定TOPK重要的节点

  • 根据选择的节点,确定子图

  • 再结合子图和属性,进行下游计算

  • 缺点

    • 比原图更稀疏,缺失很多信息

图嵌入方法

基于随机游走的图嵌入方法

  • DeepWalk

    • 随机采样大量固定长度的路径

      • 每个路径相当于一个句子

        • 节点相当于一个词
    • 用skip-gram模型最大化中心节点和它在这条路上的前后邻居节点的贡献概率

      • 根据节点的嵌入表示获得
    • 可以利用负采样提高训练效率

      • 尽可能区分目标节点和其他噪声

        • 噪声即所谓的负样本
  • node2vec

    • 根据节点判断,被访问的概率等

图的无监督学习

图的自编码器

  • Encoder-Decoder

    • 目标:最小化重构的误差
  • Graph AE

  • Graph VAE

    • 用神经网络来参数化后验概率

      • 然后通过蒙特卡洛采样的方法得到以上目标函数的近似解
    • q(z|A, X) 是一个编码器

      • 用来得到隐变量的分部
      • 通过图卷积网络,来参数化q(z|A, X)
      • N为高斯分部,参数μ和*均由两侧图卷积网络得到
    • p(A | Z)是一个解码器

      • 用来重构图结构A

最大互信息

  • 利用互信息的最大化

图神经网络的预训练

节点级别的任务

  • 上下文预测

    • 得到节点的向量表示

    • 找到该节点对周围的上下文图

      • 大于等于r1, 小于等于r2的所有点构成的子图
    • 判断一个邻接域和一个上下文图,是否属于同一个节点

  • 属性遮蔽

    • 随机遮蔽节点中的一些属性
    • 训练,然后预测

图级别的任务

  • 属性预测

  • 相似度预测

  • 训练过程

    • 先做节点级别的自监督预训练任务
    • 然后做图级别的有监督训练

大规模学习的问题

训练效率和可扩展性

原因

  • 网络大,内存大,训练消耗大,时间长
  • 图大,信息爆炸

点采样

  • PinSAGE

    • 基于GraphSAGE,采样时候增加邻居节点的重要性,通过随机游走,根据频率判定

层采样

  • FastGCN

    • 神经网络上的层采样

图采样

  • Cluster-GCN

    • 采用图聚类算法,把图分割成一个个小块

    • 每次训练随机选取一些小块组成子图

    • 在子图上进行完整的图卷积网络计算

      • 并直接得到损失函数

如何解决过平滑

增加随机游走模型,使得信息可以传播到无穷远

page rank思路

  • 传播远,同时保留原信息

添加残差连接

  • 原始的方法

    • 参考resnet
  • 改进的方法

    • 节点对离得近的邻居,影响力更大

      • 给前一层更多权重

跳跃知识网络(JK-Net)

  • 将图卷积的每一层输出,最后聚合在一起

  • 聚合方法

    • sum
    • mean
    • max
    • LSTM

DropEdge

  • dropout在图神经网络上的扩展
  • 随机删除一些邻接矩阵的边

图的无监督学习

参考链接

https://www.cnblogs.com/siviltaram/p/graph_neural_network_2.html

生化医疗相关应用

预测分子性质

化学反应预测

  • 给定一些反应物分子图Gr,预测化学反应后的对应阐述Gp

    • 包含许多不同的分子,组成共同的不连通图
  • 用一个特定的图神经网络学习每个原子节点的嵌入表示

  • 预测每两个原子形成的原子对可能产生的反应分数

  • 挑出K个分数最高的原子,列举可能产生的符合规则的化合物

  • 用另一个神经网络对这些候选产物进行预测,按照概率高低排序

图生成模型

子主题 3

数据集

  • MUTAG数据集

    • 分类它们是否为芳香剂
  • TOX21数据集

    • 分类不同的毒性
  • NCI-I数据集

    • 分类对癌症的阻碍作用
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。