当前位置: 首页 > news >正文

【note】GNN

WL-test

https://dl.acm.org/doi/10.5555/1953048.2078187

WL-test 是一个判断图同构问题的启发式算法(可能会把非同构判断成同构)。

1-WL-test 是最简单的一个版本,方法如下:

  1. 初始时,点 v v v 特征为 l 0 ( v ) l_0(v) l0(v)
  2. 每次迭代时,用邻点特征的多重集更新每个点的特征,即令 l i ( v ) = f ( { l i − 1 ( u ) ∣ u ∈ N ( v ) } ) l_i(v)=f(\{l_{i-1}(u)|u\in \mathcal N(v)\}) li(v)=f({li1(u)uN(v)})
  3. 最终比较两张图所有点特征的多重集是否相等

迭代 h h h 次,时间复杂度 O ( h m ) O(hm) O(hm)。(就是比较深度为 h h h 的 dfs 树是否同构)

GNN

GNN 有多种结构,但每一层通常都可以写成如下形式:

a v ( k ) = AGGREGATE ( k ) ( { h u ( k − 1 ) : u ∈ N ( v ) } ) a_v^{(k)}=\text{AGGREGATE}^{(k)}\left(\left\{h_u^{(k-1)}:u\in\mathcal{N}(v)\right\}\right) av(k)=AGGREGATE(k)({hu(k1):uN(v)})

h v ( k ) = COMBINE ( k ) ( h v ( k − 1 ) , a v ( k ) ) h_v^{(k)}=\text{COMBINE}^{(k)}\left(h_v^{(k-1)},a_v^{(k)}\right) hv(k)=COMBINE(k)(hv(k1),av(k))

下面尝试整理一下常见的几种结构。

GCN (spectral)

https://arxiv.org/abs/1312.6203
https://arxiv.org/abs/1606.09375

有点复杂,见得不多

GCN (spatial)

https://arxiv.org/abs/1609.02907

相对简单且常见

H ( l + 1 ) = σ ( D ~ − 1 2 A ~ D ~ − 1 2 H ( l ) W ( l ) ) H^{(l+1)}=\sigma\Big(\tilde{D}^{-\frac12}\tilde{A}\tilde{D}^{-\frac12}H^{(l)}W^{(l)}\Big) H(l+1)=σ(D~21A~D~21H(l)W(l))

其中 A ~ = A + I N \tilde{A}=A+I_N A~=A+IN 是邻接矩阵和单位矩阵之和, D ~ i i = ∑ j A i j \tilde{D}_{ii}=\sum_jA_{ij} D~ii=jAij 为度数矩阵。

MPNN

https://arxiv.org/abs/1704.01212

m v t + 1 = ∑ w ∈ N ( v ) M t ( h v t , h w t , e v w ) h v t + 1 = U t ( h v t , m v t + 1 ) \begin{aligned}m_v^{t+1}&=\sum_{w\in N(v)}M_t(h_v^t,h_w^t,e_{vw})\\h_v^{t+1}&=U_t(h_v^t,m_v^{t+1})\end{aligned} mvt+1hvt+1=wN(v)Mt(hvt,hwt,evw)=Ut(hvt,mvt+1)

GraphSAGE

http://arxiv.org/abs/1706.02216

a v ( k ) = M A X ( { R e L U ( W ⋅ h u ( k − 1 ) ) , ∀ u ∈ N ( v ) } ) a_v^{(k)}=\mathrm{MAX}\left(\left\{\mathrm{ReLU}\left(W\cdot h_u^{(k-1)}\right),\mathrm{~}\forall u\in\mathcal{N}(v)\right\}\right) av(k)=MAX({ReLU(Whu(k1)), uN(v)})

h u ( k ) = W ⋅ [ h v ( k − 1 ) , a v ( k ) ] h_u^{(k)}=W\cdot\left[h_v^{(k-1)},a_v^{(k)}\right] hu(k)=W[hv(k1),av(k)]

GAT

http://arxiv.org/abs/1710.10903

