诸神缄默不语-个人CSDN博文目录
cs224w(图机器学习)2021冬季课程学习笔记集合

文章目录

  • 1. How Expressive are Graph Neural Networks?
  • 2. Designing the Most Powerful Graph Neural Network

YouTube 视频观看地址1 视频观看地址2


本章主要内容
本章主要学习GNN模型的表达能力expressive power,即将不同图数据表示为不同嵌入向量的能力。
我们主要考虑图中节点的局部邻居结构 local neighborhood structure 信息,GNN通过计算图 computational graph 捕获节点的局部邻居结构。
因此,GNN无法区分具有相同计算图的节点。
如果GNN能将具有不同计算图的节点区分开来(即形成一个单射rejective函数,不同计算图的节点被表示为不同的嵌入),则我们称该GNN具有强表达能力,即计算图中的信息得到了完全的保留。要实现这样的区分度,需要GNN的聚合函数是单射的。

已知聚合函数表达能力越强,GNN表达能力越强,单射聚合函数的GNN表达能力最强。我们设计具有最强表达能力的GNN模型:
邻居聚合过程可被抽象为一个输入为multi-set的函数。
均值池化(GCN)无法区分各类占比相同的multi-set,最大池化(GraphSAGE)无法区分具有相同的不同类的multi-set,因此都不单射,不够具有表达能力。
为了建立在信息传递message-passing框架下的最强GNN,我们需要设计multi-set上的单射邻居聚合函数。根据Xu et al. ICLR 20191 的定理,我们可以设计一个含 Φ \Phi Φ 和 f f f 两个未知函数、并应用sum-pooling的函数来表示这样的单射函数,根据universal approximation theorem2 可知 Φ \Phi Φ 和 f f f 可以通过MLP拟合得到。从而建立 Graph Isomorphism Network (GIN) 模型。
GIN是WL graph kernel3 的神经网络版。GIN和WL graph kernel3 都可以区分大部分真实图。

在表达能力上,sum(multiset) > mean(distribution)> max(set)


1. How Expressive are Graph Neural Networks?

  1. 对GNN定义、聚合邻居信息思想的复习内容不赘。
  2. 本节课主要探讨,在已经提出GCN、GAT、GraphSAGE、design space等众多GNN模型的前提下,各种模型的表示能力(区分不同图结构的能力)如何?我们如何设计这样一种表示能力最强的模型?
  3. GNN模型实例
    1. GCN:mean-pool + Linear + ReLU non-linearity4
    2. GraphSAGE(以最大池化为例):MLP + max-pool
  4. 本课程中用节点颜色指代特征feature,同色即特征相同。
    如图中举例图中所有节点的特征都相同(黄色)。
    图上的信息分为结构信息和特征信息,因为特征相同,所以无法仅凭特征来区分节点了(如果特征全都不一样,只需要看特征向量就能将节点区分开了)。让所有特征相同可以更好看出GNN如何捕捉结构信息。
  5. 局部结构信息
    我们感兴趣于量化节点的局部结构信息。

    1. 例子1:节点1和节点5,因其度数不同而具有不同的局部结构信息。
    2. 例子2:节点1和节点4,具有相同度数,但到其两跳邻居的信息上,可以区分两点:其邻居的度数不同。
    3. 例子3:节点1和节点2,具有相同的邻居结构,因为在图中是对称的。(不可区分)(无论多少跳邻居上,都具有相同的局部结构)(位置同构)
  6. 我们接下来就要分析GNN节点嵌入能否区分不同节点的局部邻居结构,在什么情况下会区分失败。
    GNN通过计算图得到局部邻居结构。
  7. 计算图
    1. GNN每一层聚合邻居信息(节点嵌入),即通过其邻居得到的计算图产生节点嵌入。
    2. 节点1和节点2的计算图:
    3. 上图两个计算图本质上是一样的:GNN只能识别特征,不能识别ID因为计算图相同,这两个节点将被嵌入到同一个表示向量(即在表示域重叠,GNN无法区分这两个节点)。
    4. 一般来说,不同的局部邻居会得到不同的计算图:节点1和节点2由于计算图相同,所以GNN无法区分。理论上节点3、4、5由于计算图不同是可能由GNN区分开的。
      表达能力最强的GNN能区分开任意计算图不同的节点。
    5. 计算图和对应节点的有根子树结构rooted subtree structure5相同,通过从根节点逐邻居展开计算图而得到。
    6. GNN节点嵌入捕获这个rooted subtree structures,表示能力最强的GNN模型将不同的rooted subtree结构映射到不同的节点嵌入中(图中表示为不同颜色):
  8. 单射injective函数:将不同自变量映射为不同的因变量,这样可以完整保留输入数据中的信息
  9. 表示能力最强的GNN就应该单射地映射子树到节点嵌入(即不同的子树映射为不同的嵌入)
  10. 同深度的子树可以从叶节点到根节点迭代表示信息,来进行区分6
  11. 如果GNN每一步聚合都可以保留全部邻居信息,那么所产生的节点嵌入就可以区分不同的有根子树,也就达成了GNN具有最强表示能力的效果。
  12. 所以表示能力最强的GNN就是每一步都使用单射邻居聚合函数(保留全部信息),把不同的邻居映射到不同的嵌入上。
  13. 总结
    为得到节点嵌入,GNN使用计算图(以节点为根的子树),如果每层都使用单射的聚合函数,就可以达成区分不同子树的效果。

