CS224W 6 Graph Neural Networks

目录

引入

node embedding

 Deep Graph Encoders的引入

 Basics of Deep Learning 

Deep Learning for Graphs

​编辑A Naive Approach

GCN

 GCN的基本idea

Aggregate Neighbors

训练GCN

Unsupervised Training

Supervised Training

Oview

整体流程

Inductive capability


引入

node embedding

(1)定义

将节点映射到d-维空间,使在图中相似的节点嵌入的更相近。

(2)两个关键组件Encoder Decoder

(3)shallow Encoders的缺陷

  •  需要O(|V|)的参数
  • 不能产生训练集里没有出现过的节点的嵌入(如果出现新节点,还需要再走一遍random walk)
  • 没有利用图上的features信息

 Deep Graph Encoders的引入

1.deep encoders是基于图结构的多层非线性转换,deep encoders可以和讲过的节点相似性函数结合起来。

2.现代深度学习工具箱设计用于简单的序列和网格(sequence&grid),但实际上networks更加负责

  • 任意的大小和复杂的拓扑结构(没有像grid的空间位置)
  • 没有固定的节点顺序或者参考节点(sequence的左右,grid的上下左右)
  • 经常是动态的和具有多模态特征

 Basics of Deep Learning 

Deep Learning for Graphs

基本定义

A Naive Approach

将邻接矩阵和节点features拼在一起输入到DNN中

存在问题:1)参数O(V);2)不适用于不同大小的图;3)对节点顺序敏感(如果节点编号顺序改变的话,矩阵就会改变,因此如果这样做的话,就必须保持节点编号顺序保持不变)

GCN

推广CNN到图上,并利用节点属性。

但Graphs和images不同的是:在图上没有固定的局部性或者滑动窗口的概念;且图是排列不变的,节点顺序不固定。

 将邻居节点的信息转换,并结合它们。

 GCN的基本idea

  • 基于局部邻居节点定义一个计算图
  • 在计算图上传播并转换信息

Aggregate Neighbors

基于局部邻居产生节点embedding,节点使用神经网络从邻居节点聚合信息。每一层同一节点产生的embedding不同。0-layer的嵌入为节点的feature。仅会在有限层数里进行,例如研究Khops,那神经网络层数就为K。

 

每一个节点都可以定义自己的神经网络结构,因此需要训练和学习多个神经网络。这些节点的计算图或神经网络结构是基于邻居节点定义的,

由于节点顺序是任意的,因此聚合运算要具有排列不变性,即节点可以有任何顺序,但聚合结果相同。如何定义转换,怎么将他们参数化,如何学习他们?基本方式:对邻居节点信息求平均并应用一个神经网络。

对节点v上一层邻居节点的嵌入求平均的结果  节点v上一层的嵌入 加权求和再经过一个非线性激活函数。得到节点v此层的嵌入。

训练GCN

可以将这些嵌入输入到任何损失函数中,并运行 SGD 来训练权重参数:Wk邻域聚合的权重矩阵;Bk用于变换自身上一层嵌入向量的权重矩阵

 一些聚合可以用矩阵计算更有效的实现,将求和转换为矩阵乘积

 

 ​​​​​​

Unsupervised Training

 

Supervised Training

直接使用一个有监督的学习任务(节点分类)训练。

Oview

整体流程

1) 定义一个neighborhood aggregation function

2)为嵌入定义一个loss function

3)在一个节点集上训练

4)通过正向传播产生需要的节点的嵌入(甚至可以为没有在训练集里出现的节点产生embedding)

意味着可以在一个图上训练再应用到另一个图上。也可以再子图上训练,应用于整个图,无需再重新训练

Inductive capability

所有节点共享aggregation parameters

W与B的参数数量仅取决于embedding与特征的维度,与图的大小无关,因为第一层嵌入为特征维度。维度和上下层嵌入的维度有关。

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值