这是目录
1、消息传递范式
消息传递是实现GNN
的一种通用框架和编程范式。它从聚合与更新的角度归纳总结了多种GNN
模型的实现,它的思路是:
- 首先结合边的特征以及和边相连的两个节点的特征,得到消息函数;
- 把和节点
u
相连的边上的信息函数聚合起来,并结合u
的已有节点特征,来更新v的节点特征。
消息传递的数学公式如下:
m e i t + 1 = Φ ( x v i t , x u t , ω e i t ) x u t + 1 = Ψ ( x u t , ρ ( { m e i t + 1 , i ∈ N ( u ) } ) \begin{aligned} m_{e_i}^{t+1} &= \Phi(x_{v_i}^t, x_u^t, \omega_{e_i}^t)\\ x_u^{t+1} &= \Psi(x_u^t, \rho(\{m_{e_i}^{t+1},i \in N(u)\}) \end{aligned} meit+1xut+1=Φ(xvit,xut,ωeit)=Ψ(xut,ρ({
meit+1,i∈N(u)})
- 其中 Φ \Phi Φ是定义在每条边上的消息函数,它将边上特征与其两端节点的特征相结合来生成消息,一般是可微分的函数;
- 其中 ρ \rho ρ是
聚合
函数,把所有的边的消息聚合起来处理,通常是可微分、具有排列不变性的函数(即和 m e i t + 1 m_{e_i}^{t+1} me