GNN的用处
分类(Classification)
比如,有很多不同的化学分子,将其表示成图作为输入,用GNN判断其是否会导致突变,这就是一个有监督分类问题。
生成(Generation)
比如,我们需要开发针对新冠病毒的新药,我们可以训练出一个可以生成我们想要的分子(输出形式为图)的GNN,然后用这个GNN生成可以对抗病毒的某种化学分子。
GraphVAE
为什么要用GNN
上面列举的分类、生成的例子中输入或输出都是图,所以要用GNN。图不仅包含了各个结点的信息,更重要的是它包含了各个结点之间的关系。
使用GNN时可能遇到的问题
- 如何通过结点间的信息帮助模型
- 图中可能包含大量结点,数据集非常大
- 大量结点都是没有label的
GNN的两种思路
很直观地可以想到,一个结点和它的相邻结点肯定有某些特定的关系,比如说相似(近朱者赤近墨者黑)、相反、合作等等。在多数情况下,数据集unlabeled node都是远多于labeled node的,我们想要得到一个较好的模型,那我们要如何利用仅有的少量labeled node以及它和邻居间的关系呢?结合CNN,我们要如何将卷积这个操作推广到GNN模型中,用卷积将结点嵌入到某个特征空间中呢?有两种方法
Spatial-based Convolution
Generalize the concept of convolution(corelation) to graph.
Spectral-based Convolution
Back to the definition of convolution in signal processing.
GNN导图
任务和数据集
常见任务
- Classification
- Regression
- Graph Classification
- Graph Representation Learning
- Link Prediction
常用数据集
- CORA: citation network, 2.7k nodes and 5.4k links
- TU-MUTAG: 188 molecules with 18 nodes on average
其它
Github(github.com):@chouxianyu
Github Pages(github.io):@臭咸鱼
知乎(zhihu.com):@臭咸鱼
博客园(cnblogs.com):@臭咸鱼
B站(bilibili.com):@绝版臭咸鱼
微信公众号:@臭咸鱼
转载请注明出处,欢迎讨论和交流!