ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

节点分类任务中的引文网络benchmark

2021-01-19 17:06:07  阅读:1183  来源: 互联网

标签:Cora 分类 benchmark Pubmed 引文 Citeseer 节点


节点分类任务中的引文网络benchmark

参考:

  • 《A Comprehensive Survey on Graph Neural Networks》
  • 《Graph Representation Learning》

引文网络及其数据集

引文网络由论文、作者及其引用关系组成。在引文网络中,论文(节点)通过引用关系(边)相互链接,这些论文需要被分为不同的组/类别。这种连接关系也反映了图数据的一个特点——节点之间是不符合 i . i . d . i.i.d. i.i.d.的,它们通过边和其他节点相关联。

尽管引文网络是有向图,但在评估模型在节点分类、链接预测和节点聚类任务方面的性能时,通常将其视为无向图。区别于多关系图(知识图谱),引文网络是只包含单一引用关系的简单图,一般来说没有边特征(edge feature)。

在这里插入图片描述

目前有三个流行的引文网络数据集:Cora、Citeseer和Pubmed。这些benchmark由Kipf和Welling在GCN模型的paper中推出。

Kipf T N, Welling M. Semi-supervised classification with graph convolutional networks[J]. arXiv preprint arXiv:1609.02907, 2016.

Cora数据集包含2708种机器学习出版物,分为7类。Citeseer数据集包含3327篇科学论文,分为6类。Cora和Citeseer中的每一篇论文都用一个one-hot向量来表示字典中是否有某一个单词。Pubmed数据集包含19717份糖尿病相关出版物。Pubmed中的每篇论文都由一个术语频率逆文档频率(TF-IDF)向量表示。

Cora、Citeseer和Pubmed数据集中都给出了以下内容(经过预处理的第二版数据集,所有的节点都有标签):

  • x:训练节点的特征向量(子图)
  • tx:测试节点的特征向量(子图)
  • allx:训练+验证节点的特征向量(子图)
    • allx + tx = 全图的节点特征矩阵
  • y:训练节点的one-hot标签(子图)
  • ty:测试节点的one-hot标签(子图)
  • ally:训练+验证(allx中)节点的one-hot标签(子图)
    • ally + ty = 全图的节点one-hot标签
  • graph:字典{ 节点索引id:[邻居节点的索引id] }(全图)
    • graph和allx、ally的节点顺序一致
  • test_index:测试节点在graph中的索引/指示

当然,PyG中已经把细节都屏蔽掉了,我们可以直接调用封装好的函数载入数据集。
详细可参考我的这篇博客:PyG下载、处理、探索Cora、Citeseer、Pubmed数据集【PyTorch geometric】
这样,我们需要关注的东西就是这几个了:边表edge_index、节点特征矩阵x、节点的标签y、训练/验证/测试集的划分。

Data(edge_index=[2, 10556], test_mask=[2708], train_mask=[2708], val_mask=[2708], x=[2708, 1433], y=[2708])

此外,DBLP是一个庞大的引文数据集,从计算机科学文献中收集了数以百万计的论文。

节点分类任务中的引文网络

节点分类,顾名思义,是对节点所属的类别进行预测,它也是评估GNN性能的常用任务。

上面提到的4中引文网络数据集中,由于DBLP并没有给出节点的标签(所属的类别),所以在节点分类任务使用的引文网络数据集一般是Cora、Citeseer和Pubmed。这3个数据集中的每一篇论文或出版物,都给出了所属类别和特征信息,因此,节点分类任务一般使用半监督的学习方法,也可以称为归纳学习。一般只用一小部分被标记的节点进行模型的训练,测试节点在训练过程中不可见(unseen),以达到归纳学习的目的。

在节点分类中,大多数方法都遵循对引文网络benchmark(Cora、Citeseer、Pubmed等)的train/valid/test的标准划分:https://github.com/kimiyoung/planetoid (Zhilin Yang, William W. Cohen, Ruslan Salakhutdinov, Revisiting Semi-Supervised Learning with Graph Embeddings, ICML 2016)

Yang Z, Cohen W, Salakhudinov R. Revisiting semi-supervised learning with graph embeddings[C]//International conference on machine learning. PMLR, 2016: 40-48.

数据集划分(数量)训练集验证集测试集
Cora1405001000
Citeseer1205001000
Pubmed605001000

在这里插入图片描述
在节点分类任务中,模型的隐藏层一般会堆叠多个Gconv层来提取高级的节点表示,最后使用softmax或MLP作为输出层,这些输出的节点表示一般会被用来进行节点的多分类任务。

不同方法进行节点分类任务的实验结果总结。
在这里插入图片描述

至于模型好坏的衡量标准:对于Cora、Citeseer、Pubmed,一般使用平均准确度;对于PPI、Reddit,一般使用F1分数(在sklearn库中有现成的方法、其实和准确率相差不大)。
应该注意的是,这些结果不一定代表严格的比较。Shchur等人在评估GNNs节点分类性能时发现了两个缺陷。首先,在所有实验中使用相同的训练/有效/测试分割低估了泛化误差。第二,不同的训练方法采用不同的训练技术,如超参数、参数初始化、学习率等。
为了进行相对公平的比较,可以参考Shchur等人的文献

Shchur O, Mumme M, Bojchevski A, et al. Pitfalls of graph neural network evaluation[J]. arXiv preprint arXiv:1811.05868, 2018.

标签:Cora,分类,benchmark,Pubmed,引文,Citeseer,节点
来源: https://blog.csdn.net/weixin_41650348/article/details/112837297

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有