| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 人工智能 -> 《Graph-MLP Node Classification without Message Passing in Graph》阅读笔记 -> 正文阅读 |
|
[人工智能]《Graph-MLP Node Classification without Message Passing in Graph》阅读笔记 |
论文地址:Graph-MLP Node Classification without Message Passing in Graph Overview?传统GNN的相关工作都强调信息传递(message passing)的重要性,但是作者提出这不是必要的。为此作者设计了一种基于多层感知机的框架——Graph-MLP,该框架在前向传播的过程中并不涉及信息的传递,而是在计算Loss时隐式的引入邻接信息来弥补CNN和MLPs之间的差距。实验结果表明作者提出的框架相对于GNN而言具有更快的运算效率,同时在缺失边的推断场景下更具有鲁棒性(因为推断过程中不需要提供结点之间的邻接信息)。 ?作者在文中所作的贡献可以概括如下:
Graph-MLP模型模型结构?图1中展示的便是Graph-MLP模型,可知它由线性层+激活层+正则化层+Dropout层+线性层+线性层组成。其中激活函数使用的是Gelu,正则化层为Layer Norm(对每个结点的特征向量单独进行归一化)。倒数第二个线性层是用来联合邻接信息计算NContrast Loss的,而最后一个线性层是用来进行结点分类的(最后一层也会计算一个交叉熵损失)。 模型的数学形式?Graph-MLP用数学公式描述如下: 损失函数?正如前文提到的,Graph-MLP的损失函数由NContrast Loss + 分类损失组成。首先重点介绍下作者提出的NContrast Loss,该损失函数是为了让Graph-MLP模型能够利用图中结点的邻接信息,它借鉴了对比学习(Contrastive Learning)的思想,即在特征空间中连接的结点应该彼此接近,而不连接的结点应该相互远离。在NContrast Loss中,每个结点的
r
r
r?跳邻居被认为是正采样,其他的结点被认为是负采样。该损失函数的数学公式如下: Experiments?作者在Cora、Citeseer和Pumbed三个数据集上进行了相关实验,数据集的统计信息展示如下: 由于Graph-MLP模型前向传播的过程中不需要使用邻接矩阵,因此可以采用Mini-Batch策略进行训练。在每个batch中,需要随机采样 B B B??个结点以及与之对应的邻接信息 A ^ ∈ R B × B \hat{A} \in \mathbb{R}^{B \times B} A^∈RB×B?和结点特征 X ∈ R R × d \boldsymbol{X} \in R^{\mathbb{R} \times d} X∈RR×d?。但由于随机采样,可能存在一些结点 i i i在batch中不存在正样本,这种情况下,采取的策略是不计算结点 i i i的损失。 ?上述三个数据集都划分为了训练集、验证集与测试集,其在三个数据集中所占的数量如下表所示:
超级参数配置说下:
注:测试结果是在验证机上表现最佳的模型上得到的;当 α = 0 \alpha = 0 α=0?时Graph-MLP就变成了最基础的MLP;优化器为Adam。 作者将Graph-MLP与几个SOTA的图学习方法进行了对比,对比结果展示如下: 结论:Graph在Citeseer和Pubmed都取得了最好的效果,尽管在Cora数据集上的效果不是最好的,但也和其他几个模型的性能差不多。作者指出可能是因为Cora数据集构成的图比较小而无法提供足够的对比监督。 效率对比:Graph-MLP VS GNNs?作者尝试在MLP-based模型的第一个线性层和第二个线性层之间添加信息传递模块例如图卷积(可看作一个两层的GCN模型),然后与Graph-MLP模型进行对比,对比结果如下:
结论:图3可以看出Graph-MLP在Citeseer和Pubmed数据集上取得更好的结果和更快的收敛速度(数量级的差异),在Cora虽然GCN收敛更快但最后二者性能也是可以比较的。从表3可以看出,GCN的推断时间随着图规模的增大而增加(因为要乘以更大的邻接矩阵),而Graph-MLP由于没有使用邻接矩阵所以推断时间在图增大的时候基本不受影响。 超参上的消融实验(Ablation Study)注:Ablation Study类似于控制变量法,每次修改一个变量,保持其他变量不动,观察这个变量对结果/性能的影响。 ?作者在 τ \tau τ、 r r r、 B B B、 α \alpha α、learning rate和weight deacy上进行了消融实验,实验结果展示如下图: 结论: τ \tau τ、 r r r、 B B B??的改变对性能的影响不大;在Cora和Pubmed数据集上 α \alpha α由1变大到10,准确率有所提升,而由10变到100时准确率又下降了一点,在Citeseer数据集上 α \alpha α由1变到100,准确率实值在提升。 嵌入可视化?作者对 Z Z Z的嵌入进行了可视化展示,用以帮助直观的展示NContrast Loss对原始MLP的作用,结果如下图所示: 结论:随着 α \alpha α的从0增大到100,相同类别的Embedding更加接近,而不同类别的Embedding会不断远离。 缺失连接的推断下的鲁棒性验证实验?为了证明Graph-MLP在缺失连接下进行推断仍具有良好的鲁棒性,作者在测试过程中的邻接矩阵中添加了噪声,缺失连接的邻接矩阵的计算公式如下: 结论:从上图可以看出随着缺失率的增加,GCN的推断性能急剧下降,而Graph-MLP却基本不受影响。 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年4日历 | -2025/4/16 19:38:10- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |