提示:文章地址:
前言
本文先讨论了将边,点嵌入为向量(其中全局元素是假设可与所有点和边相连)以及信息的汇聚。然后讨论在MLP的基础上如何进行层间的传递。在文章末尾提到了一些细节。
提示:文章地址:
https://github.com/mli/paper-reading
文章网址地址:https://distill.pub/2021/gnn-intro/
数据嵌入
对
图
的
数
据
进
行
嵌
入
:
对图的数据进行嵌入:\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \
对图的数据进行嵌入:
全
局
信
息
是
假
设
可
以
与
所
有
点
所
有
边
相
连
的
,
可
以
帮
助
两
个
距
离
很
的
点
交
互
全局信息是假设可以与所有点所有边相连的,可以帮助两个距离很的点交互
全局信息是假设可以与所有点所有边相连的,可以帮助两个距离很的点交互
复杂的情况:缺少对应信息的嵌入
您
可
能
将
图
中
的
信
息
存
储
在
边
中
,
但
节
点
中
没
有
信
息
,
但
仍
需
要
对
节
点
进
行
预
测
。
我
们
需
要
一
种
从
边
缘
收
集
信
息
并
将
它
们
提
供
给
节
点
进
行
预
测
的
方
法
。
我
们
可
以
通
过
“
p
o
o
l
i
n
g
”
来
做
到
这
一
点
。
池
化
分
两
步
进
行
:
1.
对
于
要
合
并
的
每
个
项
目
,
收
集
它
们
的
每
个
嵌
入
并
将
它
们
连
接
成
一
个
矩
阵
。
2.
然
后
聚
合
收
集
的
嵌
入
,
通
常
通
过
求
和
操
作
。
您可能将图中的信息存储在边中,但节点中没有信息,但仍需要对节点进行预测。\\我们需要一种{\color{red}从边缘收集信息并将它}{\color{red}们提供给节点进行预测}的方法。\\我们可以通过“pooling”来做到这一点。池化分两步进行:\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \\ 1.对于要合并的每个项目,收集它们的每个嵌入并将它们连接成一个矩阵。\\ 2.然后聚合收集的嵌入,通常通过求和操作。
您可能将图中的信息存储在边中,但节点中没有信息,但仍需要对节点进行预测。我们需要一种从边缘收集信息并将它们提供给节点进行预测的方法。我们可以通过“pooling”来做到这一点。池化分两步进行: 1.对于要合并的每个项目,收集它们的每个嵌入并将它们连接成一个矩阵。2.然后聚合收集的嵌入,通常通过求和操作。
层间传递
直接传递
各
种
嵌
入
使
用
M
L
P
独
自
更
新
(
每
一
层
三
个
M
L
P
,
所
有
顶
点
,
边
共
享
一
个
M
L
P
,
全
局
特
征
使
用
一
个
M
L
P
)
:
各种嵌入使用MLP独自更新(每一层三个MLP,所有顶点,边共享一个MLP,全局特征使用一个MLP):
各种嵌入使用MLP独自更新(每一层三个MLP,所有顶点,边共享一个MLP,全局特征使用一个MLP):
顶点1近邻信息交互
可
能
感
觉
这
样
并
没
有
使
用
到
顶
点
和
顶
点
之
间
的
相
互
信
息
,
考
虑
临
街
顶
点
信
息
汇
聚
(
把
三
个
嵌
入
相
加
)
再
进
行
更
新
:
可能感觉这样并没有使用到顶点和顶点之间的相互信息,考虑临街顶点信息汇聚{\tiny (把三个嵌入相加)}再进行更新:
可能感觉这样并没有使用到顶点和顶点之间的相互信息,考虑临街顶点信息汇聚(把三个嵌入相加)再进行更新:
用图表示为
边和点信息的互传
在信息嵌入时已经有了边和点信息的互传,我们可以不等到最后一层再做汇聚操作。
还
有
两
边
同
时
汇
聚
的
方
法
:
不
过
这
是
先
汇
聚
信
息
c
o
n
t
a
c
t
起
来
,
然
后
下
一
步
再
加
起
来
还有两边同时汇聚的方法:不过这是先汇聚信息contact起来,然后下一步再加起来
还有两边同时汇聚的方法:不过这是先汇聚信息contact起来,然后下一步再加起来
输出结果
同 样 , 一 个 节 点 如 果 需 要 输 出 , 比 如 2 分 类 , 只 需 要 加 一 个 2 节 点 M L P − > S o f t m a x 就 能 得 到 对 应 的 类 别 ( 和 之 前 一 样 , 不 管 有 多 少 个 顶 点 , 只 有 一 个 全 连 接 层 ) : 同样,一个节点如果需要输出,比如2分类,只需要加一个2节点MLP->Softmax就能得到对应的类别(和之前一样,不管有多少个顶点,只有一个全连接层):\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ 同样,一个节点如果需要输出,比如2分类,只需要加一个2节点MLP−>Softmax就能得到对应的类别(和之前一样,不管有多少个顶点,只有一个全连接层):
最终的结构:
试一试(作者再网页种用javascript实现了一个模型,可尝试改变数据)
以上模型超参数分析:
看层数的影响:可见层数增加AUC是相应增加的,中值逐渐上升,但是结果的方差还是很大的,需要细调其他参数
感应偏差
在构建模型以解决特定类型数据的问题时,我们希望专门化我们的模型以利用该数据的特征。当这成功完成时,我们通常会看到更好的预测性能、更短的训练时间、更少的参数和更好的泛化能力。
在图像上标记时,我们希望利用狗仍然是狗的事实,无论它位于图像的左上角还是右下角。因此,大多数图像模型使用卷积,它是平移不变的。
对于文本,标记的顺序非常重要,因此循环神经网络按顺序处理数据。此外,一个标记(例如单词“not”)的存在会影响句子其余部分的含义,因此我们需要可以“关注”文本其他部分的组件,例如 BERT 和 GPT 等转换器模型-3 可以。
这些是归纳偏差的一些示例,我们在其中识别数据中的对称性或规律性,并添加利用这些属性的建模组件。
不
同
的
采
样
方
法
得
到
一
个
子
图
:
不同的采样方法得到一个子图:
不同的采样方法得到一个子图:
标注:
1:汇聚方法种使用了加法,可能相加的两个维度不同,默认可以使用投影到相同的维度。
2:除加法外,还可以使用求平均,取最大值方法进行汇聚