2、定义GCN from dgl.nn import GraphConv class GCN(nn.Module): def __init__(self, in_feats, h_feats, num_classes): super(GCN, self).__init__() self.conv1 = GraphConv(in_feats, h_feats) # 输入节点的特征维度in_feats=1433,隐藏层节点特征维度h_feats=16 self.conv2 = GraphConv(h...
传统的GCN就是属于直推式学习, 训练 节点embedding 的时候要看到全图的节点, 其根本原因是因为它使用了 拉普拉斯矩阵 。而 Sage算子 ,则是归纳式学习,因为它的基本逻辑是可以 用“你“的邻居信息归纳出没见过的”你“的信息 ,可以处理未见过你但知道你邻居这种类似的问题。 例如:你在北京的朋友都是程序员或则...
好吧,整体对异构图的节点分类任务 抽象 一下: 既然我们要对异构图上某节点进行分类,那我们就需要综合异构图上该节点邻居节点的信息,得出所求节点的Embeding 信息。 而该节点周围有多种类别关系的节点,则我们就对各个关系分别进行卷积,求得各个关系里面各个节点的Embeding, 然后将多种关系涵盖的多类同类节点 Embedi...
GCN,图卷积神经网络,实际上跟CNN的作用一样,就是一个特征提取器,只不过它的对象是图数据。GCN精妙地设计了一种从图数据中提取特征的方法,从而让我们可以使用这些特征去对图数据进行节点分类(node classification)、图分类(graph classification)、边预测(link prediction),还可以顺便得到图的嵌入表示(graph embedding)...
首先我们回顾一下GCN的逐层embedding更新公式,给定图 G=(V,E) , 我们用在程序中用邻接矩阵 A∈R|V|×|V| 和及节点embedding H∈R|V|×d 表示它,那么一个 L -层的GCN网络采用如下的更新公式, l+1 层节点 v 的embedding h(l+1)v 取决于它所有在 ...
半监督节点分类(Relational-GCN) 搭建异质图神经网络: importdgl.function as fnclassHeteroRGCNLayer(nn.Module):def__init__(self, in_size, out_size, etypes): super(HeteroRGCNLayer, self).__init__()#W_r for each relationself.weight =nn.ModuleDict({ ...
从 GraphSage与DGL实现同构图 Link 预测,通俗易懂好文强推 中,我们也了解到 图上链接预测属于 无监督机器学习,这和上一篇文章介绍的异构图上节点分类回归预测任务的不同非常相似,不同仅仅是在我们需要对链接预测进行 负边的采样。注意这里是 边采样, 而上文用的是节点采样,接口是不一样的,同时这两个任务...
1.2 dgl中的图、节点、边的表示 dgl中不同的节点使用不同的整数(节点id)来表示,边用节点对来表示,每条边会根据添加的先后顺序被分配一个边的id。节点id和边id都是从0开始。在dgl中每条边都是有向的:边(u,v)表示边的方向是从u指向v。 使用dgl.graph()创建图的例子: ...
---2.2.2 R-GCN的关键思想 9 ---2.2.3 在DGL中实现R-GCN 10 ---2.2.4 第二项任务:链接预测 16 线性图神经网络 16 --3.1 使用Cora数据集进行监督的社区检测任务 17 ---3.1.1 社区检测 17 ---3.1.2 Cora数据集 17 ---3.1.3 来自Cora的二元社区子图和测试数据集 18 ---3.1....