图神经网络
图嵌入(Graph Embedding/Network Embedding,GE)通常有两个层次的含义:
- 将图中的节点表示成低维、实值、稠密的向量形式
- 将整个图表示成低维、实值、稠密的向量形式
图嵌入的方式主要有三种:
- 矩阵分解:基于矩阵分解的方法是将节点间的关系用矩阵的形式加以表达,然后分解该矩阵以得到嵌入向量。通常用于表示节点关系的矩阵包括邻接矩阵,拉普拉斯矩阵,节点转移概率矩阵,节点属性矩阵等。根据矩阵性质的不同适用于不同的分解策略。
- DeepWalk:DeepWalk 是基于 word2vec 词向量提出来的。word2vec 在训练词向量时,将语料作为输入数据,而图嵌入输入的是整张图,两者看似没有任何关联。但是 DeepWalk 的作者发现,预料中词语出现的次数与在图上随机游走节点被访问到底的次数都服从幂律分布。因此 DeepWalk 把节点当做单词,把随机游走得到的节点序列当做句子,然后将其直接作为 word2vec 的输入可以节点的嵌入表示,同时利用节点的嵌入表示作为下游任务的初始化参数可以很好的优化下游任务的效果,也催生了很多相关的工作;
- Graph Neural Network:图结合deep learning方法搭建的网络统称为图神经网络GNN
图神经网络(和传统神经网络的区别):输入是一个图,经过多层图卷积等各种操作以及激活函数,最终得到各个节点的表示,以便于进行节点分类、链接预测、图与子图的生成等等任务。【输入、隐藏层、输出都是图】
Graph Convolution Networks(GCN)
首次将图像处理中的卷积操作简单的用到图结构数据处理中来
经过复杂的推导,得到简单的结论:(聚合邻居节点的特征然后做一个线性变换)
如果要考虑 K-hop 的邻居节点,可以将 GCN layers 堆叠多层: