下面内容参考kipf博客,个人认为是告诉你从直觉上,我们怎么得到GCN图上的定义(而前面的大幅推导是从理论上一步一步来的,也就是说可以用来佐证我们的直觉)
我们的网络输入是\(\mathcal{G}=(\mathcal{V},\mathcal{E})\):
而一层的输出记作\(Z_{\mathbb{R}^{N \times F}}\),其中\(N\)还是结点个数,\(F\)为每个结点的特征维数
那么非线性神经网络就可以定义成如下形式:
\[H^{l+1}=f(H^{l}, A) \]
其中\(H^{0}=X\), \(H^{L}=Z\), \(L\) 表示网络的层数,那么模型的关键是如何设计\(f(\cdot )\)
\[f(H^{l}, A) = \sigma (AH^{l}W^{l}) \]
其中\(W^{l}\) 是\(l.th\)层的参数矩阵,\(\sigma ()\) 是激活函数。【PS:Despite its simplicity this model is already quite powerful】
仔细观察上式就能发现几个缺陷:
\[f(H^{(l+1)}, A) = \sigma\left( D^{-\frac{1}{2}}\hat{A}D^{-\frac{1}{2}}H^{(l)}W^{(l)}\right) \, \]
这个形式已经和上篇利用谱理论推导处理的结果很相近了
\[\boldsymbol{g}_{\boldsymbol{\theta^{\prime}}} * \boldsymbol{x} = \theta(\boldsymbol{I_n} + \boldsymbol{D}^{-1/2} \boldsymbol{W} \boldsymbol{D}^{-1/2}) \boldsymbol{x} \]
但和最终的结果还不一样,回顾论文给的 renormalization trick:
\[I_{N}+D^{-1/2}AD^{-1/2}=D^{-1/2}\hat{A}D^{-1/2}\rightarrow \tilde{D}^{-1/2}\hat{A}\tilde{D}^{-1/2}=(D+I_{N})^{-1/2}\hat{A}(D+I_{N})^{-1/2} \]
\[\hat{A}=A+I_{N} \]
\[\tilde{D}_{ii}= \sum_{}^{j}\hat{A}_{ij}=D+I_{N} \]
那么的确可以得到最终形式:
\[f(H^{(l+1)}, A) = \sigma\left(\tilde{D}^{-\frac{1}{2}}\hat{A}\tilde{D}^{-\frac{1}{2}}H^{(l)}W^{(l)}\right) \, \]