这篇文章是PyG的官方paper,里面提供了很多有价值的信息,在这里进行一下汇总和思考。
Fey M, Lenssen J E. Fast graph representation learning with PyTorch Geometric[J]. arXiv preprint arXiv:1903.02428, 2019.
PyG主要是利用消息传递框架的思想来「提供API接口」以及「实现高GPU吞吐量」(加速)的。
图数据结构
G = ( X , ( I , E ) ) , X ∈ R N × F , I ∈ N 2 × E , E ∈ R E × D G=(X,(I,E))\quad ,X\in R^{N\times F},I\in N^{2\times E},E\in R^{E\times D} G=(X,(I,E)),X∈RN×F,I∈N2×E,E∈RE×D
X就是我们常说的节点特征矩阵data.x
,I是之前见过的COO格式的边索引表data.edge_index
,E是边的特征矩阵(在节点分类任务中用不到)。当然,I也可以表示成SpareTensor的形式,这个后面也会说什么时候需要用到这种形式。
消息传递框架MPNN
x i ′ = γ ( x i , □