异构图HAN

异构图:节点类别的数量加边的类别的数量大于等于2,也就是包含不同类型节点和连接的异构图。下面的图就是一个异构图,包含电影、演员、导演。
在这里插入图片描述
这里介绍异构图的一个图算法Heterogeneous Graph Attention Network

定义异构图:节点的类别 + 边的类别 数量大于2

Meta-path 元路径就是连接两个对象的复合关系,是一种广泛使用的捕获语义的结构
在这里插入图片描述
例如上面的异构图中包含三类节点,演员、电影、导演。
(c)图定义了两个Meta-path:movie-actor-moviemovie-director-movie

如果我们选择movie-actor-movie这样一条Meta-path,那么m1-a1-m2就满足这个Meta-path关系,那么久可以说m1m2就是互为邻居节点。此外m1-a3-m3也满足这个Meta-path,那么m1m3也是互为邻居节点。同理m1-a1-m1也满足。综上,m1的邻居节点包括m1,m2,m3

HAN 最主要的两个步骤

1. 节点级别的attention

在这里插入图片描述
我们定义了一个meta-path:movie-director-movie, 那么就可以形成下面的这个同构图:
在这里插入图片描述
那么就可以根据Terminator的邻居节点Terminator2Titanic,进行聚合,学习到Terminator的特征表示。那么就学习到节点级别的attention。

如果Meta-path定义为movie-year-movie那么形成下面的同构图:
在这里插入图片描述
同理可以根据邻居节点,可以求得这个Meta-path下Terminator的节点的特征。

2. 语义级别的attention
语义级别的attention旨在了解每个元路径的重要性,并为其分配适当的权重。
在这里插入图片描述
根据上面两个不同的Meta-path,可以得到两个不同的Terminator的特征,而我们的最终目标是要得到一个Terminator的特征,那么将这两个特征进行加权求和,这样的方式就是语义级别的方式。

在这里插入图片描述
上图中利用Meta-path形成一个同构图。

节点级别attention流程

计算流程:
在这里插入图片描述

  1. 公式二: e i j Φ = a t t n o d e ( h i ′ , h j ′ ; Φ ) e_{ij}^\Phi=att_{node}(h_i^\prime,h_j^\prime;\Phi) eijΦ=attnode(hi,hj;Φ)表示连接节点与节点之间的特征值,其中 Φ \Phi Φ表示在这个Meta-path下。在图中表示1节点与周围的邻居节点的特征,也就是求 e 11 Φ 0 e_{11}^{\Phi _0} e11Φ0 e 12 Φ 0 e_{12}^{\Phi _0} e12Φ0 e 13 Φ 0 e_{13}^{\Phi _0} e13Φ0 e 16 Φ 0 e_{16}^{\Phi _0} e16Φ0
  2. 公式三:对上面求得的 e 11 Φ 0 e_{11}^{\Phi _0} e11Φ0 e 12 Φ 0 e_{12}^{\Phi _0} e12Φ0 e 13 Φ 0 e_{13}^{\Phi _0} e13Φ0 e 16 Φ 0 e_{16}^{\Phi _0} e16Φ0进行归一化操作得到,这里的方法与GAT的方法如出一辙,学习到attention系数,得到 α 11 Φ 0 \alpha_{11}^{\Phi _0} α11Φ0 α 12 Φ 0 \alpha_{12}^{\Phi _0} α12Φ0 α 13 Φ 0 \alpha_{13}^{\Phi _0} α13Φ0 α 16 Φ 0 \alpha_{16}^{\Phi _0} α16Φ0
  3. 公式四:将上面得到的attention系数与1节点周围邻居的特征进行加权求和,然后经过激活函数,得到1节点的特征表示。 即 z 1 Φ 0 = σ ( α 11 Φ 0 ⋅ x 1 0 + α 12 Φ 0 ⋅ x 2 0 + α 13 Φ 0 ⋅ x 3 0 + α 16 Φ 0 ⋅ x 6 0 ) z_1^{\Phi_0}=\sigma(\alpha_{11}^{\Phi_0} \cdot x_1^0 +\alpha_{12}^{\Phi_0} \cdot x_2^0 + \alpha_{13}^{\Phi_0} \cdot x_3^0+\alpha_{16}^{\Phi_0} \cdot x_6^0) z1Φ0=σ(α11Φ0x10+α12Φ0x20+α13Φ0x30+α16Φ0x60)
  4. 然后求其他节点的特征表示,最终就可以得到在Meta-path Φ 0 \Phi_0 Φ0下的节点特征: Z Φ = { z 1 Φ 0 , z 2 Φ 0 , z 3 Φ 0 . . . } Z_\Phi=\{z_1^{\Phi_0},z_2^{\Phi_0},z_3^{\Phi_0}...\} ZΦ={z1Φ0,z2Φ0,z3Φ0...}
  5. 然后得到多个Meta-path下的特征 { Z Φ 0 , Z Φ 1 , Z Φ 2 . . . } \{Z_{\Phi_0},Z_{\Phi_1},Z_{\Phi_2}...\} {ZΦ0,ZΦ1,ZΦ2...}

