Graph Embedding之GraphSAGE

Introduction

  GraphSAGE是大神Jure Leskovec团队在图表示学习领域的又一力作。首先,跟其他所有的Graph Embedding算法一样,作者认为Graph Embedding在图数据相关的机器学习领域有着举足轻重的作用。作者将Graph Embedding方法划分成了两大类:transductive和inductive两类,其中transductive方法需要将整个图中的所有数据都加入到Embedding过程中,并且不能对新加入的数据及未知的数据进行Embedding。而inductive方法不需要将整个图的数据全部加入到Embedding过程中,且对未知的数据具有很好的泛化能力。且inductive方法在具有相同特征的图之间具有一定的泛化能力,即:我们可以在一个图上训练好inductive方法,然后将其用在同类型的图上进行节点嵌入,因为改方法在同类型未知数据上具有很好的泛化能力。作者在本文中提出的GraphSAGE(SAmple and aggreGatE)就是一种典型的inductive方法,以inductive方式进行Graph Embedding通常比较困难,因为与transductive方法相比,为了对未知数据进行泛化,需要对新的子图向已经优化的节点嵌入进行校准。inductive框架必须能够识别一个顶点的邻域的结构属性——该顶点在图中的局部角色以及在全图中的位置。
  作者提出的GraphSAGE是一种inductive的顶点embedding方法,与使用矩阵因式分解的方法不同,GraphSAGE使用了顶点的特征(features)来学习一个可以泛化到未知数据的embedding方法。通过在学习算法中加入顶点特征,GraphSAGE同时学习了每个顶点的邻域的拓扑结构以及邻域内顶点特征的分布。GraphSAGE在利用中顶点的内容特征(如属性,文本内容等)的同时,也可以利用图中存在的所有的结构特征(如顶点度数,中心度等)。除此之外,GraphSAGE还可以用于顶点没用特征的图。
  与为每个顶点学习一个唯一的embedding向量不同,GraphSAGE为每个顶点学习一组可以聚合顶点领域信息的聚合函数(aggregator functions)。每个聚合函数学习一个不同hop或查找深度的邻域信息。如图1所示,红点两个aggregator函数,分别用来学习当前红点1-hop和2-hop的领域信息。蓝色表示红色顶点1-hop领域信息,绿色表示红色顶点2-hop领域信息。这样,在测试或推理时,就可以使用训练好的的系统,通过学习到的的聚合函数为完全未知的顶点生成embedding向量。我们设计了一个无监督的损失函数,该函数允许在没有特定任务监督的情况下训练GraphSAGE。另外作者还证明了GraphSAGE还可以在完全监督的方式下进行训练。

Figure 1: Visual illustration of the GraphSAGE sample and aggregate approach

算法描述

  GraphSAGE背后的核心思想是:学习如何从一个顶点的局部领域聚合信息。作者首先介绍了Embedding生成方法(即正向传播),即在假设GraphSAGE模型参数已经习得的情况下,如何未每个顶点生成embedding结果。然后介绍了如何利用标准的随机梯度下降(SGD)和反向传播技术(BP)来学习GraphSAGE的模型参数。

1. Embedding generation (i.e., forward propagation) algorithm

  这部分主要阐述,在GraphSAGE模型参数已经学习好的情况下,如何利用该模型为每个顶点生成embedding结果。假设已经学习到\small K个聚合函数\small \text {AGGREGATE}_k,\forall k \in \lbrace 1, \dots,K \rbrace的所有参数\small W^k,\forall k \in \lbrace 1, \dots,K \rbrace。这些聚合函数用于在不同的层或查找深度之间传播信息。算法具体过程如Algorithm 1所示。

Algorithm 1

  Algorithm 1背后最直观的认知就是:在每个迭代(查找深度)中,每个顶点会从领域中聚合信息,随着不断迭代,顶点会逐渐聚合途中查找深度越来越大的领域信息。Algorithm 1描述了在给定图\small G=(V,E)和每个顶点的特征\small X_v, \forall v \in V的Embedding生成过程。Algorithm 1外循环中的每一步都是这样进行的,其中\small k表示第\small k次循环,\small h^k表示一个顶点在当次循环中的表示:首先,对于每个顶点\small v \in V,将其直接领域中的表示信息\small \lbrace h_u^{k-1},\forall u \in N(v) \rbrace聚合成一个向量\small h_{N(v)}^{k-1}。需要注意的是,当次循环的聚合步骤依赖于上一循环的聚合结果,其中\small k=0的表示信息是初始化的时候输入的。当聚合完邻接顶点的特征向量后,GraphSAGE将顶点的当前特征表示\small h_v^{k-1}与领域信息聚合后的特征向量\small h_{N(v)}^{k-1}进行连接,然后这个连接后的向量喂给一个非线性的激活函数\sigma,将其转换成算法的在下一步中要使用的表示,即\small h_v^k,\forall v \in V。为了便于标记,我们将在深度\small K处的最终的特征向量输出表示为\small z_v \equiv h_v^K, \forall v \in V。Algorithm 1中的\small \text{AGGREGATE}可以通过一系列的aggregator来实现,后面会详细介绍。

2. Learning the parameters of GraphSAGE

  为了以完全无监督的方式学习顶点的表示向量\small z_u,\forall u \in V,作者在GraphSAGE中应用了一个基于图的损失函数,并通过随机梯度下降(SGD)来调整权重矩阵\small W^k, \forall k \in \lbrace 1, \cdots, K \rbrace和每个聚合函数的参数。该基于图的损失函数鼓励邻近的顶点具有相似的特征表示,不相邻的顶点之间具有不同的表示。损失函数表示如下:
J_G(z_u)=-\log(\sigma(\mathbf{z_u}^\top \mathbf{z_v}))-Q \cdot \Bbb E_{v_n \sim P_n(v)} \log(\sigma(-\mathbf{z_u}^\top \mathbf{z_{v_n}}))其中\small v是固定深度的随机游走序列中与顶点\small u邻接共现的顶点,\small \sigma是sigmoid函数,\small \P_n是一个负采样分布,\small Q是负采样的样本数目。与之前的embedding方法不同的是,我们喂入损失函数的表示\small z_u是由一个节点的局部领域信息的特征生成的,而不是为每个节点单独训练得到的一个唯一的嵌入向量。
  这种无监督场景模拟了向下游机器学习应用程序以服务或静态库存储的方式提供节点表示向量的情况。如果这些表示向量仅用于特定的下游任务,则该无监督损失函数可以简单地替换成用特定于任务的目标函数(如交叉熵损失)。

Algorithm 2
3. Aggregator Architectures

  与在N维的场景上的机器学习不同,一个顶点的邻域往往不具有自然顺序,因此Algorithm 1中的聚合函数必须能够操作一个无序的向量集合。理想情况下,这些聚合函数是对称的,同时可训练,且具有很高的表示能力。聚集函数的对称性保证了GraphSAGE的神经网络模型可以被训练和应用于任意有序的节点邻域特征集。因此作者在该文尝试了三种聚合函数:Mean aggregatorLSTM aggregator以及Pooling aggregator。关于这三种聚合函数的异同和应用场景,可以直接参考作者的 论文。

参考:
Inductive Representation Learning on Large Graphs
https://cs.stanford.edu/~jure/index.html

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 158,847评论 4 362
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,208评论 1 292
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,587评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,942评论 0 205
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,332评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,587评论 1 218
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,853评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,568评论 0 198
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,273评论 1 242
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,542评论 2 246
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,033评论 1 260
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,373评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,031评论 3 236
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,073评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,830评论 0 195
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,628评论 2 274
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,537评论 2 269