FastGCN Fast Learning with Graph Convolutional Networks via Importance Sampling

Chen J., Ma T. and Xiao C. FastGCN: fast learning with graph convolutional networks via importance sampling. ICLR, 2018.

一般的 GCN 每层通常需要经过所有的结点的 propagation, 但是这是费时的. 像普通的深度学习方法一样利用 mini-batch 的训练方式由于缺乏独立性的保证而不能非常有效地施展. 本文提出地 FastGCN 希望解决这个问题.

符号说明

  • H(l), 第 l 层的 embeddings;
  • W(l), 第 l 层的 权重;
  • A^, 邻接矩阵;
  • GCN 的 propagation 过程:

    H(l+1)=σ(A^H(l)W(l)).

Motivation

  • 在深度学习中, 我们通常需要优化这样的一个损失:

    L=ExD[g(W;x)],

    通常我们通过独立地采样点来近似期望:

    Lemp=1ni=1ng(W;xi),xiD,i.

  • 但是在图中, 独立性是难以保障的, 因为, 在 GCN 中, 数据成了结构的一部分, 即 A^ 的存在导致即使我们独立地采样样本点, 但是邻接矩阵是无法保证和完整的邻接矩阵一个效果的.

FastGCN

  • 假设我们拥有图 G=(V,E), 它包含了所有在现在和未来可能遇到的结点, 且我们假设结点集合 V 上存在这样的一个概率空间: (V,F,P), 其中 F 是定义的域 (如 2V), P 是某个概率测度.

  • 我们把 GCN 的每一层看成是如下的积分变换:

    h~(l+1)(v)=A^(v,u)h(l)(u)W(l)dP(u),h(l+1)(v)=σ(h~(l+1)(v)),l=0,,M1.

    这里, 我们将 h 看成是一个 embedding function, 给定结点返回对应的特征.

  • 类似地, 我们可以将图上的训练损失表示为:

    L=EvP[g(h(M)(v))]=g(h(M)(v))dP(v).

  • 于是, 我们可以通过采样来近似:

    h^(l+1)(v):=1tlj=1tlA^(v,uj(l))h^(l)(uj(l))W(l),L^:=1tMi=1tMg(h^(M)(ui(M))).

  • 可以证明 (依概率 1):

    limt0,t1,,tM+L^=L.

  • 当我们选择 P 为均匀采样的时候, 算法如下:

  • 其中 n 是因为, 原来的 GCN 的 aggregation 过程:

    h(v)=uA^(v,u)h(u)W=n1nuA^(v,u)h(u)W=nEu[A^(v,u)h(u)W]n1tj=1t[A^(v,uj)h(uj)W].

方差分析

  • 令:

    y(vi):=1tj=1tA^(v,uj)x(uj)

    表示一个结点的估计, 作者希望估计

    G:=1si=1sy(vi)

    的方差.

  • 其方差如下 (u,v 是独立的):

    Var(G)=R+1stA^(v,u)2x(u)2dP(u)dP(v),

    其中

    R=1s(11t)e(v)2dP(v)1s(e(v)dP(v))2,e(v)=A^(v,u)x(u)dP(u).

    注: 作者证明的时候, 用到了一个很有意思的性质:

    Varu,v{f(u,v)}=Eu,v{(f(u,v)Eu,v[f(u,v)])2}=Eu,v{(f(u,v)Eu[f(u,v)])2}+Ev{(Eu[f(u,v)]Eu,v[f(u,v))2}=Ev{Varu(f(u,v))}+Varv{Eu[f(u,v)]}.

  • 通过改变采样策略, 我们可以改进第二项的值从而改进方差, 从而作者引入了 importance sampling, 即

    yQ(v):=1tj=1tA^(v,uj)x(uj)(dP(u)dQ(u)|uj),,u1,,utQ.

    从而:

    GQ:=1si=1syQ(vi).

  • 这样最优的 Q 为:

    dQ(u)=b(u)|x(u)|dP(u)b(u)|x(u)|dP(u),b(u)=[A^(v,u)dP(v)]1/2,

    使得

    Var{GQ}=R+1st[b(u)|x(u)|dP(u)]2.

  • 但是这个有一个问题, 就是在训练过程中 x(u) 是时刻在变化的, 所以这个分布是不稳定的, 故实际中, 作者选择

    dQ(u)=b(u)2dP(u)b(u)2dP(u).

  • 在实际中, 我们可以定义:

    q(u)=A^(:,u)2/uVA^(:,u)2,uV.

  • 基于重要性采样的算法如下:

代码

official

posted @   馒头and花卷  阅读(116)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
历史上的今天:
2020-04-16 Geometric GAN
2020-04-16 McGan: Mean and Covariance Feature Matching GAN
点击右上角即可分享
微信分享提示