数学基础
- 线性代数
- 概率论与随机过程
- 数值计算
- 蒙特卡洛方法与 MCMC 采样
- 机器学习方法概论
统计学习
- 线性模型
- 支持向量机
- 朴素贝叶斯
- 决策树
- knn
- 集成学习
- 梯度提升树
- 数据预处理
- 模型评估
- 降维
- 聚类
- 半监督学习
- EM 算法
- 最大熵算法
- 隐马尔可夫模型
- 概率图与条件随机场
- 边际概率推断
- 主题模型
深度学习
- 深度学习简介
- 深度前馈网络
- 反向传播算法
- 正则化
- 深度学习中的最优化问题
- 卷积神经网络
- CNN:图像分类
- 循环神经网络 RNN
- Transformer
- 一、Transformer [2017]
- 二、Universal Transformer [2018]
- 三、Transformer-XL [2019]
- 四、GPT1 [2018]
- 五、GPT2 [2019]
- 六、GPT3 [2020]
- 七、OPT [2022]
- 八、BERT [2018]
- 九、XLNet [2019]
- 十、RoBERTa [2019]
- 十一、ERNIE 1.0 [2019]
- 十二、ERNIE 2.0 [2019]
- 十三、ERNIE 3.0 [2021]
- 十四、ERNIE-Huawei [2019]
- 十五、MT-DNN [2019]
- 十六、BART [2019]
- 十七、mBART [2020]
- 十八、SpanBERT [2019]
- 十九、ALBERT [2019]
- 二十、UniLM [2019]
- 二十一、MASS [2019]
- 二十二、MacBERT [2019]
- 二十三、Fine-Tuning Language Models from Human Preferences [2019]
- 二十四 Learning to summarize from human feedback [2020]
- 二十五、InstructGPT [2022]
- 二十六、T5 [2020]
- 二十七、mT5 [2020]
- 二十八、ExT5 [2021]
- 二十九、Muppet [2021]
- 三十、Self-Attention with Relative Position Representations [2018]
- 三十一、USE [2018]
- 三十二、Sentence-BERT [2019]
- 三十三、SimCSE [2021]
- 三十四、BERT-Flow [2020]
- 三十五、BERT-Whitening [2021]
- 三十六、Comparing the Geometry of BERT, ELMo, and GPT-2 Embeddings [2019]
- 三十七、CERT [2020]
- 三十八、DeCLUTR [2020]
- 三十九、CLEAR [2020]
- 四十、ConSERT [2021]
- 四十一、Sentence-T5 [2021]
- 四十二、ULMFiT [2018]
- 四十三、Scaling Laws for Neural Language Models [2020]
- 四十四、Chinchilla [2022]
- 四十七、GLM-130B [2022]
- 四十八、GPT-NeoX-20B [2022]
- 四十九、Bloom [2022]
- 五十、PaLM [2022] (粗读)
- 五十一、PaLM2 [2023](粗读)
- 五十二、Self-Instruct [2022]
- 句子向量
- 词向量
- 传统CTR 预估模型
- CTR 预估模型
- 一、DSSM [2013]
- 二、FNN [2016]
- 三、PNN [2016]
- 四、DeepCrossing [2016]
- 五、Wide 和 Deep [2016]
- 六、DCN [2017]
- 七、DeepFM [2017]
- 八、NFM [2017]
- 九、AFM [2017]
- 十、xDeepFM [2018]
- 十一、ESMM [2018]
- 十二、DIN [2017]
- 十三、DIEN [2019]
- 十四、DSIN [2019]
- 十五、DICM [2017]
- 十六、DeepMCP [2019]
- 十七、MIMN [2019]
- 十八、DMR [2020]
- 十九、MiNet [2020]
- 二十、DSTN [2019]
- 二十一、BST [2019]
- 二十二、SIM [2020]
- 二十三、ESM2 [2019]
- 二十四、MV-DNN [2015]
- 二十五、CAN [2020]
- 二十六、AutoInt [2018]
- 二十七、Fi-GNN [2019]
- 二十八、FwFM [2018]
- 二十九、FM2 [2021]
- 三十、FiBiNET [2019]
- 三十一、AutoFIS [2020]
- 三十三、AFN [2020]
- 三十四、FGCNN [2019]
- 三十五、AutoCross [2019]
- 三十六、InterHAt [2020]
- 三十七、xDeepInt [2023]
- 三十九、AutoDis [2021]
- 四十、MDE [2020]
- 四十一、NIS [2020]
- 四十二、AutoEmb [2020]
- 四十三、AutoDim [2021]
- 四十四、PEP [2021]
- 四十五、DeepLight [2021]
- 图的表达
- 一、DeepWalk [2014]
- 二、LINE [2015]
- 三、GraRep [2015]
- 四、TADW [2015]
- 五、DNGR [2016]
- 六、Node2Vec [2016]
- 七、WALKLETS [2016]
- 八、SDNE [2016]
- 九、CANE [2017]
- 十、EOE [2017]
- 十一、metapath2vec [2017]
- 十二、GraphGAN [2018]
- 十三、struc2vec [2017]
- 十四、GraphWave [2018]
- 十五、NetMF [2017]
- 十六、NetSMF [2019]
- 十七、PTE [2015]
- 十八、HNE [2015]
- 十九、AANE [2017]
- 二十、LANE [2017]
- 二十一、MVE [2017]
- 二十二、PMNE [2017]
- 二十三、ANRL [2018]
- 二十四、DANE [2018]
- 二十五、HERec [2018]
- 二十六、GATNE [2019]
- 二十七、MNE [2018]
- 二十八、MVN2VEC [2018]
- 二十九、SNE [2018]
- 三十、ProNE [2019]
- Graph Embedding 综述
- 图神经网络
- 一、GNN [2009]
- 二、Spectral Networks 和 Deep Locally Connected Networks [2013]
- 三、Fast Localized Spectral Filtering On Graph [2016]
- 四、GCN [2016]
- 五、神经图指纹 [2015]
- 六、GGS-NN [2016]
- 七、PATCHY-SAN [2016]
- 八、GraphSAGE [2017]
- 九、GAT [2017]
- 十、R-GCN [2017]
- 十一、 AGCN [2018]
- 十二、FastGCN [2018]
- 十三、PinSage [2018]
- 十四、GCMC [2017]
- 十五、JK-Net [2018]
- 十六、PPNP [2018]
- 十七、VRGCN [2017]
- 十八、ClusterGCN [2019]
- 十九、LDS-GNN [2019]
- 二十、DIAL-GNN [2019]
- 二十一、HAN [2019]
- 二十二、HetGNN [2019]
- 二十三、HGT [2020]
- 二十四、GPT-GNN [2020]
- 二十五、Geom-GCN [2020]
- 二十六、Graph Network [2018]
- 二十七、GIN [2019]
- 二十八、MPNN [2017]
- 二十九、UniMP [2020]
- 三十、Correct and Smooth [2020]
- 三十一、LGCN [2018]
- 三十二、DGCNN [2018]
- 三十三、AS-GCN
- 三十四、DGI [2018]
- 三十五、DIFFPOLL [2018]
- 三十六、DCNN [2016]
- 三十七、IN [2016]
- 图神经网络 2
- 图神经网络 3
- 推荐算法(传统方法)
- 一、Tapestry [1992]
- 二、GroupLens [1994]
- 三、ItemBased CF [2001]
- 四、Amazon I-2-I CF [2003]
- 五、Slope One Rating-Based CF [2005]
- 六、Bipartite Network Projection [2007]
- 七、Implicit Feedback CF [2008]
- 八、PMF [2008]
- 九、SVD++ [2008]
- 十、MMMF 扩展 [2008]
- 十一、OCCF [2008]
- 十二、BPR [2009]
- 十三、MF for RS [2009]
- 十四、 Netflix BellKor Solution [2009]
- 推荐算法(神经网络方法 1)
- 一、MIND [2019](用于召回)
- 二、DNN For YouTube [2016]
- 三、Recommending What Video to Watch Next [2019]
- 四、ESAM [2020]
- 五、Facebook Embedding Based Retrieval [2020](用于检索)
- 六、Airbnb Search Ranking [2018]
- 七、MOBIUS [2019](用于召回)
- 八、TDM [2018](用于检索)
- 九、DR [2020](用于检索)
- 十、JTM [2019](用于检索)
- 十一、Pinterest Recommender System [2017]
- 十二、DLRM [2019]
- 十三、Applying Deep Learning To Airbnb Search [2018]
- 十四、Improving Deep Learning For Airbnb Search [2020]
- 十五、HOP-Rec [2018]
- 十六、NCF [2017]
- 十七、NGCF [2019]
- 十八、LightGCN [2020]
- 十九、Sampling-Bias-Corrected Neural Modeling [2019](检索)
- 二十、EGES [2018](Matching 阶段)
- 二十一、SDM [2019](Matching 阶段)
- 二十二、COLD [2020 ] (Pre-Ranking 模型)
- 二十三、ComiRec [2020](https://www.wenjiangs.com/doc/0b4e1736-ac78)
- 二十四、EdgeRec [2020]
- 二十五、DPSR [2020](检索)
- 二十六、PDN [2021](mathcing)
- 二十七、时空周期兴趣学习网络ST-PIL [2021]
- 推荐算法之序列推荐
- 一、FPMC [2010]
- 二、GRU4Rec [2015]
- 三、HRM [2015]
- 四、DREAM [2016]
- 五、Improved GRU4Rec [2016]
- 六、NARM [2017]
- 七、HRNN [2017]
- 八、RRN [2017]
- 九、Caser [2018]
- 十、p-RNN [2016]
- 十一、GRU4Rec Top-k Gains [2018]
- 十二、SASRec [2018]
- 十三、RUM [2018]
- 十四、SHAN [2018]
- 十五、Phased LSTM [2016]
- 十六、Time-LSTM [2017]
- 十七、STAMP [2018]
- 十八、Latent Cross [2018]
- 十九、CSRM [2019]
- 二十、SR-GNN [2019]
- 二十一、GC-SAN [2019]
- 二十二、BERT4Rec [2019]
- 二十三、MCPRN [2019]
- 二十四、RepeatNet [2019]
- 二十五、LINet(2019)
- 二十六、NextItNet [2019]
- 二十七、GCE-GNN [2020]
- 二十八、LESSR [2020]
- 二十九、HyperRec [2020]
- 三十、DHCN [2021]
- 三十一、TiSASRec [2020]
- 推荐算法(综述)
- 多任务学习
- 系统架构
- 实践方法论
- 深度强化学习 1
- 自动代码生成
工具
- CRF
- CRF ++
- lightgbm
- xgboost
- xgboost 使用指南
- scikit-learn
- spark
- numpy
- matplotlib
- matplotlib 使用指南
- pandas
- huggingface_transformer
- 一、Tokenizer
- 二、Datasets
- 三、Model
- 四、Trainer
- 五、Evaluator
- 六、Pipeline
- 七、Accelerate
- 八、Autoclass
- 九、应用
- 十、Gradio
Scala
- 环境搭建
- 基础知识
- 函数
- 类
- 样例类和模式匹配
- 测试和注解
- 集合 collection(一)
- 集合collection(二)
- 集成 Java
- 并发
十七、VRGCN [2017]
-
图卷积网络
graph convolution network: GCN
将卷积神经网络CNN
推广到图结构化数据。图卷积graph convolution
操作对节点的所有邻居应用相同的线性变换,然后是均值池化和非线性激活函数。通过堆叠多个图卷积层,GCN
可以利用来自遥远邻居的信息来学习node representation
。GCN
及其变体已被应用于半监督节点分类、inductive node embedding
、链接预测、 以及知识图谱,超越了不使用图结构的多层感知机MLP
以及不使用节点特征的graph embedding
方法。然而,图卷积操作使得
GCN
难以高效地训练。考虑一个 $ L $ 层的图卷积神经网络GCN
,节点的第 $ l $ 层的hidden feature
需要递归地通过其邻域内所有节点的第 $ l-1 $ 层hidden feature
来计算。因此,如下图(a)
所示,单个节点的感受野receptive field
的大小随网络层数呈指数型增长。- 为解决感受野太大的问题,
《Semi-supervised classification with graph convolutional networks》
提出通过batch
算法来训练GCN
,该方法同时计算batch
内所有节点的representation
。但是,由于batch
算法收敛速度慢,以及需要将整个数据集放入到GPU
中,因此无法处理大规模数据集。 《Inductive representation learning on large graphs》
尝试邻域采样neighbor sampling: NS
的方法为GCN
提出随机训练算法。在NS
算法中,他们并未考虑节点的所有邻居,而是为每个节点在第 $ l $ 层随机采样 $ D^{(l)} $ 个邻居,如图(b)
所示。这可以将感受野的大小减小到 $ \prod_l D^{(l)} $ 。他们发现对于两层的GCN
网络,选择 $ D^{(1)}=10, D^{(2)} = 25 $ 可以实现与原始GCN
相当的性能。
理论上当
$ D^{(l)} = 1 $ 时(即每个节点的预测仅依靠它本身,不依赖任何其它邻域节点)计算效率最高,此时模型退化为基于节点的多层感知机MLP
。虽然Hamilton
的方法复杂度降低,但是仍然比MLP
要大 $ D^{(1)}\times D^{(2)} = 250 $ 倍,仍然无法让人满意。另外,使用基于邻域采样的随机训练算法能否确保模型收敛,尚无理论上的保证。
在论文
《Stochastic Training of Graph Convolutional Networks with Variance Reduction》
中,作者为GCN
设计了新颖的基于控制变量的control variate-based
随机逼近算法,即GCN with Variance Reduction: VRGCN
。VRGCN
利用节点的历史激活值(即历史hidden feature
)作为控制变量control variate
。作者表明:通过邻域采样NS
策略得到的hidden feature
的方差取决于hidden feature
的幅度magnitude
(因为hidden feature
是一个向量),而VRGCN
得到的hidden feature
的方差取决于hidden feature
和它历史均值之间的差异difference
。另外,
VRGCN
还带来了理论上的收敛性保证。VRGCN
可以给出无偏的(相比较于原始的GCN
)、零方差的预测。并且训练算法可以收敛到GCN
损失函数的局部最优值,而与采样大小 $ D^{(l)} $ 无关。理论分析表明:VRGCN
可以通过仅对节点采样两个邻居节点来显著降低模型的时间复杂度,同时保持模型的质量。作者在六个
graph
数据集上对VRGCN
进行了实验测试,并表明VRGCN
显著降低了具有相同感受野大小的NS
的梯度的偏差bias
和方差variance
。尽管仅采样 $ D^{(l)} = 2 $ 个邻居,但是VRGCN
在所有数据集上的可比数量的epoch
中实现了与精确算法相同的预测性能,即,VRGCN
降低了时间复杂度同时几乎没有损失收敛速度,这是我们可以预期的最好结果。在最大的Reddit
数据集上,VRGCN
算法的训练时间相比精确算法(《Semi-supervised classification with graph convolutional networks》
)、邻域采样算法(《Inductive representation learning on large graphs》
)、重要性采样算法(《Fastgcn: Fast learning with graph convolutional networks via importance sampling》
)要少7
倍。 - 为解决感受野太大的问题,
17.1 模型
17.1.1 GCN
-
我们以半监督节点分类任务的
GCN
作为说明,当然我们的算法不局限于任务类型,也不局限于模型类型。我们的算法适用于任何涉及到计算邻居平均激活值的其它模型,以及其它任务。 -
给定图
$ G=(\mathcal V,\mathcal E) $ ,其中 $ \mathcal V=\{v_1,\cdots,v_n\} $ 为节点集合, $ \mathcal E=\{e_{i,j}\} $ 为所有边集合, 边 $ e_{i,j} = (v_i,v_j) $ 为无向边。每个节点
$ v\in \mathcal V $ 关联一个特征向量 $ \mathbf{\vec x}_v $ ,以及一个label
$ y_v $ 。在半监督学习场景中,我们只能观测到部分节点的label
,这部分节点的集合记作 $ \mathcal V_Y $ 。我们的目标是预测剩余节点集合 $ \mathcal V_U = \mathcal V- \mathcal V_Y $ 中每个节点的label
。 -
定义邻接矩阵
$ \mathbf A\in \mathbb R^{|\mathcal V|\times |\mathcal V|} $ ,其中 $ A_{i,j} $ 表示节点 $ v_i,v_j $ 之间的链接权重,如果 $ v_i,v_j $ 之间不存在链接则 $ A_{i,j} = 0 $ 。由于是无向图因此 $ \mathbf A $ 是对称矩阵。定义传播矩阵
propagation matrix
$ \mathbf P\in \mathbb R^{|\mathcal V|\times |\mathcal V|} $ 为归一化的邻接矩阵:其中
$ \tilde{\mathbf A} $ 为添加了self-loop
的邻接矩阵。因此一个图卷积层可以定义为(假设当前为第
$ l+1 $ 层):其中:
-
$ \mathbf H^{(l)} $ 为第 $ l $ 层的hidden feature
矩阵,也称作激活矩阵activataion matrix
。第
$ v $ 行 $ \mathbf{\vec h}_v^{(l)} $ 表示节点 $ v $ 的hidden feature
向量,也称作激活值activation
。 -
$ \mathbf H^{(0)} = \mathbf X $ 为输入的特征矩阵,第 $ v $ 行 $ \mathbf{\vec x}_v $ 表示节点 $ v $ 的特征向量。 -
$ \mathbf W^{(l)} $ 为第 $ l+1 $ 层模型待学习的权重矩阵,它在所有节点上共享。 -
$ \sigma(\cdot) $ 为非线性激活函数。
假设
GCN
模型有 $ L $ 层,则GCN
模型的训练损失函数为:其中:
$ f(\cdot,\cdot) $ 为单个节点的损失函数。 $ \mathbf{\vec z}_v^{(L)} $ 为 $ \mathbf Z^{(L)} $ 的第 $ v $ 行,表示节点 $ v $ 的final representation
。
-
-
卷积层通过
$ \mathbf P\mathbf H^{(l)} $ 计算邻域均值,从而将邻域信息传递到当前节点。定义节点 $ v $ 的邻域集合为 $ \mathcal N_v $ ,则节点 $ v $ 的邻域均值hidden feature
向量为:它就是
$ \mathbf P \mathbf H^{(l)} $ 的第 $ v $ 行,等于邻域hidden feature
的加权和。定义节点
$ v $ 在第 $ l $ 层的感受野receptive field
为:为计算 $ \mathbf{\vec z}_v^{(L)} $ 所需要的 $ \mathbf{\vec h}_u^{(l)} $ 的节点集合。- 对于一个
$ L $ 层的GCN
,节点 $ v $ 的所有感受野就是它的L-hop
邻域集合。 - 当
$ \mathbf P = \mathbf I $ 时,GCN
退化为一个多层感知机MLP
,其中不涉及任何图结构信息。对于多层感知机,节点 $ v $ 的感受野就是它本身 $ \{v\} $ 。
- 对于一个
-
GCN
训练损失函数的batch
梯度为:由于每次迭代都涉及整个标记节点集合
$ \mathcal V_Y $ ,因此计算batch
梯度代价太大。一个可行的方案是采用随机梯度作为
batch
梯度的近似值:其中
$ \mathcal V_B\sub \mathcal V_Y $ 为标记节点集合的一个mini-batch
。但是,由于感受野太大,
mini-batch
梯度的计算代价仍然很高。例如,NELL
数据集的2-hop
邻域平均包含1597
个节点,这意味着在一个2
层GCN
中,为计算单个节点的梯度需要涉及1597/65755 = 2.4%
的全部节点。
17.1.2 GraphSAGE
-
为降低感受野大小,
GraphSAGE
提出了邻域采样neighbor sampling: NS
策略。 在第 $ l $ 层,对于每个节点NS
策略随机采样 $ D^{(l)} $ 个邻居,并基于蒙特卡洛近似来给出节点 $ v $ 的邻域均值hidden feature
$ \mathbf{\vec n}_v^{(l)} $ 的一个近似估计 $ \mathbf{\vec n}_{NS,v}^{(l)} $ :其中
$ \hat{\mathcal N}_v^{(l)}\sub \mathcal N_v $ 为一个大小为 $ D^{(l)} $ 的、邻域 $ \mathcal N_v $ 的一个随机子集。因此
NS
策略降低了感受野大小,从L-hop
邻域大小降低到采样后的邻域大小 $ \prod_{l=1}^L D^{(l)} $ 。我们将
$ \mathbf{\vec n}_{NS,v}^{(l)} $ 称作 $ \mathbf{\vec n}_v^{(l)} $ 的NS
估计量,而 $ \mathbf{\vec n}_v^{(l)} $ 为精确值exact
。上述邻域采样策略以矩阵的形式可以重写为:
其中传播矩阵
$ \mathbf P $ 被替换为一个稀疏的、无偏的估计 $ \hat{\mathbf P}^{(l)} $ ,即满足 : $ \mathbb E\left[\hat{\mathbf P}^{(l)}\right ] = \mathbf P $ 。采样后的传播矩阵 $ \hat{\mathbf P}^{(l)} $ 为: -
在
GraphSAGE
的随机梯度下降过程中,存在两个随机性来源:- 选择
mini-batch
$ \mathcal V_B\sub \mathcal V_Y $ 引入的随机性。 - 选择大小为
$ D^{(l)} $ 的邻域集合 $ \hat{\mathcal N}_v^{(l)}\sub \mathcal N_v $ 引入的随机性。
尽管
$ \hat{\mathbf P}^{(l)} $ 是 $ \mathbf P $ 的无偏估计,但是由于非线性函数 $ \sigma(\cdot) $ 的存在, $ \sigma\left(\hat{\mathbf P}^{(l)}\mathbf H^{(l)} \mathbf W^{(l)}\right) $ 并不是 $ \sigma\left(\mathbf P ^{(l)}\mathbf H^{(l)} \mathbf W^{(l)}\right) $ 的无偏估计。因此,在NS
策略中节点的final representaion
矩阵 $ \mathbf Z^{(L)} $ 以及梯度 $ \nabla f\left(y_v,\mathbf{\vec z}_v^{(L)}\right) $ 都是有偏的。最终NS
策略中随机梯度下降SGD
的收敛性得不到保障,除非采样大小 $ D^{(l)} $ 趋向于无穷大。因为这时候计算的梯度 $ \nabla f\left(y_v,\mathbf{\vec z}_v^{(L)}\right) $ 是有偏的,无法保证它是沿着梯度的正确方向。 - 选择
-
在
GraphSAGE
中,由于梯度是有偏的,因此NS
策略中的采样大小 $ D^{(l)} $ 必须很大,从而确保模型得到和exact
策略相近的预测性能。在
GraphSAGE
中Hamilton
选择 $ D^{(1)} = 10, D^{(2)} = 25 $ ,因此感受野的大小为 $ D^{(1)}\times D^{(2)} = 250 $ ,这远大于MLP
的感受野(大小为1
),因此训练仍然代价较高。
17.1.3 FastGCN
-
FastGCN
是另一种类似于NS
的基于采样的算法。FastGCN
并没有为每个节点采样邻域,而是直接采样每一层的、所有节点共享的感受野。对于第
$ l $ 层,FastGCN
首先采样 $ D^{(l)} $ 个样本的集合 $ \mathbb S^{(l)}=\left\{v_1^{(l)},\cdots,v_{ D^{(l) }}^{(l)}\right\} $ ,然后通过这 $ D^{(l)} $ 个样本来计算每个节点 $ v $ 的邻域均值hidden feature
$ \mathbf{\vec n}_v^{(l)} $ :其中重要性分布:
我们将这种邻域均值
hidden feature
的估计称作重要性采样importance sampling: IS
。- 注意,
IS
采样策略和NS
采样策略的区别在于:前者为第 $ l $ 层所有节点采样 $ D^{(l)} $ 个节点,后者为第 $ l $ 层每个节点分别采样 $ D^{(l)} $ 个节点。 - 当
$ D^{(l)} $ 较大且选择 $ q(u)\propto \sum_{(u,v)\in \mathcal E} \frac{1}{|\mathcal N_v|} $ 时,IS
可以视为NS
,因为每个节点 $ v $ 以概率 $ \frac{1}{|\mathcal N_v|} $ 来选择其邻居节点 $ u $ 。因此NS
可以看作是IS
的一种。
- 注意,
-
尽管
IS
策略的感受野大小为 $ \sum_l D^{(l)} $ 要小于NS
策略的感受野大小 $ \prod_l D^{(l)} $ ,但是IS
仍然仅在采样大小 $ D^{(l)} $ 达到无穷大时才可以确保模型收敛。从实验来看,我们发现
IS
策略的效果要比NS
更差,这是因为:在IS
策略中我们为所有节点采样了共同的一组节点集合,对于部分节点我们采样到了它们的很多个邻居,对于另一些节点我们没有采样到任何邻居。对于后者,这些节点的邻域均值hidden feature
$ \mathbf{\vec n}_v^{(l)} $ 为零,从而导致hidden feature
$ \mathbf{\vec h}_v^{(l)} $ 为零 。
17.1.4 控制变量
-
我们提出一种新的基于控制变量
control variate: CV
的算法,该算法基于历史hidden feature
来降低估计量的方差。 -
当计算邻域均值
hidden feature
$ \mathbf{\vec n}_v^{(l)} = \sum_{u\in \mathcal N_v} P_{v,u} \mathbf{\vec h}_u^{(l)} $ 时,由于需要递归计算,因此我们无法计算所有的 $ \mathbf{\vec h}_u^{(l)} $ 项 。我们的思想是:对于每个 $ \mathbf{\vec h}_u^{(l)} $ ,我们维护一份历史均值 $ \bar{\mathbf{\vec h}}_u^{(l)} $ 作为其计算代价负担得起affordable
的近似值。每次计算 $ \mathbf{\vec h}_u^{(l)} $ 时,我们都用 $ \mathbf{\vec h}_u^{(l)} $ 去更新 $ \bar{\mathbf{\vec h}}_u^{(l)} $ 。当训练期间模型的权重变化比较缓慢时,我们预期 $ \bar{\mathbf{\vec h}}_u^{(l)} $ 和 $ \mathbf{\vec h}_u^{(l)} $ 是近似的。令
$ \Delta \mathbf{\vec h}_u^{(l)} = \mathbf{\vec h}_u^{(l)} - \bar{\mathbf{\vec h}}_u^{(l)} $ ,则有:定义:
其中
$ \hat{\mathcal N}_v^{(l)}\sub \mathcal N_v $ 为一个大小为 $ D^{(l)} $ 的、邻域 $ \mathcal N_v $ 的一个随机子集。这里的核心思想是:主要的
$ \bar{\mathbf{\vec h}}_u^{(l)} $ 不用递归计算,可以直接从内存中获取到;次要的 $ \Delta \mathbf{\vec h}_u^{(l)} $ 需要递归计算,但是仅对它采样一小部分的邻域。同时,这进一步促进了模型权重的缓慢变化。因为主要部分是精确值,次要部分是近似值,因此这会大幅度降低近似计算带来的影响。
则有:
$ \mathbf{\vec n}_{ v}^{(l)} \simeq \mathbf{\vec n}_{CV,v}^{(l)} $ 。我们称 $ \mathbf{\vec n}_{CV,v}^{(l)} $ 为节点的邻域均值hidden feature
$ \mathbf{\vec n}_v^{(l)} $ 的CV
估计量。写作矩阵的形式为:其中
$ \bar{\mathbf H}^{(l)} $ 的各行为 $ \bar{\mathbf{\vec h}}_u^{(l)} $ 拼接而成 。这里我们仅对
$ \Delta{\mathbf{\vec h}}_u^{(l)} $ 的项进行蒙特卡洛近似。对所有的 $ \bar{\mathbf{\vec h}}_u^{(l)} $ 取平均是可以接受的,因为它们不需要进行递归地计算。由于我们预期
$ \bar{\mathbf{\vec h}}_u^{(l)} $ 和 $ \mathbf{\vec h}_u^{(l)} $ 是近似的,因此 $ \Delta \mathbf{\vec h}_u $ 很小。因此 $ \mathbf{\vec n}_{CV,v}^{(l)} $ 具有比 $ \mathbf{\vec n}_{NS,v}^{(l)} $ 更小的方差。具体而言,如果模型的权重保持固定,则 $ \bar{\mathbf{\vec h}}_u^{(l)} $ 应该最终等于 $ \mathbf{\vec h}_u^{(l)} $ ,因此有:即估计量的偏差和方差都为零。
-
我们定义控制变量
control variate
为:我们将控制变量
$ \vec \delta_v^{(l)} $ 添加到邻域采样策略NS
的 $ \mathbf{\vec n}_{NS,v}^{(l)} $ 中,从而降低估计量的方差。现在
$ \vec \delta_v^{(l)} $ 仅依赖于不需要递归计算的 $ \bar{\mathbf{\vec h}}_u^{(l)} $ ,因此 $ \vec \delta_v^{(l)} $ 也不需要递归计算。 -
采用
CV
估计量来训练GCN
的方法和NS
估计量都相同。具体而言,在GCN
的每轮迭代中都执行以下算法。VRGCN
迭代算法:-
随机选择一个
mini-batch
的节点 $ \mathcal V_B\sub \mathcal V_Y $ 。 -
构建一个计算图,其中包含当前
mini-batch
每个节点的hidden feature
计算时需要的其它节点的hidden feature
$ \mathbf{\vec h}_v^{(l)} $ 及其历史均值 $ \bar{\mathbf{\vec h}}_v^{(l)} $ 。 -
根据下面的前向传播公式进行传播:
这里控制变量
$ \vec \delta_v^{(l)} $ 的矩阵形式为: $ \mathbf P\bar{\mathbf H}^{(l)} - \hat{\mathbf P}^{(l)}\bar{\mathbf H}^{(l)} $ 。 -
通过反向传播计算梯度,并更新参数。
-
更新
hidden feature
历史均值 $ \bar{\mathbf{\vec h}}_v^{(l)} $ 。
其中,第二步的计算图是通过每层的感受野
$ \mathcal R^{(l)} $ 以及对应的传播矩阵 $ \hat {\mathbf P}^{(l)} $ 来定义。感受野 $ \mathcal R^{(l)} $ 定义了需要第 $ l $ 层哪些节点的hidden feature
$ \mathbf{\vec h}_v^{(l)} $ 来计算当前的mini-batch
。我们自顶向下构建
$ \mathcal R^{(l)} $ 以及 $ \hat {\mathbf P}^{(l)} $ :-
令
$ \mathcal R^{(L)} = \mathcal V_B $ 。 -
对于第
$ l $ 层,对 $ \mathcal R^{(l+1)} $ 中的每个节点我们都从它们的邻域中各自随机选择 $ D^{(l)} $ 个邻居节点并加入到 $ \mathcal R^{(l)} $ 中。注意:我们假设
$ \mathbf{\vec h}_v^{(l)} $ 永远都必须参与 $ \mathbf{\vec h}_v^{(l+1)} $ 的计算,即 $ v $ 每次都作为其自己的邻居一定被选中。
VRGCN
的感受野如下图(c)
所示,其中红色节点为感受野,其hidden feature
$ \mathbf{\vec h}_v^{(l)} $ 来计算当前的mini-batch
。蓝色节点的历史hidden feature
均值 $ \bar{\mathbf{\vec h}}_v^{(l)} $ 也用于计算当前的mini-batch
。 -
17.1.5 理论分析
-
为便于理论分析估计量的方差,这里我们假设所有的特征都是一维的。通过分别处理每个维度,我们的分析结论可以推广到多维。
-
假设
$ \hat{\mathcal N}^{(l)}_v $ 通过从 $ \mathcal N_v $ 进行无放回采样 $ D^{(l)} $ 个样本得到,则我们有结论:其中
$ C_v^{(l)} = 1-(D^{(l)}-1)/(|\mathcal N_v| - 1) $ 。 证明见原始论文的附录。根据以上结论,对于
NS
估计量我们有:即邻域内所有邻居
pair
对的加权hidden feature
之间的距离之和。如果邻域内所有节点的 $ P_{v,u}h_u $ 都相等,则该方差为零。此时,任何邻域节点都包含了整个邻域的信息。同样地,对于
CV
估计量我们有:相比较于
NS
估计量,这里仅需要将 $ h_u^{(l)} $ 替代为 $ \Delta h_u^{(l)} $ 。由于 $ \Delta h_u^{(l)} $ 通常都比 $ h_u^{(l)} $ 更小,因此CV
估计量通常都比NS
估计量的方差更小。进一步地,正如我们在下文中分析到的,由于训练期间 间
$ \Delta h_u^{(l)} $ 收敛到零,因此我们不仅降低了方差,甚至消除了方差。 -
除了较小的方差,
CV
估计量比NS
估计量还具有更强的理论收敛性保证。这里我们提出两个定理:- 如果模型参数固定,则在
inference
期间,CV
会在 $ L $ ( $ L $ 为卷积层的层数)个epoch
之后产生exact
预测。 - 无论邻域采样大小如何,模型都会朝着局部最优解收敛。
- 如果模型参数固定,则在
-
假设算法执行多个
epoch
,在每个epoch
中我们将节点集合 $ \mathcal V $ 划分为 $ I $ 个mini-batch
: $ \{\mathcal V_1,\cdots,\mathcal V_I\} $ 。在第 $ i $ 个迭代步,我们对mini-batch
$ \mathcal V_i $ 中的节点进行前向传播和反向传播,从而更新模型参数以及节点的历史hidden feature
均值。注意:在每个
epoch
中我们扫描所有节点,而不仅仅是标记的训练节点,从而确保每个epoch
中对每个节点的历史hidden feature
均值至少进行了一次更新。记第
$ i $ 次迭代中模型的参数为 $ \mathbf W_i $ 。在训练期间 $ \mathbf W_i $ 通过SGD
随时间更新,在测试期间 $ \mathbf W = \mathbf W_T $ 被固化下来,其中 $ T $ 为迭代的总次数。记第
$ i $ 次迭代的exact hidden feature
为 $ \mathbf H ^{(l)}_i $ ,以及对应的 $ \mathbf Z $ 为 $ \mathbf Z_i ^{(l)} $ ;使用CV
估计量的hidden feature
为 $ \mathbf H_{CV,i}^{(l)} $ ,以及对应的 $ \mathbf Z $ 为 $ \mathbf Z_{CV,i}^{(l)} $ 。在第
$ i $ 轮迭代,网络计算mini-batch
$ \mathcal V_i $ 的损失函数和梯度,其中:-
对于
exact
算法,其损失函数和梯度分别为:对于
exact
算法,如果 $ \mathbf W_i $ 是constant
序列,则可以忽略下标 $ i $ 。 -
对于
CV
算法,其损失函数和梯度分别为:梯度
$ \mathbf G_{i,CV} (\mathbf W_i) $ 有两个随机性来源:- 选择
mini-batch
$ \mathcal V_i\sub \mathcal V_Y $ 引入的随机性。 - 选择大小为
$ D^{(l)} $ 的邻域集合 $ \hat{\mathcal N}_v^{(l)}\sub \mathcal N_v $ 引入的随机性(由采样后的邻接矩阵 $ \hat{\mathbf P} $ 来刻画) 。
因此我们考虑
$ \mathbf G_{i,CV} (\mathbf W_i) $ 对 $ \mathcal V_i $ 的期望、或者对 $ \hat{\mathbf P} $ 的期望、或者对二者的共同期望。 - 选择
-
-
以下定理解释了
CV
的近似预测和exact
预测之间的关系:对于一个
constant sequence
$ \mathbf W_i = \mathbf W $ ,以及任意 $ i\gt L\times I $ (即 $ L $ 个epoch
之后),通过CV
估计量计算的hidden feature
和exact
计算的相等。即:其证明见原始论文附录。
该定理表明:在
inference
期间,我们可以使用CV
估计量进行前向传播 $ L $ 个epoch
(通常 $ L $ 很小,比如两层的GCN
网络中 $ L=2 $ ),然后得到exact
预测。这优于NS
估计量,因为除非邻域大小无穷大,否则NS
估计量无法恢复exact
预测。和直接进行
exact
预测的batch
算法相比,CV
估计量可扩展性更强,因为它不需要将整个图加载到内存中。 -
以下定理表明,无论邻域采样大小
$ D^{(l)} $ 如何,采用近似梯度 $ \mathbf G_{i,CV} (\mathbf W_i) $ 的SGD
训练仍然收敛于局部最优。因此我们可以选择任意小的 $ D^{(l)} $ 而不必担心收敛性。定理:假设:
-
激活函数
$ \sigma(\cdot) $ 为 $ \rho-\text{Lipschitz} $ 。 -
损失函数的梯度
$ \nabla_{\mathbf{\vec z}}f(y,\mathbf{\vec z}) $ 是 $ \rho-\text{Lipschitz} $ 且有界的。 -
对于任意的采样
$ \hat{\mathbf P} $ 、任意的节点子集 $ \tilde{\mathcal V} $ 、任意的权重矩阵,都有 $ ||\mathbf G (\mathbf W) ||_\infty, || \mathbf G_{\tilde{\mathcal V},CV} (\mathbf W )||_\infty, ||\nabla_{\mathbf W} \mathcal J(\mathbf W)||_\infty $ 都是有界的,且上界都是 $ G $ (其中 $ G\gt 0 $ ) 。 -
损失函数
$ \mathcal J(\mathbf W) $ 是 $ \rho-\text{smooth} $ 的,即:对于任意 $ \mathbf W_1, \mathbf W_2 $ ,有:其中
$ <\mathbf A,\mathbf B> = \text{tr}\left(\mathbf A^\top \mathbf B\right) $ 为矩阵 $ \mathbf A $ 和 $ \mathbf B $ 的内积。
则存在
$ K\gt 0 $ ,使得 $ \forall N\gt L\times I $ ,当我们执行 $ 1\le R\le N $ 次SGD
迭代时,有:其中:
-
$ R $ 为[1, N]
之间均匀随机分布的变量。 -
每次迭代都使用
CV
的近似梯度 $ \mathbf G_{i,CV} (\mathbf W_i) $ :其中步长
$ \gamma = \min\{\frac{1}{\rho}, \frac{1}{\sqrt N}\} $ 。
从定理中我们看到:
$ \lim_{N\rightarrow \infty} \mathbb E_R||\nabla \mathcal J(\mathbf W_R)||_F^2 = 0 $ 。因此当迭代次数 $ N $ 趋向于无穷时,我们的训练算法收敛到局部最优解(梯度为零)。完整的证明见原始论文附录。简而言之,我们证明了近似梯度
$ \mathbf G_{i,CV} (\mathbf W_i) $ 是 $ \mathbf G_{i} (\mathbf W_i) $ 的无偏估计,并且随着 $ i\rightarrow \infty $ 这种渐进无偏的SGD
收敛到局部最优解。 -
17.1.6 dropout
-
这里我们引入第三种随机性来源:对输入特征的随机
dropout
。令
$ \mathcal D_p(\mathbf X) = \mathbf M \circ \mathbf X $ 为dropout
算子,其中 $ M_{i,j}\sim Bern(p) $ 为独立同分布iid
的伯努利随机变量, $ \circ $ 是逐元素的乘积。记
$ \mathbb E_\mathbf M[\cdot] $ 为针对dropout
的期望。 -
引入
dropout
之后,即使在GCN
中采用exact
算法,hidden feature
$ \mathbf{\vec h}_v^{(l)} $ 也是随机变量,其随机性来源于dropout
。此时节点的邻域均值
hidden feature
$ \mathbf{\vec n}_v^{(l)} $ 也是一个随机变量,我们希望设计它的一个计算代价较低的估计量,从而使得二者具有相同的分布。但是这种估计量非常难以设计,因此我们设计了一个估计量 $ \mathbf{\vec n}_{CVD,v}^{(l)} $ ,使得它和 $ \mathbf{\vec n}_v^{(l)} $ 具有相同的均值和方差。即: -
在
dropout
场景下, $ \Delta \mathbf{\vec h}_u^{(l)} = \mathbf{\vec h}_u^{(l)} - \bar{\mathbf{\vec h}}_u^{(l)} $ 不再很小,甚至是当 $ \bar{\mathbf{\vec h}}_u^{(l)} $ 和 $ \mathbf{\vec h} _u^{(l)} $ 具有相同分布的时候。为此,我们设计了另一种随机逼近算法,称作dropout
控制变量control variate for dropout: CVD
。我们的方法基于权重缩放
weight scaling
技术来近似计算均值 $ \vec\mu_v^{(l)} = \mathbb E_\mathbf M\left[\mathbf{\vec h}_v^{(l)}\right] $ 。即在dropout
模型中,我们可以运行没有dropout
的模型的copy
,从而获得均值 $ \vec\mu_v^{(l)} $ ,如下图(d)
所示。 -
我们通过
$ \vec\mu_u^{(l)} $ 及其历史均值 $ \bar{\vec\mu}_u^{(l)} $ 来设计CVD
估计量。我们将
$ \mathbf{\vec n}_v^{(l)} $ 重写为:其中:
$ \Delta \vec{\mu}_u^{(l)} = \vec\mu_u^{(l)} - \bar{\vec\mu}_u^{(l)} $ 为 $ \vec\mu_u^{(l)} $ 及其历史均值 $ \bar{\vec\mu}_u^{(l)} $ 之间的差距。因此,可以将 $ \vec\mu_u^{(l)} $ 视为CV
估计量中的 $ \mathbf{\vec h}_u^{(l)} $ 。 $ \mathbf{\mathring{\vec h}}_u^{(l)} = \mathbf{\vec h}_u^{(l)} - \vec\mu_u^{(l)} $ 为 $ \mathbf{\vec h}_u^{(l)} $ (带dropout
)和 $ \vec\mu_u^{(l)} $ (不带dropout
)之间的差距。
因此定义:
则有:
$ \mathbf{\vec n}_v^{(l)}\simeq \mathbf{\vec n}_{CVD,v}^{(l)} $ 。第一项考虑
dropout current value
和no-dropout current value
之间的gap
,使用 $ \sqrt{\cdot} $ 是为了计算方差的方便。第二项考虑no-dropout current value
和no-dropout avg value
之间的gap
。第三项就是no-dropout avg value
本身。考虑第一项对于
dropout
具有零均值,即 $ \mathbb E_\mathbf M \left[\mathbf{\mathring{\vec h}}_u^{(l)}\right] = 0 $ ,因此有:第一个等式成立是因为当移除
dropout
时,CVD
估计量就退化为CV
估计量。因此,
CVD
估计量是无偏的。下面我们即将看到,如果 $ \mathbf{\vec h}_v^{(l)} $ 之间不相关,则CVD
估计量具有良好的方差。 -
假设节点的
hidden feature
之间不相关,即 $ \forall v_1\ne v_2, \text{Cov}_\mathbf M\left[ \mathbf{\vec h}_{v_1}^{(l)}, \mathbf{\vec h}_{v_2}^{(l)}\right] = 0 $ ,则我们得到两个结论:-
假设
$ \hat{\mathcal N}^{(l)}_v $ 通过从 $ \mathcal N_v $ 进行无放回采样 $ D^{(l)} $ 个样本得到, $ x_1,\cdots,x_{|\mathcal V|} $ 为一维随机变量,且满足:则有:
-
令
$ X $ 和 $ Y $ 为两个随机变量,并且 $ f(X,Y) $ 和 $ g(Y) $ 为两个函数。如果 $ \mathbb E_{X}[f(X,Y)] = 0 $ ,则有:
这些结论的证明参考原始论文的附录。
通过上述结论,我们有:
我们将第一项视为从
dropout
中引入的方差variance from dropout: VD
,第二项视为从邻域采样中引入的方差variance from neighbor sampling: VNS
。理想情况下,VD
应该等于 $ \text{Var}_{\mathbf M}\left[\mathbf{\vec n}_v^{(l)}\right] $ 、VNS
应该等于零。和前述相同的分析,我们可以通过将
$ \mathbf{\vec h}_v^{(l)} $ 替换为 $ \vec\mu_v^{(l)} $ 来分析VNS
。令 :根据这里的第一个结论,
CVD
的VD
部分为: $ \sum_{u\in \mathcal N_v} P_{v,u}^2 \mathbf{\vec s}_u^{(l)} = {\vec \xi}_v^{(l)} $ ,刚好就是exact
估计量的VD
部分。 -
-
我们总结出所有这些估计量及其方差,推导过程参考原始论文。
exact
:VNS
部分为零,VD
部分为 $ {\vec \xi}_v^{(l)} $ 。NS
估计量:VNS
部分为 $ \frac {C_v^{(l)}}{2D^{(l)}}\sum_{u_1\in \mathcal N_v}\sum_{u_2\in \mathcal N_v}\left(P_{v,u_1}\vec\mu_{v_1}^{(l)} - P_{v,u_2}\vec\mu_{v_2}^{(l)}\right)^2 $ ,VD
部分为 $ \frac{|\mathcal N_v|}{D^{(l)}} {\vec \xi}_v^{(l)} $ 。CV
估计量:VNS
部分 $ \frac {C_v^{(l)}}{2D^{(l)}}\sum_{u_1\in \mathcal N_v}\sum_{u_2\in \mathcal N_v}\left(P_{v,u_1}\Delta\vec\mu_{v_1}^{(l)} - P_{v,u_2}\Delta\vec\mu_{v_2}^{(l)}\right)^2 $ ,VD
部分 $ \left(3+\frac{|\mathcal N_v|}{D^{(l)}} \right) {\vec \xi}_v^{(l)} $ 。CVD
估计量:VNS
部分 $ \frac {C_v^{(l)}}{2D^{(l)}}\sum_{u_1\in \mathcal N_v}\sum_{u_2\in \mathcal N_v}\left(P_{v,u_1}\Delta\vec\mu_{v_1}^{(l)} - P_{v,u_2}\Delta\vec\mu_{v_2}^{(l)}\right)^2 $ ,VD
部分为 $ {\vec \xi}_v^{(l)} $ 。
CV/CVD
的VNS
取决于 $ \Delta\vec\mu_{v} $ ,随着训练的进行 $ \Delta\vec\mu_{v} $ 收敛到零;NS
的VNS
取决于非零的 $ \vec\mu_{v} $ 。
17.1.7 预处理
-
有两种可能的
dropout
方式:区别在于:第一种方式是在邻域聚合之前应用
dropout
、第二种方式在邻域聚合之后应用dropout
。《Semi-supervised classification with graph convolutional networks》
采用前者,而我们采用后者。实验效果上,我们发现这两种方式的效果都相差无几,因此不同的方式不影响模型的效果。采用第二种方式的优势是提升训练速度:我们可以对输入进行预处理,并定义
$ \mathbf U^{(0)} = \mathbf P\mathbf H^{(0)} = \mathbf P\mathbf X $ ,然后将 $ \mathbf U^{(0)} $ 作为新的输入。采用这种方式之后,图卷积层的实际数量减少了一层。现在第一层仅是一个全连接层,而不是图卷积层。由于大多数
GCN
仅有两层卷积层,因此这种方式可以显著减少感受野大小,并加快训练速度。我们称该优化为预处理策略preprocessing strategy
。
17.2 实验
-
我们在六个数据集上通过实验验证了
VRGCN
算法的方差和收敛性,其中包括来自GCN
的Citeseer, Cora, PubMed, NeLL
四个数据集以及来自GraphSAGE
的PPI, Reddit
两个数据集。对于这些数据集的统计见下表所示。最后两列给出了节点的
1-hop
邻域平均大小、2-hop
邻域平均大小。由于是无向图,因此每条边被计算两次,但是self-loop
仅被计算一次。- 对于每个数据集,所有模型在该数据集上采用相同的训练集/验证集/测试集拆分 (而不是每个模型单独的一个拆分)。
- 对于
PPI
数据集(多标签分类数据集)我们报告测试集的Micro-F1
指标,对于其它多分类数据集我们报告准确率accuracy
。 - 对于
Citeseer, Cora, PubMed, NELL
数据集,baseline
模型为GCN
;对于PPI, Reddit
数据集,baseline
模型为GraphSAGE
。 - 对于收敛性实验,我们在
Citeseer, Cora, PubMed, NELL
数据集上重复执行10
次,在Reddit, PPI
数据集上重复执行5
次。 - 所有实验都在
Titan X GPU
上完成。
-
首先我们评估预处理
PreProcessing: PP
的影响。我们比较了三种配置:M0
:dropout
在前、计算邻域均值在后,且计算邻域的exact
均值(未对邻域进行任何采样)M1
:计算邻域均值在前、dropout
在后,且计算邻域的exact
均值(未对邻域进行任何采样)M1 + PP
:计算邻域均值在前、dropout
在后,且使用较大的邻域大小 $ D^{(l)} = 20 $ 来对邻域采样从而计算邻域的近似均值,并且预处理 $ \mathbf P\mathbf H^{(0)} $ 使得第一层邻域均值是exact
的。
实验结果如下所示。我们固定了训练的
epoch
,然后给出不同配置的GCN
在不同数据集上的测试accuracy
。我们的实现不支持NELL
上的M0
配置,因此未报告其结果。可以看到:三种配置都具有相近的性能,即更换
dropout
的位置不会影响模型的预处性能。因此后续的收敛性实验中,我们以最快的M1 + PP
配置作为exact baseline
。 -
然后我们评估
VRGCN
的收敛性。我们将M1 + PP
配置作为exact baseline
,然后对比 $ D^{(l)} = 2 $ 的情况。我们无法配置 $ D^{(l)} = 1 $ ,因为感受野中至少包含节点本身,如果 $ D^{(l)}= 1 $ 则邻域聚合时不考虑任何其它节点,这退化为MLP
。我们对四种近似策略进行比较,其中 $ D^{(l)} = 2 $ :NS
:没有使用预处理的NS
估计量(邻域采样)。NS + PP
:采用了预处理的NS
估计量。IS + PP
:采用了预处理的IS
估计量(重要性采样)。CV + PP
:采用了预处理的CV
估计量。CVD + PP
:采用了预处理的CVD
估计量。
当
$ D^{(l)} =2 $ 时这四种算法在每个epoch
都具有很低的、相近的时间复杂度,相比之下baseline M1 + PP
的 $ D^{(l)}= 20 $ 。我们比较了这些方法和baseline
相比,它们的收敛速度。-
首先我们不考虑
dropout
(dropout rate = 0
),然后绘制不同方法每个epoch
的损失函数值,如下图所示。在前
4
个数据集中,CV + PP
的损失曲线和exact
损失曲线相重叠;部分数据集上未给出NS
损失曲线和IS + PP
损失曲线,因为损失太大;我们并未绘制CVD + PP
,因为当dropout rate = 0
时,它等价于CV + PP
。结论:
CV + PP
总是可以达到和M1 + PP
相同的训练损失。NS, NS + PP, IS + PP
由于它们的梯度是有偏的,因此其训练损失更高。
这些结果和前述定理相符。定理指数:
CV
估计量的训练能够收敛到exact
的局部最优,和 $ D^{(l)} $ 无关。 -
然后我们考虑使用
dropout
,然后比较每个epoch
使用不同方式训练的模型验证accuracy
。其中不管训练算法采取何种方式,inference
都采用exact
算法来预测。结果如下图所示。注意:NS
在Reddit
数据集上收敛到0.94
、在PPI
数据集上收敛到0.6
,由于太低所以未在图中给出。结论:
-
当存在
dropout
时,CVD + PP
是唯一可以在所有数据集上达到和exact
算法相近的验证准确率的算法。 -
当存在
dropout
时,CVD + PP
的收敛速度(以epoch
数量衡量)和M1 + PP
相当。这意味着尽管 $ D^{(l)} $ 小了 10倍,但是CVD + PP
的收敛速度几乎没有损失。这已经是我们期待的最佳结果:具有和
MLP
可比的计算复杂度,但是具有和GCN
相近的模型质量。 -
在
PubMed
数据集上,CVD + PP
性能比M1 + PP
好得多,我们怀疑它找到了更加的局部最优值。 -
对
PPI
以外的所有其它数据集,简单的CV + PP
的准确率就可以和M1 + PP
相媲美。 -
在
Reddit,PPI
数据集上,IS + PP
性能比NS + PP
更差。这可能是部分节点没有采样到任何邻居,正如我们前文所述。 -
我们对
IS + PP
的准确率结果和FastGCN
的报告结果相符,而他们的GraphSAGE baseline
并未实现预处理技术。
-
-
下面给出了在最大的
Reddit
数据集上达到给定的96%
验证准确率所需要的平均训练epoch
和训练时间。可以看到:CVD + PP
比exact
快7
倍左右。这是因为CVD + PP
的感受野大小显著降低。另外,
NS, IS + PP
无法收敛到给定的准确率(即无法收敛到96%
验证准确率)。 -
我们使用相同的、由
M1 + PP
训练的模型,然后采用不同的算法进行预测,并给出预测质量。如前所述,
CV
可以达到和exact
算法相同的测试准确率,而NS, NS + PP
的性能要差得多。 -
最后,我们比较了训练期间第一层权重每一维梯度的平均
bias
和方差(对权重自身进行了归一化)。结论:
- 对于没有
dropout
的模型,CV + PP
的梯度几乎所无偏的。 - 对于存在
dropout
的模型,CV + PP
heCVD + PP
梯度的bias
和方差通常小于NS
和NS + PP
。
- 对于没有
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论