2. Designing the Most Powerful Graph Neural Network

  1. GNN的表示能力取决于其应用的邻居聚合函数。聚合函数表达能力越强,GNN表达能力越强,单射聚合函数的GNN表达能力最强。
    接下来本课程将理论分析各聚合函数的表示能力。
  2. 邻居聚合过程可以被抽象为multi-set(一个元素可重复的集合,在此处指节点的邻居集合,元素为节点,节点特征可重复)上的函数。如图中以圆点集合作例,点同色指特征相同:
  3. 接下来我们分析GCN和GraphSAGE的聚合函数
    1. GCN:mean-pool
      mean-pool + Linear + ReLU non-linearity
      根据Xu et al. ICLR 20191 得到定理:GCN的聚合函数无法区分颜色占比相同的multi-set7
      假设不同颜色的特征是独热编码特征,如图所示黄蓝二色特征:
      GCN无法区分不同multi-set的一个实例:
    2. GraphSAGE:max-pool
      MLP + max-pool
      根据Xu et al. ICLR 20191 得到定理:GraphSAGE的聚合函数无法区分具有相同的不同颜色(即具有一样的多种颜色,或者不重复颜色组成的集合相同)8
      一个失败案例:假设上一层节点嵌入经过一个单射的MLP函数形成不同的独热编码向量,经逐元素最大池化后得到相同输出:
  4. 根据上文对GNN表示能力的分析,我们得出的主要结论takeaway9为:
    1. GNN的表示能力由其邻居聚合函数决定
    2. 邻居聚合是个multi-set上的函数,multi-set是一个元素可重复的集合
    3. GCN和GraphSAGE的聚合函数都不能区分某些基本的multi-set,因此都不单射,不够具有表达能力。
  5. 我们的目标是设计信息传递框架下表示能力最强的GNN,这要求我们设计出multi-set上的单射邻居聚合函数。
    在本课程中,我们用神经网络建模单射的multi-set函数。
  6. 单射的multi-set函数
    根据Xu et al. ICLR 20191 得到定理:任一单射的multi-set函数都可以表示为: Φ ( ∑ x ∈ S f ( x ) ) \Phi\left(\sum\limits_{x\in S}f(x)\right) Φ(x∈S∑​f(x))
    Φ \Phi Φ 和 f f f 是非线性函数
    ∑ x ∈ S \sum\limits_{x\in S} x∈S∑​ 在multi-set上求和
    如图所示:
  7. 一个作为证明的直觉举例10
    f f f 得到颜色的独热编码,对其求和就能得到输入multi-set的全部信息(每类对应向量的一个索引,每个索引的求和结果就对应该类的节点数量,就可以区分不同类任何个数的情况)
    如图所示:
  8. universal approximation theorem2
    为了建模 Φ ( ∑ x ∈ S f ( x ) ) \Phi\left(\sum\limits_{x\in S}f(x)\right) Φ(x∈S∑​f(x)) 中的 Φ \Phi Φ 和 f f f,我们使用MLP:因为根据 universal approximation theorem,只有一个隐藏层的MLP只要隐藏层维度够宽,并有合适的非线性函数 σ ( ⋅ ) \sigma(\cdot) σ(⋅) (包括ReLU和sigmoid),就可以任意精度逼近任何连续函数。
  9. 应用MLP,我们可以用神经网络建模出任一单射的multiset函数,其形式即变为: MLP Φ ( ∑ x ∈ S MLP f ( x ) ) \text{MLP}_\Phi\left(\sum\limits_{x\in S}\text{MLP}_f(x)\right) MLPΦ​(x∈S∑​MLPf​(x))
    在实践中,MLP的隐藏层维度在100-500就够用了11
  10. Graph Isomorphism Network (GIN)1: MLP Φ ( ∑ x ∈ S MLP f ( x ) ) \text{MLP}_\Phi\left(\sum\limits_{x\in S}\text{MLP}_f(x)\right) MLPΦ​(x∈S∑​MLPf​(x))
    其聚合函数是单射的,没有区分失败的案例,是信息传递类GNN中表示能力最强的GNN
  11. GIN与WL graph kernel的关系
    我们通过将GIN与WL graph kernel(获得图级别特征的传统方法)做关联,来全面了解GIN模型。
    GIN可以说是WL graph kernel的神经网络版。
  12. WL graph kernel就像个硬编码的图神经网络。
    算法:color refinement
    迭代公式: c ( k + 1 ) ( v ) = HASH ( c ( k ) ( v ) , { c ( k ) ( u ) } u ∈ N ( v ) ) c^{(k+1)}(v)=\text{HASH}\left(c^{(k)}(v),\{c^{(k)}(u)\}_{u\in N(v)}\right) c(k+1)(v)=HASH(c(k)(v),{c(k)(u)}u∈N(v)​)
    迭代至稳定12后,如果两个图的颜色集相同,说明它们同构。
  13. GIN就用一个神经网络来建模这个单射的哈希HASH函数。
    单射函数建立在这个元组tuple上: ( c ( k ) ( v ) , { c ( k ) ( u ) } u ∈ N ( v ) ) \left(c^{(k)}(v),\{c^{(k)}(u)\}_{u\in N(v)}\right) (c(k)(v),{c(k)(u)}u∈N(v)​)(根节点特征,邻居节点颜色)
  14. 根据Xu et al. ICLR 20191 得到定理:这样一个元组上的单射函数可以被建模为: MLP Φ ( ( 1 + ϵ ) ⋅ MLP f ( c ( k ) ( v ) ) + ∑ u ∈ N ( v ) MLP f ( c ( k ) ( u ) ) ) \text{MLP}_\Phi\left((1+\epsilon)\cdot\text{MLP}_f(c^{(k)}(v))+\sum\limits_{u\in N(v)}\text{MLP}_f(c^{(k)}(u))\right) MLPΦ​((1+ϵ)⋅MLPf​(c(k)(v))+u∈N(v)∑​MLPf​(c(k)(u)))( ϵ \epsilon ϵ 是个可训练的标量)
  15. 如果输入特征(即初始颜色)是独热编码,那么直接加总就是单射的(跟上面的例子一样),我们就仅需 Φ \Phi Φ 来确保函数的单射,它需要产生独热编码来作为下一层的输入特征。即: GINConv ( c ( k ) ( v ) , { c ( k ) ( u ) } u ∈ N ( v ) ) = MLP Φ ( ( 1 + ϵ ) ⋅ c ( k ) ( v ) + ∑ u ∈ N ( v ) c ( k ) ( u ) ) \text{GINConv}\left(c^{(k)}(v),\{c^{(k)}(u)\}_{u\in N(v)}\right)=\text{MLP}_\Phi\left((1+\epsilon)\cdot c^{(k)}(v)+\sum\limits_{u\in N(v)}c^{(k)}(u)\right) GINConv(c(k)(v),{c(k)(u)}u∈N(v)​)=MLPΦ​((1+ϵ)⋅c(k)(v)+u∈N(v)∑​c(k)(u))
  16. GIN的节点嵌入更新过程:
    1. 分配节点的初始向量 c ( 0 ) ( v ) c^{(0)}(v) c(0)(v)
    2. 迭代更新: c ( k + 1 ) ( v ) = GINConv ( { c ( k ) ( v ) , { c ( k ) ( u ) } u ∈ N ( v ) } ) c^{(k+1)}(v)=\text{GINConv}\left(\left\{c^{(k)}(v),\{c^{(k)}(u)\}_{u\in N(v)}\right\}\right) c(k+1)(v)=GINConv({c(k)(v),{c(k)(u)}u∈N(v)​})
      GINConv相当于可微的color HASH函数,将不同输入映射到不同嵌入中(即单射)
    3. 经过K次迭代, c ( K ) ( v ) c^{(K)}(v) c(K)(v) 总结得到节点 v v v 的K跳邻居结构信息。
  17. GIN和WL graph kernel
    GIN相当于可微神经网络版的WL graph kernel
