异构图HAN

本文解析了异构图的基本概念,介绍了Heterogeneous Graph Attention Network(HAN)的两个关键步骤——节点级别注意力和语义级别注意力,通过实例说明了如何通过Meta-path捕捉节点间的关系并生成嵌入。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

异构图:节点类别的数量加边的类别的数量大于等于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. 公式二:eijΦ=attnode(hi′,hj′;Φ)e_{ij}^\Phi=att_{node}(h_i^\prime,h_j^\prime;\Phi)eijΦ=attnode(hi,hj;Φ)表示连接节点与节点之间的特征值,其中Φ\PhiΦ表示在这个Meta-path下。在图中表示1节点与周围的邻居节点的特征,也就是求e11Φ0e_{11}^{\Phi _0}e11Φ0e12Φ0e_{12}^{\Phi _0}e12Φ0e13Φ0e_{13}^{\Phi _0}e13Φ0e16Φ0e_{16}^{\Phi _0}e16Φ0
  2. 公式三:对上面求得的e11Φ0e_{11}^{\Phi _0}e11Φ0e12Φ0e_{12}^{\Phi _0}e12Φ0e13Φ0e_{13}^{\Phi _0}e13Φ0e16Φ0e_{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节点的特征表示。 即z1Φ0=σ(α11Φ0⋅x10+α12Φ0⋅x20+α13Φ0⋅x30+α16Φ0⋅x60)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Φ={z1Φ0,z2Φ0,z3Φ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⋅ziΦ0+bW \cdot z_i^{\Phi_0} +bWziΦ0+b,然后经过激活函数tanhtanhtanh,然后乘以一个可学习的参数qTq^TqT,这样就得到每一个节点在Meta-pathΦ0\Phi_0Φ0下的一个标量,然后对所有节点进行加权求和,并除以节点数量。得到在Φ0\Phi_0Φ0这个Meta-path下的对应的一个系数wΦ0w_{\Phi_0}wΦ0

举例:在Φ0\Phi_0Φ0下,1节点的特征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]Tz_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]^Tz1Φ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 ,将z1Φ0z_1^{\Phi_0}z1Φ0经过tanh(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,然后乘以可学习的参数qT=[0.5,1.2,0.8]q^T=[0.5, 1.2, 0.8]qT=[0.5,1.2,0.8]得到这个1节点的标量qT⋅z1Φ0=0.73q^T \cdot z_1^{\Phi_0}=0.73qTz1Φ0=0.73, 同理得到2节点的标量−0.5-0.50.5,然后求和取平均WΦ0=avg(0.73+(−0.5))W_{\Phi_0}=avg(0.73+(-0.5))WΦ0=avg(0.73+(0.5)),这个得到的WΦ0W_{\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。即:Z1=βΦ0Z1Φ0+βΦ1Z1Φ1Z^1=\beta_{\Phi_0}Z_1^{\Phi_0} + \beta_{\Phi_1}Z_1^{\Phi_1}Z1=βΦ0Z1Φ0+βΦ1Z1Φ1

在这里插入图片描述

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值