首页 > 其他分享 >FastGCN Fast Learning with Graph Convolutional Networks via Importance Sampling

FastGCN Fast Learning with Graph Convolutional Networks via Importance Sampling

时间:2023-04-16 17:24:18浏览次数:47  
标签:Convolutional mathbb via frac Importance Big sum hat dP

目录

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\) 层的 权重;
  • \(\hat{A}\), 邻接矩阵;
  • GCN 的 propagation 过程:

    \[H^{(l+1)} = \sigma (\hat{A}H^{(l)}W^{(l)}). \]

Motivation

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

    \[L = \mathbb{E}_{x \sim D} [g(W; x)], \]

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

    \[L_{emp} = \frac{1}{n} \sum_{i=1}^n g(W; x_i), \quad x_i \sim D, \forall i. \]

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

FastGCN

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

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

    \[\tilde{h}^{(l+1)}(v) = \int \hat{A}(v, u) h^{(l)}(u) W^{(l)} \mathrm{d} P(u), \\ h^{(l+1)}(v) = \sigma(\tilde{h}^{(l+1)}(v)), \\ l=0,\ldots, M-1. \]

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

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

    \[L = \mathbb{E}_{v \sim P}[g(h^{(M)}(v))] = \int g(h^{(M)}(v)) \mathrm{d} P(v). \]

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

    \[\hat{h}^{(l+1)} (v) := \frac{1}{t_l} \sum_{j=1}^{t_l} \hat{A}(v, u_j^{(l)}) \hat{h}^{(l)} (u_j^{(l)}) W^{(l)}, \\ \hat{L} := \frac{1}{t_M} \sum_{i=1}^{t_M} g(\hat{h}^{(M)}(u_i^{(M)})). \]

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

    \[\lim_{t_0, t_1, \ldots, t_M \rightarrow + \infty} \hat{L} = L. \]

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

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

    \[\begin{array}{ll} h(v) &= \sum_{u} \hat{A}(v, u) h(u) W \\ &= n \cdot \frac{1}{n} \sum_{u} \hat{A}(v, u) h(u) W \\ &= n \cdot \mathbb{E}_{u} [\hat{A}(v, u) h(u) W] &\approx n \cdot \frac{1}{t} \sum_{j=1}^{t} [\hat{A}(v, u_j) h(u_j) W]. \end{array} \]

