图神经网络

图神经网络

图神经网络的由来

近年来人们对GAN失去了兴趣,开始研究图神经网络。

GNN的类别

1、spectral-based,做研究
2、spatial-based,空间域,用GCN做实际应用

GCN

GCNs分为两类,spectral-based和spatial-based,spectral-based从图信号处理的角度引入滤波器来定义图卷积,此使图卷积被解释为从图信号中去除噪声,spatial-based的方法是将图卷积表示为来自邻居节点的特征信息的结合。谱方法即空间方法的特殊情况。虽然spectral-based看起来高级,但是目前研究受阻,更多学者发现谱方法是空间方法的特殊情况。
spatial-based的GAT和spectral-based的GCN.

图卷积理论基础

对于图G=(V,E),其中Laplacian矩阵的定义为L=D-A
L为拉普拉斯矩阵,D为对角虽度矩阵,对角线上的元素是顶点的度,即该元素链接的元素的葛素
A为邻接矩阵,即表示任意两个顶点之间的邻接关系,邻接则为1,不邻接则为0
L=D-W
在这里插入图片描述

选择L的行最大的值作为特征值。

GAT

GAT与GCN相似,致力于寻找一个聚合函数,融合图中相邻节点,随机游动和候选没想过,学习一种新的表示,关键区别是:GAT使用注意力机制为更重要的节点,步或模型分配更大的权重,多个网络一起学习
聚合邻居节点上的不同:

在这里插入图片描述

对图加加上attention

GAE

是一种无监督学习框架,通过编码器学习一种低维点向量,然后通过解码器重构图数据,GAE是一种常用的学习图嵌入的方法,既适用于无属性信息的普通图,还适用于有属性图。
对于普通的图,大多数算法直接预先得到一个邻接矩阵,或者构建一个信息丰富的矩阵,也就是点对互信息矩阵,或者邻接矩阵填充自编码模型,并捕获一阶和二阶信息,对于有属性图,图自编码模型利用GCN作为一个构建块用于编码,并且通过链路预测解码器,重构结构信息。

GGN

对训练网络记性回调,旨在从数据中生成可信的信息,生成给定经验分布的图,从根本上来说是具有挑战性的,主要是因为图是复杂的数据结构,为了解决这个问题,人们探索了将交替形成节点和边作为生成过程的因素,并借助GraphRNN,GraphVAE 作为训练过程,
GGN是一个很有前途的应用领域,如化合物生成,将原子作为节点,化学键作为边,任务是发现具有一定化学和物理性质的可合成的新分子。
GSTN
与前面几种不同,是在空间上进行回调

GCN +GSTN

在这里插入图片描述

典型场景

利用用户和商品之间的交互做出准确推荐
将分子建模为图结构,预测生物活性以发现新药物
使用论文的引用-被引用关系将论文被分类

化合物分类

判断化合物是否是有毒的

Barabasi-Albert模型

初始有m0个节点,每次加入一个节点i,每个节点的加入带来m条边,2m个度的增加,,
其中原有几点分到的度数是m,新节点分到的度数是m,
到时刻t的时候,网络的总节点数是2mt
加入的越早(ti越小)越容易获得更多的链接数
从时间0开始,每一个时刻节点的度ki是不断增加的。

不动点理论

具体实现

模型学习

spatial-based convolution

计算这个节点的邻接节点的向量和作为下次输出。设向量值为h,权重为w,h1.w1+h2.w2+h3.w3相加然后用激活函数激活,就可以做为下一次结果,得到新的h值,将h值连接起来,形成图特征,然后判断图的结果。
改进:不再进行权重相乘的简单相加,定义一个节点距离的方法。两个节点的度一个是2,一个是3,定义一个向量u(1/根号2,1/根号3)用来表示节点的特征值。计算u的均值和协方差去度量两个节点之间的相似度。
在这里插入图片描述

GraphSAGE

聚合方法:mean,max-pooling,LSTM。
聚合之后再进行combine

GAT

1、input :node features
2、calculate energy
3、attention score
比GraphSAGE 效果好。

GIN

spectral-based convolution

在空间方法上要给多少个权重是已知的,在谱方法中是不确定的,先将图做傅里叶变换转换成频率域,然后将频率域直接做数学上的乘法,做逆变换转换成图。
在计算的时候傅里叶变换和逆傅里叶变换,

GNN与RNN

图卷积神经网络GCN

GCNs将传统数据的卷积算子泛化到图数据,算法关键是学习一个函数f
能够结合vi邻居节点的特征Xj和其本身特征Xj生成vi的新表示,j∈N(vi)

图卷积带来的挑战

领域和数据的确定问题。

图的概念

图卷积

空域卷积

频域卷积

案例

node-level,edge-level,graph-level.

图嵌入

graph embedding

目的是希望能够将网络中的节点用比较低维的向量去表达,同时在这个向量空间中,网络结构的一些性质仍能够保持,也就是说:在原始图中相似的节点其在低维表达空间上也相似。得到的表达向量可以用来节点分类,链接预测,可视化或者重构原始图。

图嵌入方案

Deep walk

使用深度学习作为工具去分析图,建立一个适合复杂模型的robust representation
deep walk根据short random walks(随机游走)来学习结构化表示作者在考虑稀疏问题上,在多标签分类任务上有很大进步,在MicroF1 上有着5%-10%的提升,在一些例子上,即使提取40%的数据依然能够获得很好的效果。
思想:类似word2vec,使用图中节点与节点的共现关系来学习节点的向量表示。
如何描述节点与节点之间的共现关系?
使用随机游走进行节点采样。
随机游走势一种可重复访问已访问节点的深度优先遍历算法,给定当前访问起始节点,重复此过程,直到访问序列长度满足预设条件。
获取足够量的节点访问序列之后,使用skip-gram model 进行向量学习。

LINE

Node2vec

SDNE

Struc2Vec

图神经网络

VAE与VGAE

GAE 是图的自编码器,
在建模过程中图是从哪里来?
借鉴UNET,输入是一个图像,输出也是一个图像,卷积是编码,反卷积是解码。GAE输入是一个graph,输出也是一个graph,
与GAN相对的VAE,VAE是变分图自动编码器,用KL散度,将VAE和GAE结合就形成VGAE。GAE的作用是生成边,然后用分类。

VAE

早于GAN的自编码器,依然具有学术价值,

自编码器

将任何一个图形数据集变成一个高斯分布数据集,向量是一个分布采样的值。采样与真实的值有误差,做解码器形成一个图像,输出也是一个图像。可以解决比如图像去噪,或者将编码之后的和没有编码的相加,然后再进行解码就得既像虎又像狮的动物。如果直接将编码之后的和没有编码的进行融合会得到一个比较模糊的图像,可以先将其转换为其他空间上,比如高斯分布,然后再进行解码。当输入的是graph的时候,就要将VAE和GAE进行结合。

VAE与GCN结合

最早的VGAE,无监督学习
一般的好自编码即就是一个多层网络,中间的特征是一个固定的向量值,而VAE中间的特征就是一种分布,
VAE不是将输入图像压缩成潜在空间中的固定编码,而是将图像转换为统计分布的参数即平均值和方差。使用平均值和方差这两个参数来从分布随机采样一个元素,并将这个元素解码到原始输入。


版权声明:本文为qq_41821067原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。