图神经网络解决的什么问题
本质上解决的是表示学习的问题
得到节点的向量,就可以做下游任务了
我们学习的就是这个 f() 怎么构建
可以看作是一个编码器encoder
邻接矩阵 包含了节点相互连接的所有信息,能够直接将邻接矩阵输入到神经网络中??
节点换换位置,他的输入就不同了。
同一个数据的节点嵌入表示结果,应该与节点编号无关。
下面是个例子 图一和图二节点连接是一样的(只是编号不一样),但是嵌入的邻接矩阵不一样---所以想和个想法不行
卷积神经网络
但是在图里面,滑动窗口怎么设计??,从那开始滑动?按什么顺序滑?
coangtu而且图是可以扭曲的,所以不行。
如何设计出一个不变的图神经网络呢----消息传递的框架
最重要是构造计算图,广泛收集我的邻居节点对我的意见,我再更新我自己对我i自己的了解,不断迭代,获得我自己的 embedding, 这样顺序是不变的,因为我的邻居是不变的。
在和构建图中共有两个神经网络:1,黑色方块(BCD三个共享); 3,灰色方块
从图中可以看出后两个节点可能相似
每个图可以换分为许多子图,每个节点都可以构造吹自己的计算图,每个计算图就是训练GNN的一个样本点,他是具有特征和标签的,然后用传统的神经网络那一套就可以训练了。就可以获得每个节点的 embedding ,从而得到全图的 embedding,然后就可以做下游任务了。
这里的层数是2,相当于几跳。(一般都是2层),如果层数太多,链接相同的节点越来越多,就可能过拟合。
(这里是逐个元素求平均(或者别的方法),所以先加哪个元素都一样,所以说与节点顺序无关)
黑色方块和灰色方块中是什么? 就是全连接神经网络
输入原始图 经过GNN 处理 输出一个图(图中的节点特征都变成了他的嵌入)