更新目标 更新函数
WL graph kernel 节点颜色(独热编码13 HASH
GIN 节点嵌入(低维向量) GINConv
GIN相较于WL graph kernel的优点在于:
  • 节点嵌入是低维的,因此可以捕获到细粒度的节点相似性14
  • GINConv的参数可被学习得到并应用于下流任务15

  1. GIN的表示能力
    由于GIN与WL graph kernel之间的关系,二者的表示能力是相同的,也就是对于一样的图,要么二者都能区分,要么都不能区分。
    在理论上和实践上,WL graph kernel都能区分现实世界的大部分图16,因此GIN也能区分现实世界的大部分图。
  2. 本节课总结
    1. 我们设计了一个可以建模单射的multi-set函数的神经网络
    2. 我们用这个神经网络来聚合邻居信息,得到GIN:表示能力最强的GNN模型
    3. 关键在于用element-wise sum pooling代替mean-/max-pooling
    4. GIN与WL graph kernel有关
    5. GIN和WL graph kernel都能区分现实世界的大部分图
  3. 各种池化方法的能力:
    sum能区分整个multiset,mean只能区分不同的分布,max只能区分元素类型集合
  4. 增加GNN的表示能力
    对于类似“节点处于不同环中”这种问题,GNN仍然无法区分(因为计算图相同)。解决方法可以是添加可区分节点的feature17,也可以使用reference node来区分相同计算图等。后续课程将会讲述具体做法。
    参考论文:18 19

  1. Xu, Bingbing & Shen, Huawei & Cao, Qi & Qiu, Yunqi & Cheng, Xueqi. (2019). Graph Wavelet Neural Network. ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎

  2. Kurt Hornik, Maxwell Stinchcombe, and Halbert White. Multilayer feedforward networks are universal approximators. Neural networks, 2(5):359–366, 1989.
    一个对该论文进行简单解读的博文:Multilayer Feedforward Networks are Universal Approximators_hn18000的专栏-CSDN博客
    我从这个网址下载了论文,去掉水印页,上传到GitHub,可供下载。 ↩︎ ↩︎

  3. 可参考我之前撰写的笔记:cs224w(图机器学习)2021冬季课程学习笔记2: Traditional Methods for ML on Graphs ↩︎ ↩︎

  4. 可参考我之前撰写的笔记:cs224w(图机器学习)2021冬季课程学习笔记9 Graph Neural Networks 2: Design Space ↩︎

  5. 我没看懂这部分什么意思……计算图和每个节点的rooted subtree结构一样是什么意思?
    我查了一下,subtree是树中也是树的子图(Definition:Subtree (Graph Theory)),rooted subtree是以原根节点为根节点的subtree(Definition:Rooted Subtree),所以我能理解计算图的有根子树互相之间是一样的(就是,迭代嘛,1的计算图里面有2和5的计算图的有根子树……这种感觉。我是这样理解的)。
    还是说这个子树指的是原图中以逐层邻居形成的子树(也就是计算图)?
    但是这部分具体在说什么我没搞懂。我感觉不影响我对全课纲要的理解,以后再研究这是啥意思吧。 ↩︎

  6. 我没看懂这张PPT是啥意思。大概意思是GNN每一步都聚集、存储来自孩子节点的信息,然后将其传播到父节点上,如此逐层传递的意思? ↩︎

  7. 就我感觉这个定理就挺直觉的……但是要证明也不会证明。 ↩︎

  8. 就这个定理更直觉了嘛,一种颜色所代表的最大值就唯一了,只要有这种颜色在就只能得到一种结果,那不管这种颜色有多少个都不影响结果。
    也就是说,只要保证每个multi-set里面都有所有的颜色种类就行,具体每个颜色多少个点无所谓。 ↩︎

  9. takeaway: a conclusion to be made based on presented facts or information
    来源:Takeaway | Definition of Takeaway by Merriam-Webster ↩︎

  10. 用这个例子作为证明应该是合理的,毕竟这个定理是“可以这样表示”,而例子就是证明这一点。 ↩︎

  11. 我看懂了MLP可以用来拟合出这样一个单射的函数,但是我怎么确定这样形成的函数是单射的?就是,我的目标函数要如何定义,才能训练出单射的效果?
    这部分我没搞懂。 ↩︎

  12. 这玩意真的能稳定吗我就没搞懂,我本来就没太搞懂这个算法……以后再看吧 ↩︎

  13. 关于节点颜色是什么表现形式其实我没搞懂,既然它说是独热的那就独热吧 ↩︎

  14. 关于为什么说低维向量的节点嵌入能够捕获节点相似性,我认为是因为节点嵌入就是一个向量嘛,可以根据向量之间的运算来得到节点相似性。就独热编码的话全部正交,肯定没有相似性可言了。
    但是为啥是细粒度的我没搞懂。 ↩︎

  15. 更新目标是节点嵌入,可应用于下流任务我懂,这个参数指的是那个 ϵ \epsilon ϵ?这玩意怎么应用于下游任务? ↩︎

  16. Jin-Yi Cai, Martin Fürer, and Neil Immerman. An optimal lower bound on the number of variables for graph identification. Combinatorica, 12(4):389–410, 1992 ↩︎

  17. 可参考我之前撰写的笔记:cs224w(图机器学习)2021冬季课程学习笔记10 Applications of Graph Neural Networks ↩︎

  18. Identity-aware Graph Neural Networks
    Jiaxuan You, Jonathan Gomes-Selman, Rex Ying, Jure Leskovec
    35th AAAI Conference on Artificial Intelligence (AAAI 2021)
    PDF
    Code
    Webpage ↩︎

  19. Distance Encoding: Design Provably More Powerful Neural Networks for Graph Representation Learning ↩︎

cs224w(图机器学习)2021冬季课程学习笔记11 Theory of Graph Neural Networks相关推荐

  1. cs224w(图机器学习)2021冬季课程学习笔记10 Applications of Graph Neural Networks

    诸神缄默不语-个人CSDN博文目录 cs224w(图机器学习)2021冬季课程学习笔记集合 文章目录 1. Graph Augmentation for GNNs 1.1 图特征增强Feature A ...

  2. cs224w(图机器学习)2021冬季课程学习笔记2: Traditional Methods for ML on Graphs

    诸神缄默不语-个人CSDN博文目录 cs224w(图机器学习)2021冬季课程学习笔记集合 文章目录 1. 章节前言 2. Traditional Feature-based Methods: Nod ...

  3. cs224w(图机器学习)2021冬季课程学习笔记20 Advanced Topics on GNNs

    诸神缄默不语-个人CSDN博文目录 cs224w(图机器学习)2021冬季课程学习笔记集合 文章目录 1. Advanced Topics on GNNs 2. Limitations of Grap ...

  4. cs224w(图机器学习)2021冬季课程学习笔记12 Knowledge Graph Embeddings

    诸神缄默不语-个人CSDN博文目录 cs224w(图机器学习)2021冬季课程学习笔记集合 文章目录 1. Heterogeneous Graphs and Relational GCN (RGCN) ...

  5. cs224w(图机器学习)2021冬季课程学习笔记16 Community Detection in Networks

    诸神缄默不语-个人CSDN博文目录 cs224w(图机器学习)2021冬季课程学习笔记集合 文章目录 1. Community Detection in Networks 2. Network Com ...

  6. cs224w(图机器学习)2021冬季课程学习笔记8 Colab 2

    诸神缄默不语-个人CSDN博文目录 cs224w(图机器学习)2021冬季课程学习笔记集合 VX号"PolarisRisingWar"可直接搜索添加作者好友讨论. 更新日志: 20 ...

  7. cs224w(图机器学习)2021冬季课程学习笔记4 Link Analysis: PageRank (Graph as Matrix)

    诸神缄默不语-个人CSDN博文目录 cs224w(图机器学习)2021冬季课程学习笔记集合 文章目录 1. Graph as Matrix 2. PageRank / the Google Algor ...

  8. cs224w(图机器学习)2021冬季课程学习笔记18 Colab 4:异质图

    诸神缄默不语-个人CSDN博文目录 cs224w(图机器学习)2021冬季课程学习笔记集合 文章目录 Question 1. DeepSNAP异质图简介 1.1 Question 1.1:分配Node ...

  9. cs224w(图机器学习)2021冬季课程学习笔记5 Colab 1:Node Embeddings

    诸神缄默不语-个人CSDN博文目录 cs224w(图机器学习)2021冬季课程学习笔记集合 文章目录 0. Python包导入 1. NetworkX数据获取.可视化 2. 探索NetworkX数据的 ...

最新文章

  1. 基于分布式的短文本命题实体识别之----人名识别(python实现)
  2. JAVA猴子选大王问题
  3. android中Camera setDisplayOrientation使用
  4. 《Python Cookbook 3rd》笔记(2.20):字节字符串上的字符串操作
  5. spark学习-29-源代码解析从start-all.sh脚本开始
  6. win7 java jna找不到_java – 资源路径中找不到JNA本机支持(/com/sun/jna/linux-arm/libjnidispatch.so)...
  7. java事件大全_JavaScript事件大全
  8. whitepages 爬取_运营笔记:是时候了解蜘蛛爬取原理了!揭秘收录难题!
  9. Java 集合系列 16 HashSet
  10. 转: Syslog协议介绍
  11. gitee怎么仓库间传文件_薄书的Gitee 码云使用教程学习纪录 - 薄书
  12. ORACLE11g R2数据库安装(一)
  13. python字典存储数据的形式_python字典的常用操作,数据类型划分
  14. How to choose the number oftopics/partitions in a Kafka cluster?
  15. QQ空间相册如何批量导出
  16. adb命令模拟按键事件 KeyCode
  17. 【HBuilderX】预编译器错误:代码使用了scss/sass语言,但未安装相应的编译器插件,请前往插件市场安装该插件:
  18. EfficientNetV2网络详解
  19. 10G SR光模块取消ER调试可行性分析
  20. free-excel (wps版) | 第七章 Excel函数-动态函数

热门文章

  1. 广度优先算法学习(BFS)
  2. Metasploit域渗透测试全程实录(终结篇)
  3. 不写期望薪资,还能有面试吗?
  4. 云计算 docker的安装及简单使用
  5. 一天下架近5万款APP!苹果“血洗”国区商店
  6. Linux下Bochs的使用(转载)
  7. 迅龙中文开源Web搜索引擎的目标
  8. Vue2.0 +Element-UI+Vuex实现导航栏收缩展开功能
  9. 使用 VXAPI ProtoBuf 工具抓取iPad微信Protobuf
  10. 基于clickhouse做用户画像,标签圈选