图嵌入
文章平均质量分 77
StarfishCu
15级中科大少年班学院数学方向转计算机方向,本校硕转博
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
生成有feature的pattern-graph数据集
如果完全仿照generate_label的方式生成feature:def generate_features(number_of_items, feature_dim, num_of_features):#考虑cora数据集,num_of_features代表一个维度里features有几个可选值(从0开始,例如:0,1,2...),feature_dim代表feature有几个维度 features = np.zeros([number_of_items,feature_dim],dtype=i原创 2020-12-26 19:10:34 · 885 阅读 · 1 评论 -
Can Graph Neural Networks Count Substructures复现实验记录
相比上一篇Nerual Subgraph Isomophism Counting的实验说明,这篇文章的实验说明很不详细,这里只关注subgraph部分,也就是synthetic文件夹下的代码,记录下复现过程:记录data文件夹中本来是没有lrp_save_path文件夹的,需要手动建立(这个代码里没有建立文件夹的代码)。还需要在synthetic文件夹下建立save_model和results文件夹。然后运行main_synthetic.py即可。...原创 2020-12-21 14:39:46 · 444 阅读 · 0 评论 -
Neural Subgraph Isomorphism Counting复现记录
train.py:2020/12/19 16:28:17: [ data_type: train best mean loss: 401.561 (epoch: 050) ]2020/12/19 16:28:17: [ data_type: dev best mean loss: 236.555 (epoch: 073) ]2020/12/19 16:28:17: [ data_type: test best mean loss: 267.581 (epoch: 045) ]原创 2020-12-19 17:10:38 · 322 阅读 · 1 评论 -
Neural Subgraph Isomorphism Counting学习笔记
Neural Subgraph Isomorphism Counting -- KDD2020问题定义解决方案Graph ModelDynamic Intermedium Attention Memory合成数据用GNN来做子图同构统计的第一篇论文,需要关注的点主要在问题定义、合成数据、寻找同构的网络这三点上。问题定义给定一个小图(pattern)和一个大图(graph),统计graph中与pattern同构的子图数量。用GNN来做的优势在于能够在可接受的误差范围内以更快的速度解决这个问题。解决方原创 2020-12-16 17:58:26 · 814 阅读 · 0 评论 -
Graph Embedding预处理:对图中部分节点进行训练
Graph Embedding优化:只对目标节点进行训练原理代码创建子图代码main代码(以gcn为例)其实我们在训练时候,并不需要将整个图都扔进神经网络进行训练,因为需要的只是训练集中的train_mask节点,将整个图都进行训练其实浪费了很多的时间空间复杂度,所以我们可以预先离线抽取出我们需要的目标节点及在计算中需要用到的n级邻居节点,然后再进行训练,可以节省很多的时空复杂度。原理无论是GCN还是GAT,每层网络本质上的工作就是以某种方式将节点特征及其邻居的特征加到一起获得一个新的特征值。每多加一原创 2020-12-08 15:34:03 · 648 阅读 · 0 评论 -
GAT学习:PyG实现GAT(自定义GAT层)网络(四)
PyG实现自定义GAT层完整代码代码分析本系列中的第三篇介绍了如何调用pyg封装好的GAT函数,当然同样的,对于科研需求,我们同样需要学会如何自定义网络层以满足研究需求。完整代码import torchimport mathfrom torch_geometric.nn import MessagePassingfrom torch_geometric.utils import add_self_loops,remove_self_loops,softmaxfrom torch_geometr原创 2020-12-01 15:39:41 · 3091 阅读 · 1 评论 -
GAT学习:PyG实现GAT(使用PyG封装好的GATConv函数)(三)
之前我的实现方式相对而言麻烦且准确率不够好,只能达到65%左右的准确率(Cora上),这里介绍直接用PyG封装好的GAT函数实现:import torchimport mathfrom torch_geometric.nn import MessagePassingfrom torch_geometric.nn import GATConvfrom torch_geometric.utils import add_self_loops,degreefrom torch_geometric.da原创 2020-11-12 16:57:01 · 12750 阅读 · 15 评论 -
GAT学习:PyG实现multi-head GAT(二)
PyG实现GAT网络接上篇学习笔记GAT学习:PyG实现GAT(图注意力神经网络)网络(一)为了使得Attention的效果更好,所以加入multi-head attention。画个图说明multi-head attention的工作原理。原创 2020-10-23 14:50:45 · 3458 阅读 · 3 评论 -
GAT学习:PyG实现GAT(图注意力神经网络)网络(一)
PyG实现GAT网络预备知识代码分析完整代码GAL层目前PyG的教程几乎都是教怎么实现GCN的,但关于实现GAT的没找到PyG的实现,基本都是Pytorch。Paper需要,学习了GAT,为了保证和GCN用同一框架实现,所以用PyG实现了GAT,这里记录下来,用PyG搭建了GAT网络。预备知识1.GAT的原理移步这里向往的GAT,介绍的很详细。2.PyG的基本操作移步这几篇:GCN学习:Pytorch-Geometric教程(一)GCN学习:Pytorch-Geometric教程(二)GCN学原创 2020-10-23 13:43:31 · 11204 阅读 · 5 评论 -
GCN学习:用PyG实现自定义layers的GCN网络及训练(五)
目前的代码讲解基本都是直接使用PyG内置的包实现固定结构的网络层。虽然我们可以通过每层使用不同的传递方式来建立不同的网络,但是却不能自定义网络层的传递方式,对于做创新性的研究工作而言是一个不足。本篇在GCN学习:Pytorch-Geometric教程(二)的基础上,自定义了GCN的层传递方式(仍然是按照论文中的传递方式建立,但是我们以后也可以建立其他传递方式),其他代码与系列(二)的代码相同。完整代码如下import torchfrom torch_geometric.nn import Messa原创 2020-10-18 11:29:19 · 3244 阅读 · 3 评论 -
GCN学习(四):使用numpy从底层一步步搭建GCN网络:Zachary数据集随机参数无训练实战
Zachary 空手道俱乐部是一个被广泛使用的社交网络,其中的节点代表空手道俱乐部的成员,边代表成员之间的相互关系。当年,Zachary 在研究空手道俱乐部的时候,管理员和教员发生了冲突,导致俱乐部一分为二。下图显示了该网络的图表征,其中的节点标注是根据节点属于俱乐部的哪个部分而得到的,「0」表示属于Mr. Hi部分的中心节点,[32」表示属于Officer阵营的中心节点通过networkx调用karate club图import networkx as nximport numpy as np#原创 2020-10-16 10:04:52 · 1066 阅读 · 2 评论 -
GCN学习(三):使用numpy从底层一步步搭建GCN网络:网络传播实现
关于GCN的基础原理见图卷积神经网络(GCN)。GCN的传递公式:首先我们需要掌握的就是D波浪A波浪的代码实现方法。(参考这篇文章)先建立这个图的邻接矩阵:#建立邻接矩阵A = np.matrix( [[0, 1, 0, 0], [0, 0, 1, 1], [0, 1, 0, 0], [1, 0, 1, 0]], dtype=float)#建立对角线矩阵I=np.eye(A.shape[0])...原创 2020-10-15 12:33:39 · 1071 阅读 · 1 评论 -
GCN学习:Pytorch-Geometric教程(二)
PyG教程二数据转换图上的学习方法数据转换PyTorch Geometric带有自己的变换,该变换期望将Data对象作为输入并返回一个新的变换后的Data对象。 可以使用torch_geometric.transforms.Compose将变换链接在一起,并在将处理后的数据集保存到磁盘之前(pre_transform)或访问数据集中的图形之前(transform)应用变换。让我们看一个示例,其中我们对ShapeNet数据集(包含17,000个3D形状点clouds和来自16个形状类别的每个点标签)应用原创 2020-09-29 16:55:52 · 3749 阅读 · 1 评论 -
GCN学习:Pytorch-Geometric教程(一)
基本图变量PyG中的基本图变量为torch_geometric.data.Data,具有以下参数:data.x: Node feature matrix with shape [num_nodes, num_node_features]data.edge_index: Graph connectivity in COO format with shape [2, num_edges] and type torch.longdata.edge_attr: Edge feature matrix w原创 2020-09-28 16:51:02 · 5633 阅读 · 1 评论 -
GCN学习预备:pytorch-geometric安装
参考官方文档。安装PyG需要先确定本机的pytorch版本和cuda版本:python -c "import torch; print(torch.__version__)">>> 1.6.0python -c "import torch; print(torch.version.cuda)">>> 10.2我的pytorch版本为1.6.0,cuda为10.2,于是下面根据版本安装PyG的依赖包和PyG:pip install torch-scatter原创 2020-09-25 14:40:30 · 770 阅读 · 0 评论 -
Graph Embedding论文翻译&分析:DeepWalk:Online Learning of Social Representations
DeepWalk:Online Learning of Social RepresentationsAbstractIntroductionAbstractDeepWalk是一种用于学习网络节点潜在表示的方法。这些潜在表示方法可以在一个连续的向量空间中编码网络中的社会关系,并能很好地被统计模型利用。DeepWalk在语言转图片的语言模型和非监督学习中取得了卓越的成果。DeepWalk通过从随机游走中获得的本地信息,将游走视为句子的等效,从而来学习潜在表示。作者在Youtube、BlogCatalog等原创 2020-09-08 16:11:15 · 1202 阅读 · 0 评论
分享