目录
一、概述
如果说神经网络是把定向输入经过黑盒变换,转化为定向输出,例如CNN是把图像转化为标签(物体识别与检测)、RNN把提取好的文本转化为标签/概率(NER/分类),那图神经网络就是把图转为标签。
图卷积神经网络的输出,依照组成图的元素,可以分为:node-level、link-level、graph-level。node-level的任务,主要对节点进行分类,例如,找节点的label。link-level的任务是对边进行预测,例如,删去静态图的一些边,而后对删除的边进行预测;或者,预测根据时间变化的动态图的边的出现。graph-level的任务,一般是对整个图的性质进行预测。
但区别于CNN和RNN的输入,图这种结构非常复杂。CNN的本质是要对grid进行操作,这个grid可以看成一个二维矩阵,这种欧氏空间数据的卷积核也好找,直接用一个m*n的矩阵平移就足够。RNN是要对序列化的一个一维数据,每个点可以“看到”前后的部分数据,它的卷积也就只有【前】和【后】两个方向。图的每个点,其度是高度不确定的,也就不满足欧氏空间数据,更无法像RNN一样只有有限的几个方向。因此,对图进行卷积,需要转换的东西很多。
此外,参照神经网络,图神经网络的输入的特征需要经过提取。本文,将主要阐述各种的特征提取。
二、node-level feature
1、degree
度是衡量一个节点的最基础信息。如果用度作为提取的feature,就会面临以下问题:
如果一个图里,两个点的度相同,那么如何区分这两个节点呢?
2、节点重要程度
节点重要程度可以有以下3个指标判断:
Eigenvector centrality:特征向量中心性。该中心线的假设前提是,每个点的重要程度由邻居节点的重要性决定。例如PageRank。每个centrality的参照见下公式。
考虑到计算情况,整个公式见下面。其中A是邻接矩阵,c是特征向量,lamda是特征值。
Bewteenness centrality:找sssp上的重合点。例如,下图中A和B和E的centrality都是0,而C和D都是3。betweenness越大,越重要。
Closeness centrality:找该点为起点的sssp的和的倒数,越大越重要。例如上图中A点的centrality = 1/(2+1+2+3) = 1/8。个人认为,Closeness在较大的图例一定要取对数。