pyg运行HANConv、HGTConv等数据集设置方式
1.简介
无论是pyg还是dgl,在利用其中HANConv和HGTConv等异质图模型时,数据集通常要比同质图或者是比较少类型的异质图更为复杂,要设置多个node的类型,多个edge的类型。鉴于pyg的文档比较少,官网也并没有给出自定义数据集实例,本文给出设置方法。
2.代码
- 设置metadata
metadata就是定义图的node和图的edge,我这里只有user类型,但是user有following和followeer的关系,所以我是这么设置的。
metadata = (
['user'],
[
('user','following','user'),
('user','follower','user')
]
)
- 设置x_dict
x_dict其实就是多个节点的自身节点特征,所以只要获得了节点的自身节点特征,在为多个节点类型定义字典就行了,参考如下:
x_dict = {'user': x} #这里的x是我提取到的节点自身特征
- 设置edge_dict
与上面x_dict类似,edge_dict就是不同的边的edge_index,也就是边的一个映射,通过index进行mapping,是一个[2,xxx]的shape的Tensor,字典就是对不同类型的边进行定义,代码如下:
edge_index_dict = {
('user','following','user'):following_edge_index, #这是我获取到的具有following 关系的边类型
('user','follower','user'):follower_edge_index#这是我获取到的具有follower 关系的边类型
}
- 设置edge_attr
还没碰到,应该是设置权重相关系数。
评论区