美文网首页图学习
图方法学习-1. GraphSage

图方法学习-1. GraphSage

作者: logi | 来源:发表于2020-04-08 13:07 被阅读0次

动机

在很多深度学习任务中,embedding方法是一个基础且常用的方式,一般产出embeding的方法有几种:

  1. end2end:直接将sparse特征放到模型中,初始化对应大小的emb空间,通过完整的模型迭代优化emb
  2. 预训练:通过预先的模型进行训练如word2vec

本文关注于预训练部分的生成embedding的方法,graphSage。

图方法总述

在大规模图学习emb是近期比较火热并且确实比传统的word2vec有效的方式,如:deepWalk,node2vec的randomWalk等

图方法可以分为两种学习方式:

  1. 直推式学习:上边举得例子属于这种方法,这种方法不能直接对新节点进行泛化。因为它是基于固定的图结构进行学习,如果新加节点需要重新训练。
  2. 归纳学习:是指一般的学习任务,在位置数据上也有预测能力。GraphSAGE(Graph SAmple and aggreGatE)是一种归纳学习的图方法。

GraphSage

GraphSAGE的核心思路是:
『聚合节点邻居特征的信息』

GraphSage 前向过程-生成节点embedding

例子

下图红色节点是目标要生成emb的节点


agg方法步骤
  1. 采样:邻居采样降低复杂度,一度和二度采样(一度连接采样3个,二度链接采样5个)
  2. 聚合:分别聚合一度节点和二度节点得到两个emb;
  3. 输入网络预测:将聚合后的两个emb输入网络的到目标中心的emb。

代码流程

Algorithm

V 表示要得到emb的节点特征(可以认为是节点id和它相关的sideinfo)
K 表示采样聚合深度

步骤简要来说就是将目标节点的v按照深度k进行聚合得到k个emb再concat送入网络中预测得到emb

聚合的方法

指每一层节点的agg方法,主要有几种:

  1. mean:average pooling
  2. logit聚合(我自己取的名):就是将每层的每个节点的emb取平均后走一个加权的logit
  3. LSTM
  4. 不同emb的维度分块加权聚合:里有emb的前10维表示类别,后10维表示品牌,name这两组group可以用不同的权重和pooling方法聚合。

GraphSAGE的损失函数

可以分为有监督和无监督。

基于图的无监督

无监督主要根据图的结构学习,希望节点u与邻居v的embedding相似,与没有交集的不相似


无监督loss
  • Z_u为节点u通过GraphSAGE生成的embedding。
  • 节点v是节点u随机游走访达“邻居”。
  • V_n \sim P_n(v)表示负采样:节点是从节点u的负采样分布P_n采样的,Q为采样样本数。
  • embedding之间相似度通过向量点积计算得到

基于图的有监督

无监督损失函数的设定来学习节点embedding 可以供下游多个任务使用,若仅使用在特定某个任务上,则可以替代上述损失函数符合特定任务目标,如交叉熵。

反向传播-参数学习过程

与普通的神经网络一样用的Adam
参数和比较见附录的链接

Reference

GraphSAGE: GCN落地必读论文
PinSage:第一个基于GCN的工业级推荐系统

相关文章

网友评论

    本文标题:图方法学习-1. GraphSage

    本文链接:https://www.haomeiwen.com/subject/yygzphtx.html