图神经网络(篇二)-基础知识

发布于:2025-07-02 ⋅ 阅读:(16) ⋅ 点赞:(0)

整体框架

图简介

图学习库PGL

维度 链接(见下方)
GitHub链接 PGL-Github
API文档 API文档
配套的Paddle项目实例 项目实例:AI Studio,使用指南
配套的视频课程 Paddle官网课程链接、B站课程链接
经典的图神经网络课程 斯坦福CS224W课程:图神经网络课程
  1. PGL-Github
  2. API文档
  3. 项目实例:AI Studio使用指南

  4. 视频课程:Paddle官网课程链接B站课程链接

  5. 斯坦福CS224W课程:图神经网络课程

图游走类算法

总结

图类型 模型 实现步骤 游走概率
同构图 DeepWalk 随机游走+Skip Gram+负采样=>节点embedding=>下游任务 无向图,游走到下一节点的概率是一样的(=1/N(v),N(v)是节点v的邻居节点数量)
同构图 Node2vec bias随机游走+Skip Gram+负采样=>节点embedding=>下游任务 无向图,游走到下一节点的概率可以是一样/不一样的,可以通过p、q设置决定是BFS/DFS
异构图 Metapath2Vec meta path based随机游走+Skip Gram+负采样=>节点embedding=>下游任务 无向图,游走到下一节点的概率可以是一样/不一样的
异构图 Metapath2Vec++ 相比metapath2vec,负采样时考虑了节点类型 无向图,游走到下一节点的概率可以是一样/不一样的

异构图游走

  1. 异构图

    1. 相比同构图,考虑了节点类型(T),即G=(V,E)=>G=(V,E,T)

  2. 按照同构图游走的缺点

    1. 偏向于出现频率高的节点类型

    2. 偏向于度数高的节点

  • meta path

  1. 含义:元路径。即选择的路径首先需要保证是有意义的,一般情况下需要专家筛选

  2. 构成元路径的条件

    1. 从当前节点到下一个节点的游走概率是等概率的

    2. 需要是对称的(可以保证继续游走,具有更长的游走长度)

  • Metapath2Vec

  1. 是基于meta path的随机游走

  2. 停止游走的条件

    1. 到达游走长度;

    2. 找不到符合类型的节点

  3. 不足

    1. 随机游走时考虑了节点类型,负采样时没有考虑

  • Metapath2Vec++

  1. 相比Metapath2Vec,负采样时考虑了节点类型

  • multi+Metapath2Vec++

  1. 相比Metapath2Vec++,生成了多种类型的元路径

  • side info+multi+Metapath2Vec++

  1. 相比multi+Metapath2Vec++,节点融合了属性信息

神经网络算法

对比总结

对比 优点
图游走类算法 是end-to-end的,更直接地应用于下游的任务
DNN 除了结构数据(如CNN、RNN),也适用于非结构数据
CNN GNN的节点的邻居个数是不固定的

模型总结

模型 实现 边权重 说明
图卷积网络(GCN) 消息传递:将邻居的特征接收、聚合实现节点表示 与节点的度相关,不可学习 可以基于多层GCN实现节点分类
图注意力网络(GAT) 同上 与两节点的相关性相关,是节点间的函数,是可学习的 可以构建多头Attention(会增加数据维度、计算量)

Message Passing

说明 模型
包含2部分:消息的发送、接收 GCN、GAT:都是基于邻居聚合的模型,称为Spatial(空间)GNN

实现

  1. 对于GAT、多头GAT:建议使用GPU实现

  2. 实现代码参考:PGL-Github中的pgl-nn-conv

图采样

采样必要性

分类 训练方法-MiniBatch MiniBatch的必要性
传统深度学习 单batch为若干样本样本间无依赖,多层样本计算量固定 CPU/GPU资源受限,需要借鉴MiniBatch
图神经网络 单batch为若干样本样本间无依赖,多层样本计算量爆炸 CPU/GPU资源受限,需要借鉴MiniBatch

采样逻辑

子图采样不是随机采样,需要保证可以根据邻居节点聚合得到节点表征

采样算法

GraphSage

  • 实现步骤
  1. 邻居采样
  2. 邻居聚合
  3. 节点预测
  • 邻居采样的优点
  1. 极大减少训练计算量

  2. 可以泛化到新的连接关系。

由于训练的时候不是根据所有的邻居节点来聚合的,是根据采样节点聚合得到的,所以具有较好的泛化能力,对于新节点也可以进行较好的预测

  • 实现代码

GraphSage实现代码

PinSage

  • 对比GraphSage

采样的时候可以不限制只选取真实的邻居节点

  • 邻居采样方式

通过多次随机游走,按照游走经过的频率选取邻居。根据邻居节点重要性进行聚合,可以快速聚合到多阶的信息

邻居聚合

常见的聚合方式

聚合方式 mean max sum
聚合能力 非单射 非单射 单射
是否可区分 不可区分 不可区分 可区分