α i j = exp ⁡ ( LeakyReLU ( a ⃗ T [ W h ⃗ i ∥ W h ⃗ j ] ) ) ∑ k ∈ N i exp ⁡ ( LеаkyReLU ( a ⃗ T [ W h ⃗ i ∥ W h ⃗ k ] ) ) \alpha_{ij}=\frac{\exp\left(\text{LeakyReLU}\left(\vec{\mathbf{a}}^T[\mathbf{W}\vec{h}_i\|\mathbf{W}\vec{h}_j]\right)\right)}{\sum_{k\in\mathcal{N}_i}\exp\left(\text{LеаkyReLU}\left(\vec{\mathbf{a}}^T[\mathbf{W}\vec{h}_i\|\mathbf{W}\vec{h}_k]\right)\right)} αij=kNiexp(LеаkyReLU(a T[Wh iWh k]))exp(LeakyReLU(a T[Wh iWh j]))

h ⃗ i ′ = ∥ k = 1 K σ ( ∑ j ∈ N i α i j k W k h ⃗ j ) \vec{h}_i^{\prime}=\Big\Vert_{k=1}^K\sigma\left(\sum_{j\in\mathcal{N}_i}\alpha_{ij}^k\mathbf{W}^k\vec{h}_j\right) h i= k=1Kσ(jNiαijkWkh j)

AGNN

http://arxiv.org/abs/1803.03735

P i ( t ) = softmax ( [ β ( t ) cos ⁡ ( H i ( t ) , H j ( t ) ) ] j ∈ N ( i ) ∪ { i } ) P_i^{(t)}=\text{ softmax}{ \left ( [ \beta ^ { ( t ) }\cos(H_i^{(t)},H_j^{(t)})]_{j\in N(i)\cup\{i\}}\right)} Pi(t)= softmax([β(t)cos(Hi(t),Hj(t))]jN(i){i})

H i ( t + 1 ) = ∑ j ∈ N ( i ) ∪ { i } P i j ( t ) H j ( t ) H_i^{(t+1)}=\sum_{j\in N(i)\cup\{i\}}P_{ij}^{(t)}H_j^{(t)} Hi(t+1)=jN(i){i}Pij(t)Hj(t)

GIN

http://arxiv.org/abs/1810.00826

h v ( k ) = M L P ( k ) ( ( 1 + ϵ ( k ) ) ⋅ h v ( k − 1 ) + ∑ u ∈ N ( v ) h u ( k − 1 ) ) h_v^{(k)}=\mathrm{MLP}^{(k)}\left(\left(1+\epsilon^{(k)}\right)\cdot h_v^{(k-1)}+\sum_{u\in\mathcal{N}(v)}h_u^{(k-1)}\right) hv(k)=MLP(k)((1+ϵ(k))hv(k1)+uN(v)hu(k1))


http://www.mrgr.cn/news/53898.html

相关文章:

  • [论文笔记]RA-DIT: RETRIEVAL-AUGMENTED DUAL INSTRUCTION TUNING
  • 【C++语言】精妙的哈希算法:原理、实现与优化
  • 科研进展 | RSE:全波形高光谱激光雷达数据Rclonte系列处理算法一
  • 面试后的想法
  • 【WPF】中Binding的应用
  • 限制游客在wordpress某分类下阅读文章的数量
  • Dropout为何能防止过拟合?dropout和BN 在前向传播和方向传播阶段的区别?
  • 「图::连通」详解并查集并实现对应的功能 / 手撕数据结构(C++)
  • 挑战自闭症儿童康复:探索有效治疗方法
  • C#从零开始学习(类型和引用)(4)
  • 解锁C++多态的魔力:灵活与高效的编码艺术(下)
  • 每日一题——第一百一十七题
  • 【部署篇】rabbitmq-01介绍
  • 【openGauss】OPENGAUSS/POSTGRESQL 中float类型到int类型的隐式转换
  • 直播带货APP开发指南:基于多商户商城系统源码的方案实战
  • vscode 预览markdown 文件
  • 竹壳天气时钟(三)TFT屏幕显示中文
  • 量价关系总结
  • Redis入门到精通(二):入门Redis看这一篇就够了
  • AI动漫翻唱项目玩法拆解,起号涨粉咔咔猛,实操干货分享
  • ICMP协议以及ARP欺骗攻击
  • 跨平台进程池背后的思想
  • 【数据结构与算法】之二分查找
  • 一个纹理分割的例子
  • Python基础——类型注解
  • javaWeb项目-Springboot+vue-XX图书馆管理系统功能介绍