图神经模型---传播规则
图神经模型---传播规则
符号说明
\(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)
\]
.....留坑