单射可以保证对聚合后的结果可区分

基于单射的GIN模型

使用sum作为聚合方式,保证单射。GIN的用途:用在图分类

  • 改动点

增加了自连边,并且对自连边加权

  • 自连边加权的必要性

  1. 保证中心节点、邻居节点是可区分的

  2. 也可以聚合邻居信息

自研模型(PGL)

ERNIESage

  • 简介

适用于Text Graph(节点、边都带有文本的特殊图),是邻居聚合的模型。ERNIESage融合了ERNIE、GraphSage,对Text Graph进行建模

  • 对比总结

模型

优点

ERNIE(百度推出的语义理解技术,结构是多层的Transformer)

ERNIE1.0相比bertbert是Token掩码,学习难度相比ernie没有特别大;ernie增加了知识,需要对知识进行学习ERNIE2.0相比1.0,考虑了“持续学习”(通过下游任务进行持续学习)

GraphSage

关注图的结构信息

ERNIESage

融合两者的优点,实现图语义理解技术

  • 模型详解

根据ERNIE作用于Text Graph的不同方面(节点、边、邻居),将ERNIESage划分为ERNIESage Node、ERNIESage Edge、ERNIESage 1-Neighbor

模型 模型结构 实现步骤
ERNIESage Node ERNIE作用于Text Graph的节点上 利用ERNIE获取节点表示聚合邻居特征:ERNIE(Node1)+ERNIE(Node2)+ERNIE(Node3) Send、Recv将当前节点、聚合后的邻居特征concat,更新节点特征
ERNIESage Edge ERNIE作用于Text Graph的边上;相比ERNIESage Node,由于进行了特征交互,相当于“单塔”结构,比前者的双塔要好 利用ERNIE获取节点表示中心节点、邻居节点一同作为ERNIE输入,计算交互特征聚合邻居特征:ERNIE(Node1+Node-center)+ERNIE(Node2+Node-center)+ERNIE(Node3+Node-center) Send、Recv
ERNIESage 1-Neighbor 采用独立的位置编码,保证输入时邻居不带有顺序;对于过多数量的邻居,对邻居进行采样 将中心节点、所有一阶邻居节点的文本进行单塔拼接利用ERNIE进行消息聚合

UniMP

  • 简介

融合标签传递、图神经网络的模型,解决“半监督节点分类”问题。适用于“数据之间存在关联”,如社交网络场景

  • 模型详解

解决标签泄漏

借鉴“Mask language model”,进行“masked label prediction”。用已有的标签、图结构预测mask的结果

模型结构

使用GraphTransformer代替GAT、GCN

其中,

  1. label embedding:将节点标签映射到和节点特征一样的维度

  2. label propagation:将节点标签、节点特征相加

  3. 对于mask的节点,将Ye置为0即可

模型效果

相比只考虑单独节点的DNN、考虑节点关系的GNN,UniMP带来了较大的效果提升

结尾

亲爱的读者朋友:感谢您在繁忙中驻足阅读本期内容!您的到来是对我们最大的支持❤️

正如古语所言:"当局者迷,旁观者清"。您独到的见解与客观评价,恰似一盏明灯💡,能帮助我们照亮内容盲区,让未来的创作更加贴近您的需求。

若此文给您带来启发或收获,不妨通过以下方式为彼此搭建一座桥梁: ✨ 点击右上角【点赞】图标,让好内容被更多人看见 ✨ 滑动屏幕【收藏】本篇,便于随时查阅回味 ✨ 在评论区留下您的真知灼见,让我们共同碰撞思维的火花

我始终秉持匠心精神,以键盘为犁铧深耕知识沃土💻,用每一次敲击传递专业价值,不断优化内容呈现形式,力求为您打造沉浸式的阅读盛宴📚。

有任何疑问或建议?评论区就是我们的连心桥!您的每一条留言我都将认真研读,并在24小时内回复解答📝。

愿我们携手同行,在知识的雨林中茁壮成长🌳,共享思想绽放的甘甜果实。下期相遇时,期待看到您智慧的评论与闪亮的点赞身影✨!

万分感谢🙏🙏您的点赞👍👍、收藏⭐🌟、评论💬🗯️、关注❤️💚~


 自我介绍:一线互联网大厂资深算法研发(工作6年+),4年以上招聘面试官经验(一二面面试官,面试候选人400+),深谙岗位专业知识、技能雷达图,已累计辅导15+求职者顺利入职大中型互联网公司。熟练掌握大模型、NLP、搜索、推荐、数据挖掘算法和优化,提供面试辅导、专业知识入门到进阶辅导等定制化需求等服务,助力您顺利完成学习和求职之旅(有需要者可私信联系)

友友们,自己的知乎账号为“快乐星球”,定期更新技术文章,敬请关注!  


网站公告

今日签到

点亮在社区的每一天
去签到