GNN|李宏毅助教GNN视频笔记

介绍 一、Gragh
主要强调节点和边的性质。
二、GNN
1.GNN可以做分类和generation
2.三个小问题:
我们如何利用结构和关系来帮助我们的模型?
如果图像更大,比如20k 节点呢?
如果我们没有所有的标签呢?(标签不多情况下)
GNN|李宏毅助教GNN视频笔记
文章图片

一个节点可以从它的邻居那里学习结构,可以利用卷积
如何利用卷积将节点嵌入到特征空间中?
解决方案1: 将卷积(相关)概念推广到图形 > 基于空间的卷积
解决方案2: 回到信号处理中卷积的定义 > 基于谱的卷积
**
策略 GNN|李宏毅助教GNN视频笔记
文章图片

任务、数据集和基准 Tasks
半监督节点分类
回归
图分类
图表示学习
链路预测
数据集
(1)CORA: citation network. 2.7k nodes and 5.4k links
(2)U-MUTAG: 188 molecules with 18 nodes on average
Spatial-based GNN 现在如何把这个东西如何generise到gragh上面?
GNN|李宏毅助教GNN视频笔记
文章图片

现在这里是一个图形,每个节点上有一个特征。h30表示的第三个节点第0层
那我们知道,CNN的卷积是通过他们邻居进行卷积的。
GNN的卷积是通过该节点h30的邻居,如3个邻居以及本身得到h31
GNN|李宏毅助教GNN视频笔记
文章图片

Aggregate定义: 用 neighbor feature 更新下一层的 hidden state
以上了解到了hidden feature怎么得到的,下面了解整个gragh的node feature
Readout: 把所有 nodes 的 feature 集合起來代表整個 graph
GNN|李宏毅助教GNN视频笔记
文章图片

模型一:NN4G 输入的是输入是特征矩阵和临界矩阵,满足一般图的定义形式
input gragh长这个样子:5个节点,5个edge,都是特征
GNN|李宏毅助教GNN视频笔记
文章图片

但是这个node feature需要经过一个embedding layer来得到一个embedding(embedding是把文本属性变成数字).然后每个节点都进行一个embedding.
GNN|李宏毅助教GNN视频笔记
文章图片

重点来了,我们怎么做卷积?
GNN|李宏毅助教GNN视频笔记
文章图片

假设在Hidden layer1做卷积:
我们更新h30节点。先和3个邻居节点h00,h20,h40相加做weight transform,之后加上x3的一个权重。
那如何做Readout?
GNN|李宏毅助教GNN视频笔记
文章图片

假设已经做了很多层的一个卷积,且已知Readout是 把所有 nodes 的 feature 集合起來代表整個 graph的,上图是假设做了3层卷积,每一层做一次MEAN得到h0,h1,h2,分别代表了第i层的所有节点特征。这三个结果分别赋予不同的权重然后相加,得到一个y值,代表了这个gragh的特征。
模型二:DCNN (Diffusion-Convolution Neural Network ) GNN|李宏毅助教GNN视频笔记
文章图片

红色框出的部分就是说h30这个节点,把距离是1的所有节点(h00,h20,h40)做一个平均。同理,其他的节点更新也是如此。
GNN|李宏毅助教GNN视频笔记
文章图片

红色框和上面是一样的,h31这个节点把距离是2的所有节点(h11)做一个平均,但是它的特征是加黄色部分的featrue,而不是蓝色框的featrue.,同理其他节点也是这样更新。
GNN|李宏毅助教GNN视频笔记
文章图片

这一步是每一层把各自的h0,h1,h2,h3,h4叠加起来一个矩阵,得到一个H矩阵
GNN|李宏毅助教GNN视频笔记
文章图片

然后把每一个矩阵里面相对于的特征抽出来,叠加,和权重相乘,得到y1
同理,然后得到y2,y3…然后权重相乘又相加,得到图的特征
模型三:DGC (Diffusion Graph Convolution) 【GNN|李宏毅助教GNN视频笔记】GNN|李宏毅助教GNN视频笔记
文章图片

这个相对上面一个,是直接相加,而不是抽出一小部分。
模型四:MoNET (Mixture Model Networks) 1.在节点“距离”上定义度量值
2.使用加权求和(平均值),而不是简单地求和(平均值)相邻特征。
degree节点的度就是节点相连的键的个数
GNN|李宏毅助教GNN视频笔记
文章图片

其它的模型节点的更新是单纯的相邻节点相加,但是这个模型就是给相邻节点增加一个权重u(x,y)。
u(x,y)也可以代表是一个距离的概念,如u(3,0)表示h31到h00的距离大概多远
比如说u(3,0)=(1/根号(1/deg(2)),1/deg(3))T
【这里的2是h00的度是2,这里的3是h31的度是3】
GNN|李宏毅助教GNN视频笔记
文章图片

之后更新每一个节点
模型五:GraphSAGE AGGREGATION: mean, max-pooling, or LSTM
GNN|李宏毅助教GNN视频笔记
文章图片

模型六:GAT (Graph Attention Networks) e3,0 e3,2 e3,4 代表的是energy
energy代表的是对h30来说,h00是有多重要。对h30来说,h20是有多重要。对h30来说,h40是有多重要。
计算完energy就可以更新h30的值了
GNN|李宏毅助教GNN视频笔记
文章图片

模型七:GIN (Graph Isomorphism Network)
1)A GNN can be at most as powerful as WL isomorphic test
GNN|李宏毅助教GNN视频笔记
文章图片

这里节点的更新,就是:把改节点的令居全部加起来,加上关于自己节点

GNN|李宏毅助教GNN视频笔记
文章图片

2)Sum 取代mean 或者 max,MLP 取代了 1-layer
GNN|李宏毅助教GNN视频笔记
文章图片

就是MAX和MEAN可能会忽略了结构

    推荐阅读