语义级别attention流程

在这里插入图片描述

  1. 公式七:选择一个Meta-path下的所有节点,这里选择 Φ 0 \Phi_0 Φ0,将每个节点经过全连接层 W ⋅ z i Φ 0 + b W \cdot z_i^{\Phi_0} +b WziΦ0+b,然后经过激活函数 t a n h tanh tanh,然后乘以一个可学习的参数 q T q^T qT,这样就得到每一个节点在Meta-path Φ 0 \Phi_0 Φ0下的一个标量,然后对所有节点进行加权求和,并除以节点数量。得到在 Φ 0 \Phi_0 Φ0这个Meta-path下的对应的一个系数 w Φ 0 w_{\Phi_0} wΦ0

举例:在 Φ 0 \Phi_0 Φ0下,1节点的特征 z 1 Φ 0 = [ 0.1 , 0.2 , 0.1 , 0.5 , 0.8 ] T , z 2 Φ 0 = [ 0.3 , 0.1 , 0.2 , 0.4 , 0.9 ] T z_1^{\Phi_0}=[0.1,0.2,0.1,0.5,0.8]^T,z_2^{\Phi_0}=[0.3,0.1, 0.2,0.4,0.9]^T z1Φ0=[0.1,0.2,0.1,0.5,0.8]T,z2Φ0=[0.3,0.1,0.2,0.4,0.9]T ,将 z 1 Φ 0 z_1^{\Phi_0} z1Φ0经过 t a n h ( W ⋅ z + b ) tanh(W \cdot z+b) tanh(Wz+b)得到 [ 0.12 , 0.25 , 0.8 ] T [0.12, 0.25, 0.8]^T [0.12,0.25,0.8]T,然后乘以可学习的参数 q T = [ 0.5 , 1.2 , 0.8 ] q^T=[0.5, 1.2, 0.8] qT=[0.5,1.2,0.8]得到这个1节点的标量 q T ⋅ z 1 Φ 0 = 0.73 q^T \cdot z_1^{\Phi_0}=0.73 qTz1Φ0=0.73, 同理得到2节点的标量 − 0.5 -0.5 0.5,然后求和取平均 W Φ 0 = a v g ( 0.73 + ( − 0.5 ) ) W_{\Phi_0}=avg(0.73+(-0.5)) WΦ0=avg(0.73+(0.5)),这个得到的 W Φ 0 W_{\Phi_0} WΦ0就是Meta-path Φ 0 \Phi_0 Φ0所对应到的attention的值。
2. 公式八:将所有的Meta-path进行计算得到 W Φ 0 , W Φ 1 , W Φ 2 . . . W_{\Phi_0},W_{\Phi_1},W_{\Phi_2}... WΦ0,WΦ1,WΦ2...,然后进行softmax操作进行归一化
3. 公式九:将节点与上述的softmax结果进行加权求和,得到节点最终对应的embedding。即: Z 1 = β Φ 0 Z 1 Φ 0 + β Φ 1 Z 1 Φ 1 Z^1=\beta_{\Phi_0}Z_1^{\Phi_0} + \beta_{\Phi_1}Z_1^{\Phi_1} Z1=βΦ0Z1Φ0+βΦ1Z1Φ1

在这里插入图片描述

  • 6
    点赞
  • 35
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值