图神经模型---传播规则

图神经模型---传播规则

符号说明

\(H\) : 特征矩阵

\(A\) : 图的邻接矩阵

\(D\) : 度矩阵,其对角线上的值为每个节点所连接边的数量

\(\widetilde{A}\) : \(= A + I_N\) 也就是邻接矩阵加上对角矩阵、对角线上的值为 \(1\)

\(\widetilde{D}\) : \(=\sum_{j}\widetilde{A}_{ij}\) 其对角线上的值为每个节点所连接边的数量 \(+ 1\)

GCN

\[H^{l+1} = \sigma(\widetilde{D}^{-\frac{1}{2}} \widetilde{A} \widetilde{D}^{-\frac{1}{2}} H^{l} W^{l}) \]

\[Z= f(X, A) = softmax(\hat{A}ReLU(\hat{A}XW^{0})W^{l}) \]

GraphSAGE

\[h_{N(v)}^{k} = AGG_k(h_{u}^{k-1}, u\in{N(v)})\\ h_{v}^{k} = \sigma(W^k · CONCAT(h_v^{k - 1}, h_{N(v)}^{k})) \]

AGG(aggregator architectures)

由于graph的是非欧结构的数据,一个节点的邻居数量不固定,也没有特定的顺序,所以我们的聚合器需要满足对称性(即聚合结果与顺序无关)。文中提出了三种聚合器

Mean aggregator

顾名思义,取平均。这个操作非常像GCN但是和GCN不同,有个CONCAT操作,把上一轮的embedding一起弄上来,作者表示这个类似于RESNET的“SKIP CONNECTION”,当然,也可以直接换成类似GCN的结构,就直接加一起取平均,实验给出了对比结果。

LSTM aggregator

比起mean aggregator,使用LSTM的结构肯定有更强大的表达能力,但是LSTM不是直接对称结构(结果会根据输入顺序而改变),所以作者用的是随机顺序作为输入(反正原本也是无序)。

Pooling aggregator

接下来就是池化了,这个池化聚合器即是对称的,也是可训练的,比如max-pooling的操作如下

\[AGGREGATE_{k}^{pool} = max(\{\sigma(W_{pool}h_{u_i}^{k} + b),\forall{u_{i}} \in{N{(v)}}\}) \]

这里的max操作是embedding的每个元素取最大。作者发现平均池化与最大池化没有显著差别,所以后续实验都使用最大池化

GAT

注意力计算公式:

\[\alpha_{ij} = \frac{exp(LeakyReLU(\vec{a}^T[W\vec{h_i} || W\vec{h_j}]))}{\sum_{k\in{N_i}}exp(LeakyReLU(\vec{a}^T[W\vec{h_i} || W\vec{h_k}]))}\\ \]

聚合邻居节点信息:

\[\vec{h_i} = \sigma{(\sum_{j\in{N_i}}\alpha_{ij}W\vec{h_j})} \]

加上多头机制:

\[\vec{h_i} = ||_{k = 1}^K\sigma{(\sum{j\in{N_i}\alpha_{ij}}W\vec{h_j})}\\ \Rightarrow\vec{h_i} = \sigma{(\frac{1}{K}\sum_{k=1}^{K}\sum_{j\in{N_i}}\alpha_{ij}W^k\vec{h_j})} \]

GAE

首先利用GCN 计算出图的嵌入

\[Z = GCN(X,A) \]

再根据 Z 计算出邻接矩阵

\[\hat{A} = \sigma(ZZ^T) \]

.....留坑

posted @ 2021-09-26 17:15  owo_owo  阅读(127)  评论(0编辑  收藏  举报