方差分析

  • 令:

    \[y(v_i) := \frac{1}{t} \sum_{j=1}^t \hat{A}(v, u_j) x(u_j) \]

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

    \[G := \frac{1}{s} \sum_{i=1}^s y(v_i) \]

    的方差.

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

    \[\text{Var}(G) = R + \frac{1}{st} \int \int \hat{A}(v, u)^2 x(u)^2 dP(u) dP(v), \]

    其中

    \[R = \frac{1}{s}(1 - \frac{1}{t}) \int e(v)^2 dP(v) - \frac{1}{s} (\int e(v) d P(v))^2, \\ e(v) = \int \hat{A}(v, u) x(u) dP(u). \]

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

    \[\begin{array}{ll} \text{Var}_{u,v}\Big\{ f(u, v) \Big\} &=\mathbb{E}_{u,v}\Big\{ (f(u, v) - \mathbb{E}_{u,v}[f(u, v)])^2 \Big\} \\ &=\mathbb{E}_{u,v}\Big\{ (f(u, v) - \mathbb{E}_{u}[f(u, v)])^2 \Big\} + \mathbb{E}_{v}\Big\{ (\mathbb{E}_{u}[f(u, v)] - \mathbb{E}_{u,v}[f(u, v))^2 \Big\} \\ &=\mathbb{E}_{v}\Big\{ \text{Var}_u(f(u, v)) \Big\} + \text{Var}_{v}\Big\{ \mathbb{E}_{u}[f(u, v)] \Big\}. \end{array} \]

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

    \[y_Q(v) := \frac{1}{t} \sum_{j=1}^t \hat{A}(v, u_j) x(u_j) (\frac{dP(u)}{dQ(u)}|_{u_j}), \quad, u_1, \ldots, u_t \sim Q. \]

    从而:

    \[G_{Q} := \frac{1}{s} \sum_{i=1}^s y_Q(v_i). \]

  • 这样最优的 \(Q\) 为:

    \[dQ(u) = \frac{b(u)|x(u)| dP(u)}{\int b(u)|x(u)| dP(u)}, \: b(u) = [\int \hat{A}(v, u) dP(v)]^{1/2}, \]

    使得

    \[\text{Var}\{G_Q\} = R + \frac{1}{st} [\int b(u) |x(u)| dP(u)]^2. \]

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

    \[dQ(u) = \frac{b(u)^2 dP(u)}{\int b(u)^2 dP(u)}. \]

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

    \[q(u) = \|\hat{A}(:, u)\|^2 / \sum_{u' \in V} \|\hat{A}(:, u')\|^2, \quad \forall u \in V. \]

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

代码

official

标签:Convolutional,mathbb,via,frac,Importance,Big,sum,hat,dP
From: https://www.cnblogs.com/MTandHJ/p/17323626.html

相关文章

  • Deeper Insights into Graph Convolutional Networks for Semi-Supervised Learning
    目录概符号说明Laplaciansmoothing代码LiQ.,HanZ.andWuX.Deeperinsightsintographconvolutionalnetworksforsemi-supervisedlearning.AAAI,2018.概本文分析了GCN的实际上就是一种Smoothing,但是如果层数过多就会导致over-smoothing.符号说明\(\mat......
  • Stochastic Training of Graph Convolutional Networks with Variance Reduction
    目录概符号说明Motivation本文方法代码ChenJ.,ZhuJ.andSongL.Stochastictrainingofgraphconvolutionalnetworkswithvariancereduction.ICML,2018.概我们都知道,GCN虽然形式简单,但是对于结点个数非常多的情形是不易操作的:多层的卷积之后基本上每个结点......
  • nfs via ssh tunnel(通过ssh隧道跨网络挂载nfs)
    这篇代码段帮了大忙:https://gist.github.com/proudlygeek/5721498下面给出我的设置:我要在机器97上访问机器231上的硬盘,需要把231上的/data1/ubuntu挂载到97上1.共享nfs文件夹在231上编辑:/etc/exports(需要root)ubuntu@lthpc:~$cat/etc/exports/data1/ubuntulocalhost(ins......
  • MULTIINSTRUCT: Improving Multi-Modal Zero-Shot Learning via Instruction Tuning
    指令调优是一种新的学习范式,它可以根据指令指定的任务对预先训练好的语言模型进行微调,在各种自然语言处理任务中显示出良好的零目标性能。然而,对于视觉和多模态任务,它仍然没有被探索。在这项工作中,我们介绍了multiinstruction,这是第一个多模态指令调优基准数据集,由47个不同的多模......
  • Sequential Recommendation via Stochastic Self-Attention
    目录概符号说明MotivationSTOSA代码FanZ.,LiuZ.,WangA.,NazariZ.,ZhengL.,PengH.andYuP.S.Sequentialrecommendationviastochasticself-attention.InternationalWorldWideWebConference(WWW),2022.概Stochasticembeddings和Wassersteinattent......
  • The Importance of Money in Life
    Whatwereyoutaughtaboutmoneyasyouweregrowingup?somethinglike"Moneydoesn'tgrowontrees",or"Moneyistherootofallevil",ormaybe"allrichpeoplearegreedy"? Well,howdoyouexpecttobecomeasuccessf......
  • 卷积神经网络(Convolutional Neural Network)
    前置芝士:神经网络前言人脑视觉机理,是指视觉系统的信息处理在可视皮层是分级的,大脑的工作过程是一个不断迭代、不断抽象的过程。视网膜在得到原始信息后,首先经由区域V1初步处理得到边缘和方向特征信息,其次经由区域V2的进一步抽象得到轮廓和形状特征信息,如此迭代地经由更多更高层......
  • 论文阅读笔记(五):Hire-MLP Vision MLP via Hierarchical Rearrangement
    论文阅读笔记(五):Hire-MLP:VisionMLPviaHierarchicalRearrangement摘要先前的MLPs网络接受flattened图像patches作为输入,使得他们对于不同的输入大小缺乏灵活性,并且......
  • 【825】journal abbreviation elsevier,投稿杂志缩写查找
    https://jcr-clarivate-com.wwwproxy1.library.unsw.edu.au/jcr/browse-journals(B站有个视频)直接Google查询方法三:search ......
  • 论文阅读—第一篇《ImageNet Classification with Deep Convolutional Neural Network
    ImageNetClassificationwithDeepConvolutionalNeuralNetworks论文地址1.研究背景:在计算机视觉领域,识别大规模图像集合是一个重要的任务。然而,由于数据量大,多样性......