CS224W 8.2-Graph Neural Network
作者: 马东什么
编辑: Houye
上一节介绍了,
Cs224W 8.1-Graph Neural Network
图机器学习基础
图卷积和GraphSAGE
本小节从GCN过渡到graphsage的过程是非常自然,二者的不同之处仅仅是box处做了一些修改:
这里提到了weighted average,实际上指的就是当图为带权图的时候,我们进行average之前,每个节对应的要乘上edge的权重再平均,这实际上也是很好理解的,比如我认识很多大佬,但是大佬们都不认识我,所以他们收入高跟我可能没什么关系,我们之间的edge的权重可能是0.001.。。。。。
比较一下:
这里,我们从广义的角度上来定义聚合函数,即我们在GCN中使用的是简单的邻居的聚合,而在graphsage中,这个聚合函数的形式更加多样:
我们可以使用原来的mean的策略;也可以使用pooling的策略;甚至可以加一个LSTM进来,只不过因为lstm是序列相关的,而我们的节点是无序的,所以处理方法就是对节点进行几次shuffle,每次shuffle的结构都当作一个有order的序列然后传入LSTM进行训练;
总结一下,graphsage做了两个改变:
1、定义了广义的聚合函数,除了原来的mean之外,还会进行pool或者lstm的操作;
2、target node的embedding不再是和其领节点的embedding直接进行代数运算而是进行了concat的操作。
比如这里看右上角的A和C,GCN里A和C相加平均进入box,而graphsage是A和C进行concat之后进入box的,并且这里的box前的箭头也不再是简单的mean,还有pooling等操作。
ok,That's it~