数学基础
- 线性代数
- 概率论与随机过程
- 数值计算
- 蒙特卡洛方法与 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
- 并发
五、GNN 评估陷阱 [2018]
图的半监督节点分类是图挖掘中的一个经典问题,最近提出的图神经网络
graph neural network:GNN
在这个任务上取得了瞩目的成就。尽管取得了巨大的成功,但是由于实验评估程序的某些问题,我们无法准确判断模型所取得的进展:首先,很多提出的模型仅仅是在
《Revisiting semi-supervised learning with graph embeddings》
给出的三个数据集(CORA,CiteSeer,PubMed
) 上、且使用该论文相同的train/validation/test
数据集拆分上评估的。这种实验配置倾向于寻找最过拟合
overfit the most
的模型,并且违反了train/validation/test
拆分的目的:寻找泛化能力最佳best generalization
的模型。其次,在评估新模型的性能时,新模型和
baseline
通常采用不同的训练程序。例如,有的采用了早停策略,有的没有采用早停策略。这使得很难确定新模型性能的提升是来自于新模型的优秀架构,还是来自于训练过程或者超参数配置。这使得对新模型产生不公平的好处unfairly benefit
。
有鉴于此,论文
《Pitfalls of Graph Neural Network Evaluation》
表明现有的GNN
模型评估策略存在严重缺陷。为解决这些问题,论文在
transductive
半监督节点分类任务上对四种著名的GNN
架构进行了全面的实验评估。论文在同一个框架内实现了四个模型:GCN, MoNet, GraphSage, GAT
。在评估过程中,论文专注于两个方面:
对所有模型都使用标准化的训练和超参数选择过程。在这种情况下,性能的差异可以高度确定地
high certainty
归因于模型架构的差异,而不是其它因素。对四个著名的引文网络数据集进行实验,并为节点分类问题引入四个新的数据集。
对于每个数据集使用
100
次随机train/validation/test
拆分,对于每次拆分分别执行20
次模型的随机初始化。这种配置使得我们能够更准确地评估不同模型的泛化性能,而不仅仅是评估模型在一个固定测试集的上的性能。
论文声明:作者不认为在
benchmark
数据集上的准确性是机器学习算法的唯一重要特性。发展和推广现有方法的理论,建立与其他领域的联系(和适应来自其他领域的思想)是推动该领域发展的重要研究方向。然而,彻底的实证评估对于理解不同模型的优势和局限性至关重要。实验结果表明:
- 考虑数据集的不同拆分会导致模型排名的显著不同。
- 如果对所有模型都合理地调整超参数和训练过程,那么简单的
GNN
架构就可以超越复杂的GNN
架构。
5.1 模型和数据集
考虑图上的
transductive
半监督节点分类问题。本文中我们比较了以下四种流行的图神经网络架构:Graph Convolutional Network: GCN
:是早期的模型,它对谱域卷积执行线性近似。Mixture Model Network: MoNet
:推广了GCN
架构从而允许学习自适应的卷积滤波器。Graph Attention Network: GAT
:采用一种注意力机制从而允许在聚合步骤中以不同的权重加权邻域中的节点。GraphSAGE
:侧重于inductive
节点分类,但是也可用于transductive
配置中。我们考虑原始论文中的三个变体:GS-mean, GS-meanpool, GS-maxpool
。
所有上述模型的原始论文和参考实现均使用不同的训练程序,包括:不同的早停策略、不同的学习率衰减
decay
、不同的full-batch /mini-batch
训练。如下图所示:不同的实验配置使得很难凭实验确定模型性能提升的背后原因。因此在我们的实验中,我们对所有模型都使用标准化的训练和超参数调优程序,从而进行更公平的比较。
此外,我们考虑了四个
baseline
模型,包括:逻辑回归Logistic Regression: LogReg
、多层感知机Multilayer Perceptron: MLP
、标签传播Label Propagation: LabelProp
、归一化的拉普拉斯标签传播Normalized Laplacian Label Propagation: LabelProp NL
。其中:LogReg,MLP
是基于属性的模型,它们不考虑图结构;LabelProp, LabelProp NL
仅考虑图结构而忽略节点属性。数据集:
我们考虑四个著名的引文网络数据集:
PubMed, CiteSeer, CORA, CORA-Full
。其中CORA-Full
是CORA
的扩展版本。我们还为节点分类任务引入了四个新的数据集:
Coauthor CS
、Coauthor Physics
、Amazon Computers
、Amazon Photo
。Amazon Computers
和Amazon Photo
是Amazon co-purchase
图的一部分。其中:节点代表商品、边代表两个商品经常被一起购买,节点特征为商品评论的bag-of-word
,类别标签label
为产品类目category
。Coauthor CS
和Coauthor Physics
是基于Microsoft Academic Graph
的co-authorship
图。其中:节点代表作者、边代表两名作者共同撰写过论文,节点特征为每位作者论文的论文关键词,类别标签为作者最活跃的研究领域。
我们对数据集进行了标准化,其中对
CORA_full
添加了self-loop
,并删除CORA_full
样本太少的类别。 我们删除了CORA_full
中样本数量少于50
个节点的3
个类别,因为我们对这些类别无法执行很好的数据集拆分(在后续数据集拆分中,每个类别至少要有20
个标记节点作为训练集、30
个标记节点作为验证集)。对于所有数据集,我们将图视为无向图,并且仅考虑最大连通分量。
数据集的统计量如下表所示。其中:
Label rate
为数据集的标记率,它表示训练集的标记节点的占比。因为我们对每个类别选择20
个标记节点作为训练集,因此:Edge density
为图的链接占所有可能链接的比例,它等于:
5.2 实验配置
模型架构:我们保持原始论文/参考实现中相同的模型架构,其中包括:层
layer
的类型和顺序、激活函数的选择、dropout
的位置、 $ L_2 $ 正则化位置的选择。我们还将
GAT
的attention head
数量固定为8
、MoNet
高斯核的数量固定为2
。所有模型都有
2
层:input features --> hidden layer --> output layer
。训练过程:为了更公平的比较,我们对所有模型都使用相同的训练过程。对于所有的模型:
- 相同的优化器,即:带默认参数的
Adam
优化器。 - 相同的初始化,即:根据
Glorot
初始化权重,而bias
初始化为零。 - 都没有学习率衰减。
- 相同的最大训练
epoch
数量。 - 相同的早停准则、相同的
patience
、相同的验证频率validation frequency
。 - 都使用
full-batch
训练,即:每个epoch
都使用训练集中的所有节点。 - 同时优化所有的模型参数,包括:
GAT
的attention weights
、MoNet
的kernel parameters
、所有模型的权重矩阵。 - 所有情况下,我们选择每个类别
20
个带标签的节点作为训练集、每个类别30
个带标签的节点作为验证集、剩余节点作为测试集。
我们最多训练
100k
个epoch
,但是由于我们使用了严格的早停策略,因此实际训练时间大大缩短了。具体而言,如果总的验证损失(数据损失 +正则化损失)在50
个epoch
都没有改善,则提前停止训练。一旦训练停止,则我们将权重的状态重置为验证损失最小的step
。- 相同的优化器,即:带默认参数的
超参数选择:我们对每个模型使用完全相同的策略进行超参数选择。具体而言,我们对学习率、
hidden layer
维度、 $ L_2 $ 正则化强度、dropout rate
执行网格搜索。搜索空间:- 隐层维度:
[8, 16, 32, 64]
。 - 学习率:
[0.001, 0.003, 0.005, 0.008, 0.01]
。 dropout rate
:[0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8]
。attention
系数的dropout rate
(仅用于GAT
):[0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8]
。 $ L_2 $ 正则化强度:[1e-4, 5e-4, 1e-3, 5e-3, 1e-2, 5e-2, 1e-1]
。
对于每个模型,我们选择使得
Cora
数据集和CiteSeer
数据集上平均准确率最高的超参数配置。这是对每个数据集执行100
次随机train/validation/test
拆分、对于每次拆分分别执行20
次模型的随机初始化从而取得的。所选择的最佳超参数配置如下表所示,这些配置用于后续实验。这里应该针对不同数据集进行超参数调优,而不是所有数据集都采用相同的超参数(即,在
Cora
数据集和CiteSeer
数据集上平均准确率最高的超参数配置)。注意:
GAT
有两个dropout rate
:节点特征上的dropout
、注意力系数上的dropout
。- 所有
GraphSAGE
模型都有额外的权重用于skip connection
,这使得实际的hidden size
翻倍。因此这里GS-mean
的Effective hiden size = 32
。 GS-meanpool/GS-maxpool
具有两个hidden size
:隐层的size
、中间特征转换的size
。GAT
使用8
个head
的multi-head
架构,而MoNet
使用2
个head
。
- 隐层维度:
5.3 实验结果
所有
8
个数据集的所有模型的平均准确率(以及标准差)如下表所示。结果是在100
次随机train/validation/test
拆分、对于每次拆分我们分别执行20
次模型的随机初始化上取得的。对每个数据集,准确率最高的得分用粗体标记。
N/A
表示由于GPU RAM
的限制而无法由full-batch
版本的GS-maxpool
处理的数据集。结论:
首先,在所有数据集中,基于
GNN
的方法(GCN, MoNet, GAT, GraphSAGE
) 显著优于baseline
方法(MLP, LogReg, LabelProp, LabelProp NL
) 。这符合我们的直觉,并证明了与仅考虑属性或仅考虑结构的方法相比,同时考虑了结构和属性信息的、基于
GNN
的方法的优越性。其次,
GNN
方法中没有明显的winner
能够在所有数据集中占据主导地位。实际上,在
8
个数据集中的5
个数据集,排名第二、第三的方法得分和排名最高的方法得分,平均相差不到1%
。如果我们有兴趣对模型之间进行比较,则可以进行
pairwise t-test
。这里我们考虑模型之间的相对准确率作为pairwise t-test
的替代。具体而言:- 首先对每个数据集进行随机拆分。
- 然后在这个拆分中,训练并得到每个模型的准确率(已经对
20
次随机初始化取平均)。 - 对于这个拆分中,准确率最高模型的准确率为最优准确率。我们将每个模型的准确率除以最优准确率,则得到相对准确率。
- 然后我们对模型根据相对准确率排名,
1
表示最佳、10
表示最差。
对于每个模型,考虑所有拆分的排名、以及平均相对准确率,如下表所示。我们观察到:
GCN
在所有模型中实现最佳性能。尽管这个结论令人惊讶,但是在其它领域都有类似报道。如果对所有方法均谨慎地执行超参数调优,则简单的模型通常会超越复杂的模型。
最后,令人惊讶的是
GAT
针对Amazon Computers
和Amazon Photo
数据集获得的结果得分相对较低,且方差很大。为研究这个现象,我们可视化了
Amazon Photo
数据集上不同模型的准确率得分。尽管所有GNN
模型的中位数median
得分都很接近,但是由于某些权重初始化,GAT
模型的得分非常低(低于40%
)。尽管这些异常值较少出现(2000
次结果中有138
次发生),但是这显著降低了GAT
的平均得分。
我们评估
train/validation/test
拆分的效果。为此,我们执行以下简单实验:将数据集按照《Revisiting semi-supervised learning with graph embeddings》
中的随机拆分(仅拆分一次),然后运行四个模型并评估模型的相对准确率。可以看到:如果执行另外一次随机拆分(拆分比例都相同),则模型的相对准确率排名完全不同。
这证明了单次拆分中的评估结果的脆弱和误导性。考虑到小扰动的情况下,
GNN
的预测可能发生很大变化,这进一步明确了基于多次拆分的评估策略的必要性。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论