GraphSage 代码阅读笔记

网友投稿 642 2022-10-29

GraphSage 代码阅读笔记

GraphSage 代码阅读笔记

relation也就是边 没有embedding

​​supervised_train.py​​​ 是用节点分类的label来做loss训练,不能输出节点embedding,使用​​NodeMinibatchIterator​​

​​unsupervised_train.py​​​ 是用节点和节点的邻接信息做loss训练,训练好可以输出节点embedding,使用​​EdgeMinibatchIterator​​

在​​NodeMinibatchIterator​​​的​​__init__​​方法最后加上

train_node_set = set(self.train_nodes)valid_node_set = set(self.val_nodes)print("train_node_set size", len(train_node_set))print("valid_node_set size", len(valid_node_set))print("train_node_set valid_node_set intersect size",len(train_node_set.intersection(valid_node_set)))

打印结果

train_node_set size 9716valid_node_set size 1825train_node_set valid_node_set intersect size 0

在​​EdgeMinibatchIterator​​​的​​__init__​​方法最后加上

train_edge_set = set(self.train_edges)valid_edge_set = set(self.val_edges)print("train_edge_set size", len(train_edge_set))print("valid_edge_set size", len(valid_edge_set))print("train_edge_set valid_edge_set intersect size", len(train_edge_set.intersection(valid_edge_set)))

打印结果

train_edge_set size 1336764valid_edge_set size 75407train_edge_set valid_edge_set intersect size 0

在​​EdgeMinibatchIterator​​​的​​__init__​​方法最后改成

train_nodes = [n for n in G.nodes() if not G.node[n]['test'] and not G.node[n]['val']]print(len(train_nodes), 'train nodes')test_nodes = [n for n in G.nodes() if G.node[n]['test'] or G.node[n]['val']]print(len(test_nodes), 'test nodes')print("train test node intersect number", len(set(test_nodes).intersection(set(train_nodes))))

打印结果

9716 train nodes5039 test nodestrain test node intersect number 0

总结

初始化的每个节点的init embedding是比如Glove这样词向量得到的, 模型学到训练数据的节点间 连接/拓扑 信息,然后这个 连接/拓扑 信息可以泛化到测试数据,在训练节点和测试节点完全没有交集时,给测试数据生成final embedding。

更多理解https://discuss.dgl.ai/t/graphsage-question-the-train-data-and-valid-data-have-no-intersection-then-how-does-the-valid-data-get-the-embedding-for-downstream-model/539/3

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:GameViewLayouter 一个用多个显示器布局游戏视图的实用程序脚本
下一篇:通过理解全连接神经网络 理解了attention
相关文章

 发表评论

暂时没有评论,来抢沙发吧~