锐单电子商城 , 一站式电子元器件采购平台!
  • 电话:400-990-0325

图神经网络:GAT学习、理解、入坑

时间:2023-09-09 23:07:00 whj1精密电位器精密电位器whj1

介绍

论文地址-GRAPH ATTENTION NETWORKS-Published as a conference paper at ICLR 2018
tensorflow源码地址代码版本
pyGAT-pytorch源码地址
keras-gat
边预测任务-GraphSAGE

初步理解原理

??GAT(Graph Attention Networks)采用Attention通过对邻居节点的加权求和,学习邻居节点的权重,获得节点本身的表达。
给定图 G = ( V , E ) G = (V,E) G=(VE) V V V 表示点, E E E 表示边,节点数 ∣ V ∣ = N |V| = N V=N
输入: N N N节点的特点, h = { h ? 1 , h ? 2 , … , h ? N } , h ? i ∈ R F \mathbf{h}=\left\{\vec{h}_{1}, \vec{h}_{2}, \ldots, \vec{h}_{N}\right\}, \vec{h}_{i} \in \mathbb{R}^{F} h={ h 1,h 2,,h N},h iRF
输出:采用 Attention机制生成新的节点特征 h ′ = { h ⃗ 1 ′ , h ⃗ 2 ′ , … , h ⃗ N ′ } , h ⃗ i ′ ∈ R F ′ \mathbf{h^{\prime}}=\left\{\vec{h}_{1}^{\prime}, \vec{h}_{2}^{\prime}, \ldots, \vec{h}_{N}^{\prime}\right\}, \vec{h}_{i}^{\prime} \in \mathbb{R}^{F^{\prime}} h={ h 1,h 2,,h N},h iRF 作为输出.

从GNN,GCN到GAT

GAT模型

W就是可以训练的参数,分别用来针对向量A/B/…等进行操作(转置)
“||”:拼接操作,“*”:内积
参数a也可以通过网络训练得到。
两个节点的权重需要基于两个节点的特征

节点i的特征乘以W拼接上节点j的特征乘以W,再乘以 a → \overrightarrow{a} a ,公式:( ( W h i → ∣ ∣ W h j → ) ∗ a → (W\overrightarrow{h_i}||W\overrightarrow{h_j})*\overrightarrow{a} (Whi ∣∣Whj )a )。
  首先 ,为了更加充分地表示节点的特征,对节点 h i h_i hi 进行特征变换, W h i W h_i Whi W ∈ R F ′ × F \mathbf{W} \in \mathbb{R}^{F^{\prime} \times F} WRF×F ,即将节点的特征维度 F F F映射到维度 F ′ F^{\prime} F上。关键的步骤来了,对图中的每个节点进行self-attention操作,计算任意两个节点之间的注意力权重。节点 j j j 对节点 i i i 的重要性计算公式如下:
e i j = a ( W h ⃗ i , W h ⃗ j ) e_{i j}=a\left(\mathbf{W} \vec{h}_{i}, \mathbf{W} \vec{h}_{j}\right) eij=a(Wh i,Wh j)
  一般而言,该模型允许图中的每个节点扩展到其他节点,从而丢弃所有结构信息。 原论文中,通过masked attention将图结构注入这个机制中,即对于节点 [公式] 来说,只计算其一阶邻居节点集合 N i N_i Ni 中节点 对 i i i 的作用, j ∈ N i j \in \mathcal{N}_{i} jNi
  为了使系数在不同节点之间易于比较,论文中使用softmax函数在集合 N i \mathcal{N}_{i} Ni中对它们进行归一化,如下所示。在实验中,注意力机制是一个单层的前馈神经网络,激活函数采用LeakyReLU。
α i j = softmax ⁡ j ( e i j ) = exp ⁡ ( e i j ) ∑ k ∈ N i exp ⁡ ( e i k ) \alpha_{i j}=\operatorname{softmax}_{j}\left(e_{i j}\right)=\frac{\exp \left(e_{i j}\right)}{\sum_{k \in \mathcal{N}_{i}} \exp \left(e_{i k}\right)} αij=softmaxj(eij)=kNiexp(eik)exp(eij)
  Attention系数按如下方式生成:
α i j = exp ⁡ ( LeakyReLU ⁡ ( a → T [ W h ⃗ i ∥ W h ⃗ j ] ) ) ∑ k ∈ N i exp ⁡ ( LeakyReLU ⁡ ( a → T [ W h ⃗ i ∥ W h ⃗ k ] ) ) \alpha_{i j}=\frac{\exp \left(\operatorname{LeakyReLU}\left(\overrightarrow{\mathbf{a}}^{T}\left[\mathbf{W} \vec{h}_{i} \| \mathbf{W} \vec{h}_{j}\right]\right)\right)}{\sum_{k \in \mathcal{N}_{i}} \exp \left(\operatorname{LeakyReLU}\left(\overrightarrow{\mathbf{a}}^{T}\left[\mathbf{W} \vec{h}_{i} \| \mathbf{W} \vec{h}_{k}\right]\right)\right)} αij=kNiexp(LeakyReLU(a T[Wh iWh k]))exp(LeakyReLU(a T

锐单商城拥有海量元器件数据手册IC替代型号,打造电子元器件IC百科大全!

相关文章