
图神经网络GNN
文章平均质量分 92
GNN
山顶夕景
互联网大厂AI算法工程师。实践出真知。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
【CS224W】(task3)NetworkX工具包实践(地铁系统 | 城市交通)
一、Network创建图1.1 创建内置图(1)基础用图(2)networkX自带数据集(3)树1.2 创建连接表和邻接表1.3 添加节点1.4 添加连接二、美国城市交通关系无向图2.1 构图2.2 筛选出距离小于阈值的城市对2.3 城市关系可视化三、有向图可视化模板四、国际象棋对局MultiDiGraph多路图可视化4.1 创建图和连通域分析4.2 设置边长和节点属性4.3 可视化五、北京上海地铁站图数据挖掘5.1 读取数据5.2 最短路径5.3 地铁导航系统5.原创 2023-02-12 15:39:41 · 2936 阅读 · 15 评论 -
【序列召回推荐】(task3)GNN召回之SR-GNN
- 关于图深度学习算法的简单回顾: - 一开始是经典的word2vec(以skip-gram为例,先取周围词随机初始化的embedding,进行平均池化后与中心词embedding进行点积)通过周围词预测中心词(多分类任务),不断迭代得到每个词embedding; - deepwalk随机游走生成节点序列,然后还是用w2v生成embedding;而Node2vec仅是多了控制游走方向的参数; - GCN:基础公式为$\boldsymbol{H}^{l+1}=\sigma\left(\原创 2022-11-20 12:06:52 · 2131 阅读 · 0 评论 -
【图神经网络DGL】消息传递范式(消息+聚合+更新)
- 消息函数(message function):传递消息的目的是将节点计算时需要的信息传递给它,因此对每条边来说,每个源节点将会将自身的Embedding(e.src.data)和边的Embedding(edge.data)传递到目的节点;对于每个目的节点来说,它可能会受到多个源节点传过来的消息,它会将这些消息存储在"邮箱"中。 - 聚合函数(reduce function):汇聚函数的目的是根据邻居传过来的消息更新跟新自身节点Embedding,对每个节点来说,它先从邮箱(v.mailbox['原创 2022-01-06 21:12:37 · 7521 阅读 · 2 评论 -
【LLM】知识图谱和LLM的结合
知识图谱的构建## 1、金融领域【金融领域知识图谱构建进展】FinKario: Event-Enhanced Automated Construction of Financial Knowledge Graph,https://arxiv.org/pdf/2508.00961,FinKario:事件增强型金融知识图谱与检索框架,核心看知识图谱构建思路:从东方财富网收集研报(2024.8-2025.2),用 MinerU 工具转标准化 Markdown(去除免责声明、图片、重复法律声明等冗余内容,保留核原创 2025-10-08 15:59:47 · 650 阅读 · 0 评论 -
【GNN】图技术在美团外卖下的场景化应用及探索
对于高频用户,可能会导致兴趣圈封闭导致模型建模无法跳脱既有的兴趣圈;对于低频用户,由于信息的缺乏导致其兴趣刻画不完整。因此,我们需要具备拓展用户兴趣边界的信息扩展能力、对单点信息的扩充能力;即寻找一种新的数据结构,打破二维线性限制,实现三维立体扩展,基于此种想法,从图的角度来重新思考用户行为建模:==以私域线性行为序列作为兴趣刻画基础,以公域全局互联关系图作为兴趣补充==,建立个体差异性与群体共性的连接。原创 2022-09-09 00:59:18 · 992 阅读 · 0 评论 -
解决OSError: libcudart.so.9.0: cannot open shared object file: No such file or directory
# 一、问题描述在使用图神经网络库`dgl`时报错:`OSError: libcudart.so.9.0: cannot open shared object file: No such file or directory`。# 二、解决方法cuda版本和dgl版本不一致,卸载重下即可,如cuda是11.0+版本的,可以如下:```pythonpip uninstall dglpip install dgl-cu110原创 2023-03-06 00:24:10 · 1363 阅读 · 0 评论 -
解决‘_AxesStack‘ object is not callable while using networkx to plot
# 一、问题描述在使用`networkx`进行图数据可视化时报错如题`'_AxesStack' object is not callable while using networkx to plot`。其中matplotlib为3.6.2版本,networkx版本为2.7。```pythonplt.figure(figsize=(15,14))pos = nx.spring_layout(G, iterations=3, seed=5)nx.draw(G, pos, with_labels=Tru原创 2023-02-25 23:55:28 · 5743 阅读 · 3 评论 -
【CS224W】(task1)图机器学习导论
>本讲介绍了图数据挖掘的常见任务、典型方法、应用场景、编程工具。图是描述大自然各种关联现象的通用语言,图无处不在。不同于传统数据分析中样本独立同分布假设,图数据自带了关联结构,需要使用专门的图神经网络进行深度学习。本讲介绍了斯坦福CS224W公开课的课程大纲;在节点、连接、子图、全图各个层面进行图数据挖掘的典型任务,以及在蛋白质结构预测、生物医药、内容推荐、文献挖掘、社交网络、开源项目评价等领域的应用。原创 2023-02-06 22:07:39 · 1596 阅读 · 0 评论 -
【CS224W】(task2)传统图机器学习和特征工程
除了想获得训练数据中节点or边or图特征数据,还有反应节点在网络中位置、局部网络local network structure等特征。本讲不讲属性特征,只讲连接特征。原创 2023-02-08 21:25:50 · 1385 阅读 · 0 评论 -
【CS224W】(task4/5)图嵌入表示学习(Deepwalk、Node2vec)更新中
- node2vec: - 计算随机游走概率 - 从节点$u$开始模拟$r$条长度为$l$的游走链路 - 使用 Stochastic Gradient Descent 优化损失函数 - Node2vec在节点分类方面表现更好;而其他方法在链路预测上效果更好,如random walk效率更高; - graph embeddings: - 方法1:对应子图or图的节点embedding进行sum或avg计算; - 方法2:创建横跨子图的super-node- deepwalk等价于对以原创 2023-02-14 21:45:26 · 1305 阅读 · 3 评论 -
【CS224W】(task6)Google的PageRank算法
Eigenvector Formulation特征向量形式。在之前的task中提到的无向图,直接使用邻接矩阵��=��λc=Ac,求出该矩阵的特征向量eigenvector,即节点特征,如上个task我们对地铁路线求解每个节点的nx.degree_centrality(G)然后可视化。PageRank的随机邻接矩阵stochastic adjacency matrix M,flow equation也有类似的特征向量等式(如下),此时r即M的图的平稳分布的一个随机游走:原创 2023-02-25 17:08:19 · 1162 阅读 · 0 评论 -
【CS224W】(task7)标签传播与节点分类(semi-supervised)
本task内容:当且仅当矩阵谱半径严格小于1,矩阵乘幂收敛。人工特征工程:节点重要度、集群系数、Graphlet等。基于随机游走的方法,构造自监督表示学习任务实现图嵌入。无法泛化到新节点。例如:DeepWalk、Node2Vec、LINE、SDNE等。标签传播:假设“物以类聚,人以群分”,利用邻域节点类别猜测当前节点类别。无法泛化到新节点。例如:Label Propagation、Iterative Classification、Belief Propagation、Correct & Smooth等。图神原创 2023-02-25 23:03:18 · 692 阅读 · 0 评论 -
【CS224W】(task8)图神经网络基础
GNN Layer = Message +AggregationGNN层数过多会过平滑图增强:图特征增强、图结构增强(如添加虚拟节点等)文章目录note一、GNN基础1.1 回顾图深度学习基础1.2 Graph Convolutional Networks1.3 GNNs subsume CNNs1.4 Summary二、A General Perspective on GNNs2.1 recap部分2.2 A Single layer of a GNN原创 2023-03-02 03:08:12 · 591 阅读 · 0 评论 -
【CS224W】(task9)图神经网络的表示能力(GIN图同构模型)
GIN图同构网络模型的构建- 能实现判断图同构性的图神经网络需要满足,只在两个节点自身标签一样且它们的邻接节点一样时,图神经网络将这两个节点映射到相同的表征,即映射是单射性的。- **可重复集合/多重集(Multisets):元素可重复的集合,元素在集合中没有顺序关系** 。一个节点的所有邻接节点是一个可重复集合,一个节点可以有重复的邻接节点,邻接节点没有顺序关系。因此GIN模型中生成节点表征的方法遵循WL Test算法更新节点标签的过程。**在生成节点的表征后仍需要执行图池化(或称为图读出)操作得原创 2023-03-04 02:54:36 · 2887 阅读 · 1 评论 -
【CS224W】(task12)GAT & GNN training tips
像图片和文本分类的样本,每个数据样本之间满足独立同分布但GNN数据中不同节点可能会互相影响(消息传递)transductive 直推式学习:划分数据集时,让图结构还是能看到,可以只根据节点label进行划分。在训练和验证阶段,都是使用全图信息,如下图,利用一二节点及其label进行训练,在验证阶段也是利用整图信息,利用三四节点及其label进行验证。只适合于节点or边分类任务inductive 归纳式学习:拆分边,得到多重图适合于节点or边or图分类原创 2023-03-06 20:55:02 · 976 阅读 · 1 评论 -
同构图、异构图、属性图、非显式图
最重要的4类图数据:同构图(Homogeneous Graph)、异构图(Heterogeneous Graph)、属性图(Property Graph)和非显式图(Graph Constructed from Non-relational Data)。(1)同构图:同构图是指图中的节点类型和关系类型都仅有一种。同构图是实际图数据的一种最简化的情况,如由超链接关系所构成的万维网,这类图数据的信息全部包含在邻接矩阵里。同构图:在图里面,节点的类型和边的类型只有一种的图,举个例子,像社交网络中只存在一原创 2021-06-23 04:31:24 · 18691 阅读 · 6 评论 -
【KGAT】Knowledge Graph Attention Network for Recommendation
- 其实不结合KG,何向南团队之前也直接使用GCN做了NGCF和LightGCN。- KGAT结合KG和GAT,首先是CKG嵌入表示层使用TransR模型获得实体和关系的embedding;然后在attention表示传播层,使用attention求出每个邻居节点的贡献权重,需要把实体节点$h$自身的嵌入表示$e_h$和它基于邻域的嵌入表示$\boldsymbol{e}_{\mathcal{N}_h}$融合起来,得到节点$h$的新表示$\boldsymbol{e}_h^{(1)}$,这里的融合方法也有三种原创 2022-12-24 01:11:22 · 2185 阅读 · 0 评论 -
【RS学术】从23条审稿意见中爬滚的教训
1.1 突出贡献区别、期刊不能瞎选(文献要有关联、文献要有最新);1.2 抓住研究模式、模仿行文框架;2.1 创新(组装式的simple thoughts远远不够)、要有理论分析、3-SOTA原则(在SOTA数据集下相对SOTA模型算法能够实现SOTA的综合性能)、还需要对benchmarks进行调参、贴切最新focus;2.2 遵守期刊规则、综述论文顶刊 \approx 领域大牛+辩证批判;2.3 2.1的老生常谈并进一步坐实;转载 2022-11-23 00:44:13 · 1407 阅读 · 0 评论 -
Neo4j图数据库和GDS图算法应用
图数据库Neo4j支持的图算法和GDS- 图搜索算法- 寻路算法- 中心性算法- 社区检测算法- 图嵌入- 链接预测- 连接特征提取原创 2022-09-10 19:20:10 · 3668 阅读 · 2 评论 -
【图神经网络DGL】数据封装和栗子
学习总结:DGL中数据的封装和基于Message Passing机制实现图神经网络。原创 2021-12-13 23:36:39 · 1823 阅读 · 0 评论 -
【GraphSAGE实践】YelpChi评论图数据集上的反欺诈检测
YelpChi数据集:基于Yelp数据集上的一个行为图数据集,数据集中的数据以稀疏矩阵的形式存在。该数据集经常用于节点分类、欺诈检测、异常检测等的研究任务上。Yelp垃圾评论数据集包括Yelp过滤(垃圾)和推荐(合法)的酒店和餐厅评论。Yelp-Fraud数据集上执行一个垃圾邮件审查检测任务,该任务是一个二元分类任务。R-U-R:连接同一用户发布的评论;R-S-R:连接同一产品同一星级(1-5星)下的评论;R-T-R:连接同一个月发布的同一产品下的两个评论。原创 2022-09-03 22:32:40 · 5714 阅读 · 5 评论 -
【图神经网络DGL】GCN在Karate Club上的实战(消息传递范式 | 生成训练可视化动图)
Karate club是一个社交网络,包括34个成员,并在俱乐部外互动的成员之间建立。一般来说,节点通过`message`函数传递消息,然后通过`reduce`函数进行数据聚合(下面栗子的聚合是通过`sum`)。(1)第一层将大小为34的输入特征转换为隐藏的大小为5。(2)第二层将隐藏层转换为大小为2的输出特征,对应Karate club中的两个组。原创 2021-12-17 23:44:42 · 3631 阅读 · 0 评论 -
基于GCN和句法依存分析的情感分析
内容速递文章目录内容速递一、以往的方法一、以往的方法以往处理情感分析问题,比如使用最简单的多层感知机模型进行训练:原创 2021-12-06 21:18:11 · 5808 阅读 · 5 评论 -
【GNN】图神经网络学习小结 and 笔记汇总
1.资源推荐Hands-on Graph Neural Networks with PyTorch & PyTorch Geometric原创 2021-07-10 23:29:52 · 1781 阅读 · 10 评论 -
【GNN】task1-简单图论 & Data类-PyG中图的表示及使用
文章目录第一部分:开篇为什么要在图上进行深度学习?问题的分类将神经网络应用于图的挑战参考资料第二部分:简单图论图结构数据一、图的表示二、图的属性三、图的种类四、图结构数据上的机器学习五、应用神经网络于图面临的挑战六、结语参考资料第三部分:Data类——PyG中图的表示及其使用转`dict`对象为`Data`对象Data对象转换成其他类型数据获取`Data`对象属性设置`Data`对象属性获取`Data`对象包含的属性的关键字对边排序并移除重复的边`Data`对象的其他性质作业第四部分:Dataset类——P原创 2021-06-17 01:06:41 · 2198 阅读 · 5 评论 -
【GNN】task2-消息传递图神经网络
文章目录消息传递图神经网络一、引言二、 消息传递范式介绍三、Pytorch Geometric中的`MessagePassing`基类1.总MessagePassing()2.MessagePassing.propagate()3.MessagePassing.message(...)4.MessagePassing.message_and_aggregate(...)5. MessagePassing.update(aggr_out, ...)四、继承`MessagePassing`类的`GCNConv`原创 2021-06-20 02:32:54 · 1533 阅读 · 1 评论 -
【GNN】task3-基于图神经网络的节点表征学习
学习心得(1)不同种类的GNN就是通过设计不同的Aggregation Function,Combination Function以及Readout Function实现的。也就是说,从邻居聚合的信息不同,邻居信息与自身信息的组合方式不同,或者节点的读出方式不同,最终都会导致我们最终获得的表示向量不同。(2)文章目录学习心得零、引言先:复习MPNN1.消息传递阶段(学习图中节点的特征)2.读出阶段(得到整个图的特征)后:本次任务任务一、准备工作1.获取并分析数据集2.可视化节点表征分布的方法二、使用M原创 2021-06-24 01:17:01 · 2019 阅读 · 5 评论 -
【GNN】task4-数据完整存储与内存的数据集类+节点预测与边预测任务实践
文章目录数据完全存于内存的数据集类引言使用数据集的一般过程`InMemoryDataset`基类简介一个简化的`InMemory`数据集类`InMemoryDataset`数据集类实例`PlanetoidPubMed`数据集类的构造该数据集类的使用参考资料数据完全存于内存的数据集类引言对于占用内存有限的数据集,我们可以将整个数据集的数据都存储到内存里。PyG为我们提供了方便的构造数据完全存于内存的数据集类,简称为InMemory数据集类,的方式,在此小节我们就将学习构造InMemory数据集类的方式。原创 2021-06-28 02:33:35 · 1277 阅读 · 0 评论 -
【GNN】task5-超大图上的节点表征学习
心得体会(1)这次学习了超大图上的节点表征学习面临的挑战——目前基于SGD的算法要么面临着随GCN层数呈指数增长的高计算成本,要么面临着保存整个图形和每个节点的embedding到内存的巨大空间需求;应对这一挑战的,基于图聚类结构且适合于基于SGD训练的GCN算法——Cluster-GCN方法,并且学习使用Cluster-GCN方法进行超大图节点分类的方法。(2)Cluster-GCN的大致思想:在每个步骤中,它对一个与通过用图聚类算法来区分的密集子图相关联的一组节点进行采样,并限制该子图中的邻居搜索。原创 2021-07-02 05:58:06 · 992 阅读 · 2 评论 -
【GNN】task6-基于图神经网络的图表征学习方法
学习心得(1)在此篇文章中,我们学习了基于图同构网络(GIN)的图表征网络,为了得到图表征首先需要做节点表征,然后做图读出。GIN中节点表征的计算遵循WL Test算法中节点标签的更新方法,因此它的上界是WL Test算法。在图读出中,我们对所有的节点表征(加权,如果用Attention的话)求和,这会造成节点分布信息的丢失。文章目录学习心得引言一、基于图同构网络(GIN)的图表征网络的实现基于图同构网络的图表征模块(GINGraphRepr Module)基于图同构网络的节点嵌入模块(GINNodeE原创 2021-07-04 06:26:00 · 1478 阅读 · 6 评论 -
【GNN】task7-超大规模数据集类的创建+图预测任务实践
文章目录第一部分:超大规模数据集类的创建一、Dataset基类简介1.跳过download/process2.无需定义Dataset类二、图样本封装成批(BATCHING)与DataLoader类1.合并小图组成大图2.小图的属性增值与拼接(1)图的匹配(Pairs of Graphs)(2)二部图(Bipartite Graphs)(3)在新的维度上做拼接三、创建超大规模数据集类实践参考资料第二部分:图预测任务实践引言通过试验寻找最佳超参数结语作业第一部分:超大规模数据集类的创建在前面的学习中我们只接原创 2021-07-07 15:38:01 · 1855 阅读 · 0 评论 -
【综述阅读】Graph Neural Networks for Recommender Systems: Challenges, Methods, and Directions
学习总结文章目录学习总结一、Inroduction二、Background2.1 Recommender Systems2.2 Graph Neural Networks2.3 GNNs在推荐系统的必要性三、Challenges of applying GNNs to recommender systems3.1 Graph Construcion3.2 Network Design3.3 Model Optimization3.4 Computation Efficiency四、Existing Mth原创 2021-11-11 23:59:08 · 2784 阅读 · 4 评论 -
【论文代码】GraphSAGE(更新ing)
文章目录一、官方代码1.1 加载数据1.2 Unsupervised Loss1.3 Models1.4 评估与模型使用1.5 Main二、PyG版本class SAGEConv(MessagePassing):Reference本文接着上一篇【论文翻译】GraphSAGE:Inductive Representation Learning on Large Graphs(NIPS),讲述GraphSAGE论文代码。一、官方代码除了tensorflow版本,作者还开源了一个简单、易扩展的pytorch原创 2021-10-09 23:04:07 · 1750 阅读 · 3 评论 -
【论文笔记】GraphSAGE:Inductive Representation Learning on Large Graphs(NIPS)
- GCN不能泛化到训练过程中没有出现的节点(即属于 $transductive$ 直推式学习,若加入新节点则需要重新训练模型),既然有新增的结点(一定会改变原有节点),那就没必要一定得到每个节点的固定表示。而GraphSAGE就是为了解决这种问题,利用Sample(采样)和Aggregate(聚合)两大核心步骤,通过利用学习到的聚合函数,得到一个新节点的表示。- 本文先介绍GraphSAGE向前传播过程(生成节点embedding),不同的聚合函数设定,然后介绍无监督学习和有监督学习的损失函数和参数学习原创 2021-10-06 21:11:58 · 2337 阅读 · 12 评论 -
【ICLR】GCN-Semi-Supervised Classification with Graph Convolutional Networks
传统深度学习模型如 LSTM 和 CNN在欧式空间中表现不俗,却无法直接应用在非欧式数据上。因此大佬们通过引入图论中抽象意义上的“图”来表示非欧式空间中的结构化数据,并通过图卷积网络来提取(graph)的拓扑结构,以挖掘蕴藏在图结构数据中的深层次信息。GCN的本质:图中的每个结点无时无刻不因为邻居和更远的点的影响而在改变着自己的状态直到最终的平衡,关系越亲近的邻居影响越大。����Kipf 大佬并非拍脑子就想出所有的算法和公式,先是图信号分析和图谱论搭建谱图卷积网络,然后Deferrard等人为原创 2021-10-01 18:12:49 · 2509 阅读 · 4 评论 -
【论文翻译】DeepWalk: Online Learning of Social Representations
背景介绍这几年图神经网络模型(如谱聚类的GCN、GAT等等)都挺火的,这些图神经网络即将节点或图映射到一个低维空间(称为图嵌入);而除了GNN还有很多图嵌入方法(在GNN之前图嵌入的概念常出现在流行学习和网络分析的研究中),这类图嵌入方法可以分为【基于矩阵分解的图嵌入方法】和【基于随机游走的图嵌入方法】,后者方法就是来自本篇论文,即第一个将NLP的思想用在网络嵌入(Networking Embedding,NE)的。论文:《DeepWalk: Online Learning of Social Repr原创 2021-09-25 11:47:32 · 2050 阅读 · 2 评论