图神经网络 GNN 基准数据集汇总
开源图数据集
目前在多个库中可以直接下载处理好的图数据集:
- DGL:https://docs.dgl.ai/en/0.6.x/api/python/dgl.data.html
- PyG:https://pytorch-geometric.readthedocs.io/en/latest/modules/datasets.html
其它数据源推荐:
经典数据集
目前图神经网络应用较广的数据集主要有以下几大类:
- 引文网络:Cora、PubMed、Citeseer
- 社交网络:BlogCatalog、Reddit、Epinions
- 蛋白质交互网络:PPI、PROTEINS
- 化学分子结构:MUTAG、NCI-1、NCI-109
引文网络
由论文间的关系构成的网络,关系包括例如引用关系、共同的作者等,具有天然的图结构,数据集的任务一般是论文的分类和连接的预测,比较流行的数据集有三个,分别是 Cora、PubMed、Citeseer。
数据格式
以 cora 数据集为例,数据集包含两个文件:
cora.cites 文件中的数据如下:
<ID of cited paper> <ID of citing paper>
cora.content 文件的数据如下:
<paper id> <word attributes> + <class label>
社交网络
BlogCatalog 数据集是一个社会关系网络,图是由博主和他(她)的社会关系(比如好友)组成,labels 是博主的兴趣爱好。
Reddit 数据集是由来自 Reddit 论坛的帖子组成,如果两个帖子被同一人评论,那么在构图的时候,就认为这两个帖子是相关联的,labels 就是每个帖子对应的社区分类。
Epinions 是一个从一个在线商品评论网站收集的多图数据集,里面包含了多种关系,比如评论者对于另一个评论者的态度(信任/不信任),以及评论者对商品的评级。
数据格式
BlogCatalog 数据集的结点数为 10312,边条数为 333983,label 维度为 39,数据集包含两个文件:
- Nodes.csv:以字典的形式存储用户的信息,但是只包含节点 id。
- Edges.csv:存储博主的社交网络(好友等),以此来构图。
Epinions 数据集包含文件如下:
- Ratings_data.txt:包含用户对于一件物品的评级,文件中每一行的结构为 user_id item_id rating_value。
- Trust_data.txt:存储了用户对其他用户的信任状态,存储方式为 source_user_id target_user_id trust_statement_value,其中信任状态只有信任和不信任(1、0)。
由于 Reddit comments 数据集的文件太多,此处略过。
蛋白质交互网络
PPI 是蛋白质交互网络,数据集中共有 24 张图,其中 20 张作为训练,2 张作为验证,2 张作为测试,每张图对应不同的人体组织,实例如图 3,该数据是为了从系统的角度研究疾病分子机制、发现新药靶点等等。平均每张图有 2372 个结点,每个结点特征长度为 50,其中包含位置基因集,基序集和免疫学特征。基因本体集作为 labels(总共 121 个)。
数据格式
PPI 数据集格式如下:
- ppi-G.json – 输入图 Json 格式的 networkx 文件,节点包含 test val 属性表示测试和验证集。
- ppi-id_map.json – 将节点 id 映射到连续整数。
- ppi-class_map.json – 节点 id 对应的类别。
- ppi-feats.npy [optional] – 节点对应的特征, numpy 存储格式,和 id-map 中顺序相同。
- ppi-walks.txt [optional] – 随机游走节点对应的节点,对于 graphsage 而言无监督时使用。
化学分子结构
NCI-1、NCI-109 和 MUTAG 是关于化学分子和化合物的数据集,原子代表结点,化学键代表边。NCI-1 和 NCI-109 数据集分别包含 4100 和 4127 个化合物,labels 是判断化合物是否有阻碍癌细胞增长得性质。MUTAG 数据集包含 188 个硝基化合物,labels 是判断化合物是芳香族还是杂芳族。
数据格式
NCI-1、NCI-109 和 MUTAG 数据集的文件构成如下:(DS 表示数据集名称)
n
表示结点数,m
表示边的个数,N
表示图的个数
DS_A.txt (m lines):图的邻接矩阵,每一行的结构为 (row, col),即一条边。
DS_graph_indicator.txt (n lines):表明结点属于哪一个图的文件。
DS_graph_labels.txt (N lines):图的 labels。
DS_node_labels.txt (n lines):结点的 labels。
DS_edge_labels.txt (m lines):边 labels。
DS_edge_attributes.txt (m lines):边特征。
DS_node_attributes.txt (n lines):结点的特征。
DS_graph_attributes.txt (N lines):图的特征,可以理解为全局变量。