很好的综述
Deepwalk
Deepwalk[2014] : DeepWalk: online learning of social representations
通过node之间的共现关系对graph中的node进行embdding。
deepwalk的工作就是在graph上构造这些“句子”,然后直接使用word2vec模型训练得到graph中每个node的embedding表示。
从当前node开始random walk,根据均等的概率来完全随机的选择下一个相邻节点,构成长度为t的"句子"。实际上random walk是一种可回头的深度优先搜索。在"句子"里再用size为w的窗口进行skip-gram训练。

LINE:Large-scale Information Network Embedding
用边的权重做Lable,用sigmoid(u[i]点乘u[j])做概率去拟合Lable;
还考虑了二阶相邻;
从而让邻居或者间接邻居的结点pair,彼此向量长得像;
Node2vec
要想从一个节点去寻找它的直接邻居,就要通过BFS(广度优先搜索),而如果想找到那些结构相似的,我们就不能在邻居那里转圈圈的,就需要“走出去”,因此就需要通过DFS(深度优先搜索)。
p控制着回到原节点的概率;成q为In-out parameter,因为它控制着BFS和DFS的关系。
Struct2vec
struc2vec: Learning Node Representations from Structural Identity
分成K层(第k层包含了1~k个hop上的节点度序列)
是用Dynamic Time Warping (DTW,动态规划)来计算序列和序列的相似度(语音识别上用来计算词和模板库词们的相似度)
每层上,距离越小的2个节点,越有更高的概率出现在采样序列里的相邻位置;
每个节点,有一定的概率跳到自己这个节点的上一层或者下一层;
采样还是用SkipGram+NegativeSampling来做的;
本质:如果两个节点的度相同,那么这两个节点结构相似;如果这两个节点的邻居度也相同,那么这两个节点的结构相似性比前者更高。相似性越高的2个节点,彼此在采样时转移到对方的概率就越大,训练得到的NodeEmbedding也就可能越象;
GraphSAGE
支持属性做node的特征:用邻居node的属性特征来aggregate成自己node,或者用邻居node的embedding来aggregate成自己node;
支持新增加的node: 新增node就执行K轮,每轮用训练好的aggregator来综合,并将前轮的结果concatenate上,过一层神经网络得到k+1轮的embedding;
损失函数就是negative-sampling,把互为邻居的node的embedding往更相似里走,把不相干的node的embedding往更远里走;
CANE
1. 让node embedding不仅包含structural信息,也包含node自身文本信息;
2. node-u和不同的邻居节点,会表现出不同的embedding出来;即上下文相关;实现:用2个Sentence输入网络算出2组权重,对Sentece进行带权重的pooling得到上下文相关的embedding;
优化目标:极大似然p(v|u);简化计算量:negative-sampling
图神经网络概览
本文综述了多种图神经网络模型,包括Deepwalk、LINE、Node2vec、Struct2vec、GraphSAGE和CANE。介绍了它们如何通过不同策略如随机游走、结构身份学习、属性聚合等,对图中的节点进行嵌入表示,以捕捉节点的结构和属性信息。
13万+

被折叠的 条评论
为什么被折叠?



