图神经网络深入解析:架构、应用与优化
1. 广义更新方法
在图神经网络(GNN)中,广义更新方法借鉴了循环神经网络(RNN)更新隐藏状态的思路。例如,早期的GNN架构将更新函数定义为:
[
h^{(k)} u = GRU(h^{(k - 1)}_u, m^{(k)} {N(u)})
]
这里的GRU代表GRU单元的更新方程。此外,也有基于LSTM架构进行更新的方法。
一般来说,任何为RNN定义的更新函数都可以用于GNN。只需将RNN更新函数中的隐藏状态参数替换为节点的隐藏状态,将观测向量替换为从局部邻域聚合的消息。并且,这种RNN风格更新的参数在节点之间是共享的,在实践中,研究人员通常也会在GNN的消息传递层之间共享更新函数的参数。
这些门控更新方法在促进深度GNN架构(如超过10层)和防止过平滑方面非常有效。通常,它们在需要对图的全局结构进行复杂推理的GNN应用中最为有用,比如程序分析或组合优化。
2. 跳跃知识连接
之前我们默认使用GNN最后一层的输出,即下游任务中使用的节点表示 (z_u) 等于GNN中最后一层的节点嵌入:
[
z_u = h^{(K)}_u, \forall u \in V
]
许多GNN方法都采用了这种假设,而这种策略的局限性促使人们需要使用残差和门控更新来限制过平滑。
为了提高最终节点表示的质量,一种补充策略是利用消息传递每一层的表示,而不仅仅使用最后一层的输出。我们将最终节点表示 (z_u) 定义为:
[
z_u = f_{JK}(h^{(0)} u \op
超级会员免费看
订阅专栏 解锁全文
1万+

被折叠的 条评论
为什么被折叠?



