数学基础
- 线性代数
- 概率论与随机过程
- 数值计算
- 蒙特卡洛方法与 MCMC 采样
- 机器学习方法概论
统计学习
深度学习
- 深度学习简介
- 深度前馈网络
- 反向传播算法
- 正则化
- 深度学习中的最优化问题
- 卷积神经网络
- 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
- lightgbm
- xgboost
- scikit-learn
- spark
- numpy
- matplotlib
- pandas
- huggingface_transformer
- 一、Tokenizer
- 二、Datasets
- 三、Model
- 四、Trainer
- 五、Evaluator
- 六、Pipeline
- 七、Accelerate
- 八、Autoclass
- 九、应用
- 十、Gradio
Scala
- 环境搭建
- 基础知识
- 函数
- 类
- 样例类和模式匹配
- 测试和注解
- 集合 collection(一)
- 集合collection(二)
- 集成 Java
- 并发
十六、PPNP [2018]
目前有很多流行的图神经网络算法。
graph embedding
算法使用随机游走或矩阵分解来直接训练每个节点的embedding
,这类算法通常以无监督的方式学习并且不需要节点的特征信息。- 另外一些方法以有监督方式学习,并且同时利用了图结构和节点特征信息,其中包括谱图卷积神经网络
spectral graph convolutional neural network
、消息传递message passing
方法(或者也称作邻域聚合neighbor aggregation
方法)以及基于RNN
的邻域聚合方法。
所有这些方法中,消息传递方法由于其灵活性和良好的性能最近引起了特别的关注。已有一些工作通过使用
attention
机制、随机游走、edge feature
来改善基础的邻域聚合方式,并使得邻域聚合可以扩展到大图。但是,所有这些方法对于每个节点仅支持非常有限的邻域规模。事实上,如果能够使用更大的邻域,则可以为模型提供更多的有效信息。尤其是对于图的外围节点或者标签稀疏的节点。增加这些算法的邻域大小并不简单,因为这些方法中的邻域聚合本质上是拉普拉斯平滑的一种,如果层数太多将导致过度平滑
over-smoothing
。在JK-Net
的论文中,作者强调了这个挑战,并建立了随机游走和消息传递机制之间的关联。通过这个关联我们发现:随着层数的增加,GCN
会收敛到随机游走的极限分布。这个极限分布是整个图的属性,和随机游走的起始节点无关。因此这个分布无法描述随机游走起始节点的邻域(因为过度平滑)。因此GCN
的性能必然会随着卷积层数量(具体而言是随着aggregation
层的数量)的增加而下降。为解决这个问题,论文
《 PREDICT THEN PROPAGATE: GRAPH NEURAL NETWORKS MEET PERSONALIZED PAGERANK》
首先分析了这个极限分布和PageRank
之间的内在联系,然后提出了personalized propagation of neural predictions: PPNP
算法,该算法利用Personalized PageRank
衍生而来的消息传递方案。PPNP
算法增加了消息回传根节点的机会,从而确保PageRank Score
编码了每个根节点的局部邻域。这个回传概率teleport probability
使得我们能够平衡以下两方面的需求:保留节点的局部性(即,避免过度平衡)vs
利用来自大型邻域的信息。作者表明,这种消息传递方案允许使用更多的层(理论上无限多),而不会导致过度平滑。另外,
PPNP
的训练时间相比以前的模型相同或者更快,参数数量相比以前的模型相同或者更少,计算复杂度和边的数量呈线性关系。此外,PPNP
利用一个大的、可调整的邻域来分类,并且可以轻松地和任何神经网络相结合。实验表明,PPNP
超越了最近提出的几种GCN-like
的半监督分类模型。在传统的消息传递方法中,
propagation
和classification
固有地耦合在一起,即classification
依赖于propagation
。但是在PPNP
中,作者将propagation
和classification
解耦,使得二者相互独立。这使得我们能够在不改变神经网络的情况下实现更大的邻域。而在消息传递方法中,如果想多传递一个step
就需要多加一个layer
。PPNP
的基本思想是:首先预测节点的标签(classification
步骤),然后利用标签传播算法重新修正得到最终的标签(propagation
步骤)。这种方法有效的前提是:相邻节点具有相似的label
。PPNP
还允许传播算法、以及根据节点特征执行预测的神经网络独立开发。这意味着我们可以将任何state-of-the-art
预测方法和PPNP
的传播算法相结合。作者甚至发现:在训练期间没有使用到任何图结构信息的模型,仅在inference
阶段使用PPNP
的传播算法可以显著提升模型预测的准确性。相关工作:
有些工作试图在每个节点添加跳跃连接,从而改善消息传递算法的训练,以及增加每个节点上可用的邻域大小。如,
JK-Net
将跳跃连接和邻域聚合方案相结合。但是这些方法的邻域范围仍然有限,当消息传递的layer
数量很少的情况下非常明显。虽然可以在我们的
PPNP
中使用的神经网络中添加跳跃连接,但是这不会影响我们的传播方案。因此,我们解决邻域范围的方法和这些模型无关。《Deeper Insights Into Graph Convolutional Networks for Semi-Supervised Learning》
通过将消息传递和co-training & self-training
相结合来促进训练,通过这种组合实现的改善与其它半监督分类模型报告的结果相似。注意,大多数算法,包括我们的算法,都可以用
co-training & self-training
进行改进。但是,这些方法使用的每个additional setp
都对应一个完整的训练周期,因此会大大增加训练时间。在最近的工作中,人们通过将跳跃连接和
batch normalization
相结合,提出了避免过度平滑问题的Deep GNN
(《Mean-field theory of graph neural networks in graph partitioning》
、《Supervised Community Detection with Line Graph Neural Networks》
)。但是,我们的模型通过解耦预测和传播,从而简化了体系结构并解决该问题。并且我们的方法不依赖于任何临时性
ad-hoc
技术,这些临时性的技术进一步复杂化模型并引入额外的超参数。此外,我们的
PPNP
在不引入额外层的情况下增加了邻域范围,因此和Deep GNN
相比,训练速度会更快更容易。
16.1 模型
定义图
$ G=(V,E) $ ,其中 $ V=\{v_1,\cdots,v_n\} $ 为节点集合, $ E=\{e_{i,j}\} $ 为边集合, $ n $ 为节点数量, $ m $ 为边数量。假设每个节点
$ v_i $ 关联一个特征向量 $ \mathbf{\vec x}_i\in \mathbb R^{d_f} $ , $ d_f $ 为特征向量的维度。所有节点的特征向量组成的矩阵为特征矩阵 $ \mathbf X\in \mathbb R^{n\times d_f} $ ,其中第 $ i $ 行为 $ \mathbf{\vec x}_i $ 。假设每个节点
$ v_i $ 关联一个类别 $ y_i $ ,类别数量为 $ K $ 。我们将 $ y_i $ 扩展为一个one-hot
向量 $ \mathbf{\vec y}_i\in \mathbb R^K $ 。所有节点的类别向量组成的矩阵为类别矩阵 $ \mathbf Y\in \mathbb R^{n\times c} $ ,第 $ i $ 行为 $ \mathbf{\vec y}_i $ 。假设图的邻接矩阵为
$ \mathbf A\in \mathbb R^{n\times n} $ ,则 $ \tilde{\mathbf A} = \mathbf A + \mathbf I_n $ 为添加了自循环self-loops
的邻接矩阵。
16.1.1 GCN 及其限制
卷积神经网络
GCN
是一种用于半监督分类的简单且应用广泛的消息传递算法。假设有两层消息传递,则预测结果为:其中:
$ \hat{\tilde{\mathbf A}} = \tilde{\mathbf D}^{-1/2} \tilde{\mathbf A}\tilde{\mathbf D}^{-1/2}\in \mathbb R^{n\times n} $ 为一个对称矩阵,它是带自循环的邻接矩阵的归一化形式。 $ \tilde{\mathbf D} $ 为一个对角矩阵, $ \tilde D_{i,i} = \sum_j \tilde A_{i,j} $ 。 $ \mathbf Z\in \mathbb R^{n\times K} $ 为每个节点预测的label
分布。 $ \mathbf W_0, \mathbf W_1 $ 为待训练的权重矩阵。
对于两层
GCN
,它仅考虑2-hop
邻域中的邻居节点。基本上有两个原因使得消息传递算法(如GCN
)无法自然地扩展到使用更大的邻域:- 首先,如果使用太多的层,则基于均值的聚合会导致过度平滑
over-smoothing
。因此,模型失去了局部邻域的信息。 - 其次,最常用的邻域聚合方案在每一层使用可学习的权重矩阵,因此使用更大的邻域必然会增加神经网络的深度和参数数量。虽然参数数量可以通过权重共享来避免,但这不是通用的做法。
理论上,邻域大小和神经网络的深度是不相关的、完全正交的两个因素。它们应该互不影响才对。实际上在
GCN
中它们是相互捆绑的(给定神经网络深度就意味着给定了邻域大小),并导致了严重的性能问题。我们首先关注第一个问题。在
JK-Net
中已经证明:对于一个 $ L $ 层的GCN
,任意节点 $ y $ 对节点 $ x $ 的影响力得分 $ I(x ,y) = \sum_{s=1}^{d_f}\sum_{t=1}^{d_h} |J(x,y)_{s,t}| $ 正比于在 $ \tilde G $ (每个节点带自循环的 $ G $ )上从节点 $ x $ 开始到 $ y $ 的 $ L $ 步的随机游走概率 $ P_{rw}(x\rightarrow y, L) $ 。 其中雅可比矩阵 $ \mathbf J(x,y) = \left[\frac{\partial \mathbf{\vec h}_x^{(L)}}{\partial \mathbf{\vec h}_y^{(0)}}\right] $ 。因此节点 $ x $ 的信息以随机游走的方式传播到节点 $ y $ 。如果选择极限
$ L\rightarrow \infty $ ,且图是不可约的irreducible
且非周期性的,则这个随机游走概率分布 $ P_{rw}(x\rightarrow y, L) $ 收敛到极限分布(或称作平稳分布) $ P_{\lim}(\rightarrow y) $ 。可以通过求解方程来获得该分布:显然,极限分布取决于整个图,并且独立于随机游走的起始节点
$ x $ (或称作根节点)。因此,极限分布不适合描述根节点 $ x $ 的局部邻域(因为它与节点 $ x $ 无关)。
16.1.2 PPNP
我们可以考察极限分布和
PageRank
之间的联系来解决这个局部邻域失去焦点lost focus
问题。极限分布和
PageRank
的区别仅在于前者在邻接矩阵中增加了自循环,并对分布进行了归一化。原始的PageRank
的分布为:其中
$ \mathbf A_\text{rw} = \mathbf A \mathbf D^{-1}\in \mathbb R^{n\times n} $ 。建立这种联系之后,我们现在可以考虑使用结合了根节点的
PageRank
变体 --Personalized PageRank
。我们定义回传向量
teleport vector
$ \mathbf{\vec i}_x $ 来表示根节点 $ x $ :它是一个one-hot
向量,只有节点 $ x $ 对应的元素为1
、其它元素为0
。对于节点
$ x $ ,其Personalized PageRank
的分布为:其中
$ \alpha \in (0,1] $ 为回传概率teleport probability
(也叫做重启概率)。通过求解该等式,我们得到:
可以看到:通过使用回传向量
$ \mathbf{\vec i}_x $ 之后,即使在极限分布中我们也能够保留节点 $ x $ 的局部邻域。因为在该模型中,节点
$ y $ 对根节点 $ x $ 的影响力得分 $ I(x,y) $ 正比于 $ \vec\pi_\text{ppr}^{(x)} $ 的第 $ y $ 个元素。对于每个根节点,该元素值都不相同。参数 $ \alpha $ 决定了当我们远离根节点时,影响力得分的衰减速度。考虑所有节点的回传向量,则我们得到了完整的
Personalized PageRank
矩阵 $ \mathbf \Pi_\text{ppr}\in \mathbb R^{n\times n} $ :其中
$ \mathbf \Pi_\text{ppr} $ 的第 $ x $ 列表示 $ \vec\pi_\text{ppr}^{(x)} $ 。因此元素 $ \Pi_\text{ppr}(y,x) $ 正比于节点 $ y $ 对节点 $ x $ 的影响力得分。注意到由于对称性
$ \mathbf \Pi_\text{ppr} = \mathbf \Pi_\text{ppr}^\top $ ,因此节点 $ y $ 对节点 $ x $ 的影响力得分总是等于节点 $ x $ 对节点 $ y $ 的影响力得分。事实上这里需要考虑矩阵
$ \mathbf I_n - (1-\alpha) \hat{\tilde{\mathbf A}} $ 是否可逆,如果不可逆则 $ \mathbf \Pi_\text{ppr} $ 不存在。当且仅当 $ \mathbf I_n - (1-\alpha) \hat{\tilde{\mathbf A}} $ 可逆时, $ \mathbf \Pi_\text{ppr} $ 才存在。可以证明 $ \mathbf \Pi_\text{ppr} $ 一定存在。证明:要想证明矩阵
$ \mathbf \Pi_\text{ppr} = \alpha \left( \mathbf I_n - (1-\alpha) \hat{\tilde{\mathbf A}}\right)^{-1} $ 存在,则需要证明 $ \text{det}\left( \mathbf I_n - (1-\alpha) \hat{\tilde{\mathbf A}}\right)\ne 0 $ 。由于
$ 1-\alpha \ne 0 $ ,因此要想证明 $ \text{det}\left( \mathbf I_n - (1-\alpha) \hat{\tilde{\mathbf A}}\right)\ne 0 $ ,则需要证明 $ \det\left( \hat{\tilde{\mathbf A}} - \frac{1}{ (1-\alpha)}\mathbf I_n\right)\ne 0 $ 。通过
Gershgorin circle theorem
可以证明 $ \hat{\tilde{\mathbf A}} $ 的最大特征值为1
,因此 $ \frac{1}{1-\alpha}\gt 1 $ 一定不是 $ \hat{\tilde{\mathbf A}} $ 的特征值,因此 $ \det\left( \hat{\tilde{\mathbf A}} - \frac{1}{ (1-\alpha)}\mathbf I_n\right)\ne 0 $ 。因此证明了 $ \mathbf \Pi_\text{ppr} $ 一定存在。为了将上述影响力得分用于半监督分类,我们首先根据每个节点的自身特征来生成预测
prediction
,然后通过我们的Personalized PageRank
机制来传播prediction
从而生成最终的预测结果。这就是personalized propagation of neural predictions: PPNP
的基础。PPNP
模型为:其中:
$ f_{\theta}(\cdot) $ 为神经网络, $ \theta $ 为网络参数,它根据节点 $ i $ 的特征 $ \mathbf{\vec x}_i $ 来生成节点 $ i $ 的预测 $ \mathbf{\vec h}_i\in \mathbb R^K $ 。 $ \mathbf H\in \mathbb R^{n\times K} $ 为所有节点根据其特征来生成的预测的矩阵,每行对应一个节点。注意:由于
$ f_\theta(\cdot) $ 在每个节点的特征上独立执行,因此可以并行进行。 $ \mathbf Z\in \mathbb R^{n\times K} $ 为PPNP
每个节点预测的label
分布。
事实上,还可以用任何传播矩阵来代替
$ \hat{\tilde{\mathbf A}} $ ,如 $ \mathbf A_\text{rw} $ 。可以看到,
PPNP
将神经网络预测和图的传播相互分离。这种分离还解决了上述提到的第二个问题:神经网络的深度现在完全独立于传播算法。正如我们将在GCN
和PageRank
联系时所看到的,Personalized PageRank
能够有效地使用无限多个卷积层,这在传统的消息传递框架中显然是不可能的。此外,分离还使得我们可以灵活地运用任何方法来生成预测。这个就是标签传播
label propagation: LP
的思想,将MLP
和LP
相结合。该方法有效的前提是:相邻节点具有相似的label
。PPNP
传播的是prediction
,而传统GCN
传播的是representation
。虽然在
inference
阶段,生成单个节点的预测和传播这个预测是连续进行的(看起来是多阶段的),实际上模型的训练是端到端的。即,在反向传播期间梯度流经传播框架(相当于隐式地考虑了无限多个邻域聚合层)。因此,采用传播框架之后大大提高了模型的准确性。
16.1.3 APPNP
直接计算完整的
Personalized PageRank
矩阵 $ \mathbf \Pi_\text{ppr} $ 的计算效率较低,并且产生了一个稠密的 $ \mathbb R^{n\times n} $ 的矩阵。使用这个稠密矩阵将导致训练和推断时 $ O(n^2) $ 的计算复杂度和空间复杂度。为解决这个问题,重新考虑等式:
除了将
$ \mathbf T $ 视为稠密的Personalized PageRank
矩阵 $ \mathbf \Pi_\text{ppr} $ 和prediction
矩阵 $ \mathbf H $ 的乘积之外,还可以将其视为Topic-sensitive PageRank
的变体,其中每个类别对应于一个主题。在这个角度下, $ \mathbf H $ 的每一列都定义了一个在所有节点上的分布(非归一化的),这个分布充当teleport set
。因此,我们可以通过采用Topic-sensitive PageRank
来近似计算PPNP
,我们称其为approximate personalized propagation of neural predictions: APPNP
。APPNP
通过Topic-sensitive PageRank
的幂次迭代power iteration
来达到线性复杂度。Topic-sensitive PageRank
的幂次迭代和带重启的随机游走相关,它的每个幂次迭代步定义为:其中:
prediction
矩阵 $ \mathbf H $ 扮演了starting vector
和teleport set
的作用; $ L $ 定义了幂次迭代的数量。注意:这个方法保持了图的稀疏性,并且从未构建一个
$ \mathbb R^{n\times n} $ 的矩阵( $ \mathbf H,\mathbf T^{(l)},\mathbf Z $ 都是 $ \mathbb R^{n\times K}, K\ll n $ )。但是,
$ \tilde{\mathbf A} = \mathbf A + \mathbf I_n $ 为 $ \mathbb R^{n\times n} $ 的稠密矩阵, $ \hat{\tilde{\mathbf A}} $ 为 $ \tilde{\mathbf A} $ 的归一化形式,因此也是稠密矩阵。 $ \hat{\tilde{\mathbf A}} \mathbf T^{(l)} $ 的计算复杂度为 $ O(n^2K) $ ,对于千万甚至亿级的图而言,这个计算复杂度仍然是不可行的。可以证明:当
$ L\rightarrow\infty $ 时,APPNP
收敛到PPNP
。证明:
APPNP
的迭代公式:在经过
$ L $ 步传播之后:当取极限
$ L\rightarrow\infty $ 时,第一项趋近于零,第二项为一个几何级数。当 $ \alpha \in (0,1] $ 时,另外考虑到 $ \hat{\tilde{\mathbf A}} $ 为对称的归一化邻接矩阵,因此有 $ \text{det}(\hat{\tilde{\mathbf A}}) \le 1 $ ,因此第二项收敛。因此有:这就是
PPNP
。PPNP/APPNP
的传播框架propagation scheme
不需要训练任何其它额外的参数。与GCN
这样的模型不同,GCN
通常需要为每个propagation layer
(GCN
中的传播层就是聚合层)提供更多的参数。因此,PPNP/APPNP
中可以使用很少的参数传播得更远。实验结果表明:这种传播能力确实非常有益。将
PPNP
视为不动点fixed-point
迭代,这和最原始的图神经网络GNN
模型存在关联。图神经网络中也是需要通过迭代来求解不动点,但是PPNP
和GNN
存在以下几点不同:PPNP
的不同点迭代实际上通过Personalized PageRank
已经求解到,因此直接使用Personalized PageRank
矩阵 $ \mathbf \Pi_\text{ppr} $ 。无需一步一步地迭代计算。PPNP
在传播之前应用学到的特征变换,而GNN
中在传播过程中应用学到的特征变换。
PPNP/APPNP
中,影响每个节点的邻域大小可以通过回传概率 $ \alpha $ 进行调整,这可以使得我们能够针对不同类型的图(不同的图需要考虑不同的邻域大小)来优化模型。 $ \alpha $ 越大,则停留在局部的概率越大,邻域越小;反之,则邻域越大。最后,我们给出
PPNP
模型的示意图。- 首先利用神经网络
$ f_{\theta}(\cdot) $ 来对每个节点的特征 $ \mathbf{\vec x}_i $ 来生成预测 $ \mathbf{\vec h}_i $ 。 - 然后使用
Personalized PageRank
来传播预测 $ \mathbf{\vec h}_i $ 。
注意该模型是端到端训练的,而不是
pipeline
训练的。- 首先利用神经网络
16.2 实验
数据集:我们使用四个文本分类数据集。
CITESEER
:引文网络,每个节点代表一篇论文,边代表它们之间的引用。CORA-ML
:引文网络,每个节点代表一篇论文,边代表它们之间的引用。PUBMED
:引文网络,每个节点代表一篇论文,边代表它们之间的引用。MICROSOFT ACADEMIC
数据集:引文网络,每个节点代表一篇论文,边代表co-authorship
。
对于每个图,我们使用其最大连通分量。所有数据集都使用论文摘要的
bag-of-word
作为特征。下图给出了这些数据集的统计信息,其中SP
表示平均最短路径长度。注意:更大的图不一定具有较大的直径(以
SP
来衡量)。总体而言,这些图的平均直径为5~10
,因此常规的两层GCN
网络无法覆盖整个图。因为使用了不同的训练配置和过拟合,很多实验评估都遭受了肤浅的统计评估
superficial statistical evaluation
和实验偏差experimental bias
。实验偏差的原因是:对于训练集/验证集/测试集的单次拆分没有明显区分验证集和测试集,或者对于每个数据集甚至是数据集的每次拆分都微调超参数。正如我们评估结果中显示的,消息传递算法对于数据集的拆分以及权重初始化非常敏感,因此精心设计的评估方法非常重要。
我们的工作旨在建立一个全面彻底的评估方法:
首先,我们对每个实验执行
100
次,其中每次都是随机拆分训练集并随机初始化权重。我们采用Glorot
权重初始化方法。其次,我们将数据集拆分为可见集和测试集,这种拆分固定不变。其中测试集仅用于报告最终性能,并不会进行训练和超参数择优。
- 对于引文网络,可见集采样了
1500
个节点,剩余节点为测试集。 - 对于
MICROSOFT ACADEMIC
网络,可见集采样了5000
个节点,剩余节点为测试集。
可见集被随机拆分为训练集、验证集、以及早停集。训练集中每种类别包含
20
个节点,早停集包含500
个节点,剩余节点作为验证集。我们选择
20
个不同的随机数种子并固定下来,接下来选择其中的一部分用于随机拆分可见集--测试集、另一部分用于随机拆分训练集--验证集。 另外,每种数据拆分都进行5
次随机初始化,因此实验一共进行100
次。- 对于引文网络,可见集采样了
为进一步防止过拟合,考虑到所有实验的数据集都使用
bag-of-word
特征,因此我们对所有数据集都采用相同数量的层数、相同的hiddel layer
维度、相同的dropout
比例、相同的 $ L_2 $ 正则化参数、 相同的学习率。为防止实验偏差,我们使用
CITESEER
和CORA-ML
上的网格搜索来分别优化所有模型的超参数,并在模型之间使用相同的早停准则:patience = 100
的阈值,以及最多 $ 10000 $ 个epoch
(实际上永远无法达到这么多epoch
)。只要在早停数据集的准确率提升或者损失函数降低,则重设
patience
。我们选择在早停数据集上准确率最高的patience
。该准则受到GAT
的启发。最后,为了确保我们实验配置的统计鲁棒性,我们通过
bootstrapping
计算出置信区间,并报告主要结论的t-test
的p-value
。
据我们所知,这是迄今为止对
GCN
模型的最严格的研究。Baseline
方法:GCN
:图卷积神经网络。N-GCN
:结合了无监督的随机游走和半监督学习两方面优势的N-GCN
模型。GAT
:图注意力神经网络。bootstrapped feature propagation: FP
:将经典的线性的图扩散结合self-training
框架,从而得到的FP
网络。jumping knowledge networks with concatenation: JK
:JK-Net
网络。- 对于
GCN
我们还给出了未经过超参数优化的普通版本V.GCN
来说明早停和超参数优化的强大影响。
模型配置:
V.GCN
:使用原始论文的配置,其中包括两层的卷积层、隐层维度 $ h=16 $ 、邻接矩阵上不使用dropout
、 $ L_2 $ 正则化系数 $ \lambda = 5\times 10^{-4} $ 。并且采用原始论文的早停配置:在损失函数上最多迭代200
个step
,以及早停的patience = 10
。择优的
GCN
:使用两层卷积层、隐层维度 $ h=64 $ 、邻接矩阵上使用dropout rate = 0.5
的dropout
、 $ L_2 $ 正则化系数为 $ \lambda = 0.02 $ 。N-GCN
:每个随机游走长度使用4
个head
以及隐层维度 $ h=16 $ ,随机游走长度从1 step
到4 step
。使用 $ \lambda = 10^{-5} $ 的 $ L_2 $ 正则化来正则化所有层。使用attention
机制来合并所有head
的预测。GAT
:使用优化好的原始论文的超参数,除了 $ L_2 $ 正则化系数为 $ \lambda = 0.001 $ 以及学习率为0.01
。和原始论文相反,对于PUBMED
数据集我们并未使用不同的超参数。FP
:使用 $ \alpha = 0.2 $ 的回传概率,以及10
个传播step
、10
个self-training step
,每个step
增加 $ r=0.1\times n $ 个训练节点。我们在预测中添加交叉熵最小的训练节点。每个类别添加的节点数基于预测的类别的比例。注意,该模型在初始化时不包含任何随机性,因此我们在每个
train/early stopping/test
集合拆分时仅拆分一次。JK-Net
:我们使用concatenation
层聚合方案,采用三层卷积神经网络,每层的隐层维度 $ h=64 $ 。对所有层采用 $ \lambda = 0.001 $ 的 $ L_2 $ 正则化,并在所有层执行dropout rate = 0.5
的dropout
。但是正则化和dropout
并不作用在邻接矩阵上。PPNP
:为确保公平的模型比较,我们为PPNP
的预测模型使用了神经网络,该网络在结构上和GCN
非常相似,并具有相同的参数数量。我们使用两层网络,每层的隐层维度为 $ h=64 $ 。我们在第一层的权重矩阵上应用
$ \lambda = 0.005 $ 的 $ L_2 $ 正则化,在所有层的权重矩阵以及邻接矩阵上应用dropout rate = 0.5
的dropout
。对于
APPNP
,我们在每个幂次迭代步之后,都会对邻接矩阵的dropout
重新采样。对于传播过程,我们使用
$ \alpha = 0.1 $ 的重启概率,以及 $ L=10 $ 个幂次迭代步。对于
MICROSOFT ACADEMIC
数据集,我们使用 $ \alpha = 0.2 $ 的重启概率,因为该数据集的结构不同。
注意:
PPNP
使用浅层的神经网络和较大的 $ L $ 相结合,从而获得最佳效果。下图表示APPNP
不同深度的网络对于验证集的准确率。可以看到:更深的预测网络无法提高准确率,这可能是因为简单的Bag-of-word
特征以及训练集太小导致的。
另外,我们使用
Adam
优化器并且所有模型的学习率都为0.01
。我们使用交叉熵损失函数,并且将特征矩阵按行进行 $ L_1 $ 归一化。不同模型在测试集上的指标如下表所示,其中第一张表为
Micro-F1 Score
,第二张表为Macro-F1 Score
,最后两张表为t
检验结果。*
表示模型在PUBMED, MS ACADEMIC
上Out Of Memory
。结论:
我们的
PPNP/APPNP
在所有数据集上均明显优于SOA baseline
方法。我们的严格的比较方式可能会低估
PPNP/APPNP
的优势。通过t
检验表明,该比较结果具有统计学意义 $ p \le 0.05 $ 。这种严格的比较方式还表明:当考虑更多的数据集拆分、适当地超参数优化、合理地模型训练时,最近的一些工作(如
N-GCN, GAT, JK-Net, FP
等)的优势实际上消失了。在我们的配置中,一个简单的、经过超参数优化的
GCN
就超越了最近提出的这几种模型。
我们给出不同模型在不同数据集上,由于不同的随机初始化以及不同的数据集拆分带来的测试准确率的变化。这表明严格的评估方式对于模型比较的结论至关重要。
此外,这还展示了不同方法的鲁棒性。如
PPNP, APPNP, GAT
通常具有较低的方差。我们考虑不同模型的训练时间。这里考虑每个
epoch
的平均训练时间(而不是整个训练过程的时间)。我们并未考虑收敛速度(需要多少个epoch
收敛),因为不同模型的超参数都各自调优,并且不同模型使用的early stopping
准则不同(调优之后各自的patience
不一样)。*
表示无法实现,因为无法训练;**
表示在PUBMED, MS ACADEMIC
上Out Of Memory
。结论:
PPNP
只能应用于中等规模的图,APPNP
可以扩展到大图。平均而言,
APPNP
比GCN
慢25%
,因为APPNP
的矩阵乘法的数量更多。但是APPNP
的可扩展性和GCN
相似。APPNP
比GCN
慢一些但是效果好一点点,所以这是一个速度和效果的trade-off
。此外,如果GCN
总的训练时间与APPNP
相同(即,GCN
多25%
的epoch
),是否二者效果一致?这样的话,APPNP
就没有什么优势了。APPNP
比其它更复杂的模型(如GAT
)快得多。
由于现实世界数据集的
label
比例通常很小,因此研究小样本模型的性能非常重要。下图依次给出CORA_ML, CITESEER, PUBMED
数据集上,每个类别训练节点数量 $ n_\text{train,per\;class} $ 对于模型性能的影响(以测试准确率为指标)。结论:训练的
label
节点越稀疏,PPNP/APPNP
的优势越大。这可以归因于PPNP/APPNP
较高的传播范围,从而将label
节点传播到更远的地方。为支持这种归因,我们找到了更多的证据:我们比较了
APPNP
和GCN
的准确率的提升幅度 ,发现准确率提升幅度依赖于测试节点和训练集的距离(以最短路径衡量)。如下面最后一幅图所示,横坐标为最短路径(单位为hop
),纵坐标为提升幅度, $ \bar n $ 为该最短路径的测试节点数量。可以看到:APPNP
相对于GCN
的性能提升,随着测试节点到训练集的距离的增加而增加。这表明距训练集较远的节点从APPNP
的传播范围的增加中收益更多。我们评估了幂次迭代
power iteration
数量 $ L $ (原始论文用K
来表示)对于模型准确性的影响。结论:
对于
GCN-like
(对应于 $ \alpha = 0 $ ,即全局的PageRank
方法),其性能随着 $ L $ 的增加而下降。对于
APPNP
(对应于 $ \alpha = 0.1 $ ,即Personalized PageRank
),其性能随着 $ L $ 的增加而提升。这证明了个性化传播确实是有效的。当
$ L $ 增加到无穷大时,APPNP
收敛到PPNP
。但是我们发现,当 $ L=10 $ 时,APPNP
已经足以有效地逼近PPNP
。有趣的是,我们发现这个数字和数据集的半径相符。
我们评估了超参数
$ \alpha $ (重启概率)对于模型准确率的影响。结论:
- 尽管每个数据集的最优
$ \alpha $ 略有不同,但是我们发现 $ \alpha \in [0.05,0.2] $ 之间时模型表现最佳。 - 应该对不同的数据集采用不同的
$ \alpha $ ,因为不同的图展示出不同的邻域结构。
注意:较高的
$ \alpha $ 会提高模型训练的收敛速度。- 尽管每个数据集的最优
PPNP
和APPNP
虽然分为预测网络 $ f_\theta $ 以及传播两个部分,但是它是端到端训练的。通过研究模型在没有传播时的表现,可以体现传播的价值。下图给出了传播如何影响模型训练和推断。Never
:表示从来不使用传播。这表示我们仅使用节点特征来训练和使用一个标准的多层感知机MLP
$ f_\theta $ 。Training
:表示我们使用APPNP
来训练模型(采用了传播),但是在inference
时仅使用 $ f_\theta $ 来预测(而不考虑传播)。Inference
:表示我们仅使用特征来训练多层感知机 $ f_\theta $ ,但是在inference
时结合传播来预测。Inf & Training
:表示常规的APPNP
模型,即在训练和inference
时总是使用传播。
结论:
Inf & Training
总是可以获得最佳结果,这验证了我们的方法。在大多数数据集上,仅在
inference
中使用传播时,准确率下降得很少。训练期间跳过传播可以大大减少大型数据集的训练时间,因为所有节点都可以独立地处理。
这也表明我们的模型可以与不包含任何图结构信息的预训练神经网络相结合,并可以显著提高其准确性。
Training
相对于Never
也有较大的改善。这表明仅在训练期间进行传播也是有价值的。因此我们的模型也可以应用于online/inductive learning
,其中只有特征信息(而不是观察到的邻域信息)可用。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论