图机器学习基础知识——通用框架(MPNN、NLNN、GN)
图机器学习基础知识——通用框架(MPNN、NLNN、GN)
通用框架
MPNN(Message Passing Neural Network)
消息传递神经网络
-
MPNN包含两个阶段:
-
消息传递阶段
Message Passing
-
消息传递阶段运行 T T T个时间步,包含两个子函数:消息函数 M t M_t Mt和节点更新函数 U t U_t Ut。使用消息 m v t m_v^t mvt,隐状态 h v t h_v^t hvt的更新函数如下:
m v t + 1 = ∑ w ∈ N v M t ( h v t , h w t , e v w ) \bm{ m_v^{t+1} = \sum\limits_{w \in N_v}M_t(h_v^t, h_w^t, e_{vw}) } mvt+1=w∈Nv∑Mt(hvt,hwt,evw)
h v t + 1 = U t ( h v t , m v t + 1 ) \bm{ h_v^{t+1} = U_t(h_v^t, m_v^{t+1}) } hvt+1=Ut(hvt,mvt+1)
其中, e v w e_{vw} evw表示从 v v v到 w w w的边的特征
-
-
读出阶段
Readout
-
Readout阶段使用读出函数R来计算全图的表示:
y ^ = R ( { h v T ∣ v ∈ G } ) \bm{ \hat{y} = R(\{h_v^T | v \in G\}) } y^=R({hvT∣v∈G})
-
-
-
MPNN可以通过设置不同的消息函数、节点更新函数和读出函数来变成不同的模型
NLNN(Non-Local Neural Network,NLNN)
非局部神经网络
-
NLNN利用DNN捕捉远程依赖关系,NLNN的非局部运算会针对特定位置计算所有位置的的特征加权总和,位置既可以是时间维度上的位置,也可以是空间维度上的位置。NLNN可以看作是多种“Self-Attention”机制的统一。
-
泛化的非局部运算的一般定义如下:
h i ′ = 1 C ( h ) ∑ ∀ j f ( h i , h j ) g ( h j ) \bm{ h_i^{'} = \frac{1}{C(h)}\sum\limits_{\forall j}f(h_i, h_j)g(h_j) } hi′=C(h)1∀j∑f(hi,hj)g(hj)
其中,i是目标位置,j的选择应枚举所有可能的位置。 f ( h i , h j ) f(h_i, h_j) f(hi,hj)用于计算位置i和j之间的Attention Score。 g ( h j ) g(h_j) g(hj)表示输入 h j h_j hj的变换,因子 1 C ( h ) \frac{1}{C(h)} C(h)1用于将结果归一化-
函数g的选择
-
线性变换
g ( h j ) = W g h j \bm{ g(h_j) = W_gh_j } g(hj)=Wghj
-
-
函数f的选择
-
高斯函数
f ( h i , h j ) = e h i T h j \bm{ f(h_i, h_j) = e^{h_i^Th_j} } f(hi,hj)=ehiThj
其中, h i T h j h_i^Th_j hiThj是点积相似度,且有 C ( h ) = ∑ ∀ j f ( h i , h j ) C(h) = \sum\limits_{\forall j}f(h_i, h_j) C(h)=∀j∑f(hi,hj) -
嵌入高斯函数
Self-Attention是嵌入高斯函数的一个特例
f ( h i , h j ) = e θ ( h i ) T Φ ( h j ) \bm{ f(h_i, h_j) = e^{θ(h_i)^TΦ(h_j)} } f(hi,hj)=eθ(hi)TΦ(hj)
其中, θ ( h i ) = W θ h i θ(h_i) = W_θh_i θ(hi)=Wθhi, Φ ( h j ) = W Φ h j Φ(h_j) = W_Φh_j Φ(hj)=WΦhj,且 C ( h ) = ∑ ∀ j f ( h i , h j ) C(h) = \sum\limits_{\forall j}f(h_i, h_j) C(h)=∀j∑f(hi,hj) -
点积函数
f ( h i , h j ) = θ ( h i ) T Φ ( h j ) \bm{ f(h_i, h_j) = θ(h_i)^TΦ(h_j) } f(hi,hj)=θ(hi)TΦ(hj)
其中, C ( h ) = N C(h) = N C(h)=N, N N N表示 h h h中的位置个数 -
拼接函数
f ( h i , h j ) = R e L U ( w f T [ θ ( h i ) ∣ ∣ Φ ( h j ) ] ) \bm{ f(h_i, h_j) = ReLU(w_f^T[θ(h_i) || Φ(h_j)]) } f(hi,hj)=ReLU(wfT[θ(hi)∣∣Φ(hj)])
其中, w f w_f wf是将向量投影到标量的权重向量, 有 C ( h ) = N 有C(h) = N 有C(h)=N -
非局部块(Non-local Neural Networks)
Paper : Non-local Neural Networks
z i = W z h i ′ + h i \bm{ z_i = W_zh_i^{'} + h_i } zi=Wzhi′+hi
-
-
GN
Paper : Relational inductive biases, deep learning, and graph network
GN,囊括并扩展了各种GNN,以及MPNN和NLNN
- GN块包含3个更新函数Φ,以及3个聚合函数ρ:
e k ′ = ϕ e ( e k , v r k , v s k , u ) e ‾ i ′ = ρ e → v ( E i ′ ) v i ′ = ϕ v ( e ‾ i ′ , v i , u ) e ‾ ′ = ρ e → u ( E ′ ) u ′ = ϕ u ( e ‾ ′ , v ‾ ′ , u ) v ‾ ′ = ρ v → u ( V ′ ) \begin{array}{lr} \mathbf{e}_{k}^{\prime}=\phi^{e}\left(\mathbf{e}_{k}, \mathbf{v}_{r_{k}}, \mathbf{v}_{s_{k}}, \mathbf{u}\right) & \overline{\mathbf{e}}_{i}^{\prime}=\rho^{e \rightarrow v}\left(E_{i}^{\prime}\right) \\ \mathbf{v}_{i}^{\prime}=\phi^{v}\left(\overline{\mathbf{e}}_{i}^{\prime}, \mathbf{v}_{i}, \mathbf{u}\right) & \overline{\mathbf{e}}^{\prime}=\rho^{e \rightarrow u}\left(E^{\prime}\right) \\ \mathbf{u}^{\prime}=\phi^{u}\left(\overline{\mathbf{e}}^{\prime}, \overline{\mathbf{v}}^{\prime}, \mathbf{u}\right) & \overline{\mathbf{v}}^{\prime}=\rho^{v \rightarrow u}\left(V^{\prime}\right) \end{array} ek′=ϕe(ek,vrk,vsk,u)vi′=ϕv(ei′,vi,u)u′=ϕu(e′,v′,u)ei′=ρe→v(Ei′)e′=ρe→u(E′)v′=ρv→u(V′)
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)