图神经网络学习笔记2.2-图游走算法(异构图)
deepwalk和node2vec针对同构图的游走,如果应用于异构图则会造成以下问题:
- 偏向于出现频率高的节点类型
- 偏向于相对集中的几点(即度数高的节点)
要了解异构图的游走,首先我们需要了解什么是异构图:
我们知道同构图G=(V,E),而异构图G=(V,E,T),T是节点V的类型
例如,学术网络:
在上图中,我们知道节点有四种不同的类型,而节点之间的边E也有三种不同的类型
在我们了解异构图之后,下面介绍metapath2vec
在metapath2vec算法中,提出了元路径(meta path)的概念
meta path:在图中选取的由节点类型构成的组合路径
例如:APA的含义为两个作者写了用一篇论文,又例如:APCPA,两个作者分别写的两篇论文在同一个会议发布
可见,元路径的选取都是有意义的,但是为什么要这么做呢?
因为我们会在选取出来的元路径上进行游走,如果选取出来的元路径没有什么意义,那么训练出来的模型的效果较差
基于meta path的随机游走:
对于选取节点A来说,每个节点有1/4的概率被选中,假设我们选取了节点A1,对于选取节点P,对应的有两个节点P1和P2,每个节点被选中的概率是1/2,我们选择P2,那么A节点则有A1、A3和A4三个选择
ps:只要首尾节点类型相同,就可以继续游走,元路径最好是对称的,这样可以方便我们对元路径做出扩展,不对称的元路径也是有意义的
停止游走的条件:
- 到达指定的最大游走程度
- 找不到符合要求节点类型的节点
metapath2vec的整体框架:
metapath2vec在随机游走的时候考虑了节点类型,但是在负采样的时候没有考虑节点类型:
可以看出负样本的节点类型和正样本不同,这样的负样本采集方式并不利于模型训练,我们应当采集同样的样本类型,因此提出了metapath2vec++算法,在负采样的时候,考虑节点类型
变种:multi-metapath2vec:利用元路径生成器,生成多条metapath
变种:side info + multi-metapath2vec:每个节点都有自己的特征表示,通过元路径生成器生成多条元路径,在实际训练过程中将特征融入矩阵中,让模型获得更多信息
图游走算法总结:
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· 什么是nginx的强缓存和协商缓存
· 一文读懂知识蒸馏
· Manus爆火,是硬核还是营销?