HAN:Heterogeneous Graph Attention Network 算法理论

HAN:Heterogeneous Graph Attention Network

前置知识:

  • 异构图:包含不同类型节点和链接的异构图

  • Meta-path 元路径: 链接两个对象的复合关系,是一种广泛适用的捕获语义的结构 M-A-M,M-D-M
    在这里插入图片描述

    • Meta-path下的邻居节点 m1-a1-m2,m1-a3-m3,m1-a1-m1 因此m1的邻居节点如d图

HAN算法原理

  • 节点级别的Attention

    • 终结者通过詹姆斯卡梅隆与终结者2形成连接关系,终结者通过詹姆斯卡梅隆与泰坦尼克号形成连接关系,形成同构图
    • 根据它的邻居节点终结者2和泰坦尼克号,通过一种聚合方式,可以学习到终结者的特征表示
  • 语义级别的Attention:旨在了解每个元路径的重要性,并为其分配适当的权重

    • 通过不同的Meta-path得到了终结者电影所对应的一个节点特征,然后将两个特征进行特征求和
    • 不同类型的邻居分配不同的权重,最终得到终结者所对应的一个节点的特征表示
      [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-oxrGxkBe-1647244471514)(img/HAN4.png)]

节点级别的Attention 具体算法

![](https://img-blog.csdnimg.cn/380de640d0914e38a481582220261568.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAQW5kcmVfSmFu,size_11,color_FFFFFF,t_70,g_se,x_16

  • 当节点处在不同维度(节点特征数量不一致时)时,先将节点映射到同一个维度
    • h i ′ = M ϕ i ⋅ h i h'_i = M_{\phi_i}·h_i hi=Mϕihi(1)
  • 之后进行
    • e i j ϕ = a t t n o d e ( h i ′ , h j ′ , ϕ ) e^\phi_{ij} = att_{node}(h'_i,h'_j,\phi) eijϕ=attnode(hi,hj,ϕ)
      • ϕ \phi ϕ表示Meta-path, a t t n o d e att_{node} attnode将 i和j 输入后 得到他们之间的attention的值
      • 1节点的周围邻居为 e 11 ϕ 0 , e 12 ϕ 0 , e 13 ϕ 0 , e 16 ϕ 0 e^{\phi_0}_{11},e^{\phi_0}_{12},e^{\phi_0}_{13},e^{\phi_0}_{16} e11ϕ0,e12ϕ0,e13ϕ0,e16ϕ0
    • a i j ϕ = s o f t m a x j ( e i j ϕ ) a^\phi_{ij}= softmax_j(e^\phi_{ij}) aijϕ=softmaxj(eijϕ) :对其做归一化操作,得到归一化之后的一个attention系数
    • Z i ϕ Z^\phi_i Ziϕ :将attention的系数与他的邻居做一个加权求和,再经过一个激活函数,得到节点所对应的特征表示
    • 如1节点的 : z 1 ϕ 0 = ( α 11 ϕ 0 ∗ e 11 ϕ 0 + … ) z^{\phi_0}_1 = (\alpha^{\phi_0}_{11}* e^{\phi_0}_{11}+…) z1ϕ0=(α11ϕ0e11ϕ0+)
    • 求得所有节点不同类型的Meta-path下的embedding结果
      • Z ϕ 0 Z_{\phi_0} Zϕ0 = { z 1 ϕ 0 , z 2 ϕ 0 , z 3 ϕ 0 . . . z^{\phi_0}_1,z^{\phi_0}_2,z^{\phi_0}_3... z1ϕ0,z2ϕ0,z3ϕ0...}
      • Z ϕ 1 Z_{\phi_1} Zϕ1 = { z 1 ϕ 1 , z 2 ϕ 1 , z 3 ϕ 1 . . . z^{\phi_1}_1,z^{\phi_1}_2,z^{\phi_1}_3... z1ϕ1,z2ϕ1,z3ϕ1...}

语义级别的attention

  • 根据之前的公式 求得两种Meta-path所对应的embedding

    • Z ϕ 0 Z_{\phi_0} Zϕ0 = { z 1 ϕ 0 , z 2 ϕ 0 , z 3 ϕ 0 . . . z^{\phi_0}_1,z^{\phi_0}_2,z^{\phi_0}_3... z1ϕ0,z2ϕ0,z3ϕ0...} Z ϕ 1 Z_{\phi_1} Zϕ1 = { z 1 ϕ 1 , z 2 ϕ 1 , z 3 ϕ 1 . . . z^{\phi_1}_1,z^{\phi_1}_2,z^{\phi_1}_3... z1ϕ1,z2ϕ1,z3ϕ1...}
    • 经过一个全连接层W· z i ϕ z^\phi_i ziϕ+b,然后经过一个激活函数tanh,再乘以一个可学习参数q,得到节点在该Meta-path下的一个标量
    • 然后对所有的节点做一个加权求和再除以节点数量
    • 就能得到在 ϕ i \phi_i ϕi这个Meta-path下的对应的系数
  • 示例

    • 再将所有通过同种的Meta-path的 W ϕ i W\phi_i Wϕi进行一个softmax操作,进行归一化
    • 最后将起进行加权求和,得到节点最终所要求的embedding
      -

HAN整体的算法流程

在这里插入图片描述

  • 输入:异构图,初始节点特征,事先规定的meta-path,多头注意力数量 K
  • 输出:每一个节点最终的embedding Z,节点级别的attention系数 α, 语义级别的attention系数 β
  • 首先,遍历每个Meta-path
    • 遍历每一个注意力
      • 进行投影,将节点放到同一个维度
      • 然后遍历每一个节点
        • 找到节点所对应的Meta-path下的邻居节点
        • 遍历每一个邻居节点
          • 对每个找到的邻居节点根据GAT的方式,求得该节点与其每个邻居节点的attention系数 α i j ϕ α^\phi_{ij} αijϕ
        • 根据邻居节点,对其进行加权求和,得到该Meta-path下所对应的embedding
      • 如果是多头注意力K≥2,将每个计算到的embedding进行一个拼接
    • 然后计算语义级别的attention β ϕ i β_{\phi_i} βϕi
    • 对所有Meta-path下的 β ϕ i β_{\phi_i} βϕi进行加权求和得到节点最终的特征表示Z
  • 根据 Cross-Entropy 用节点的特征和其所属类别,求得一个损失函数
  • 然后进行反向传播,学习HAN所对应的参数
  • 然后得出 Z,α,β

数据集

引文网络:DBLP、ACM

电影数据集:IMDB

实验结果对比

在这里插入图片描述

  • Deepwalk主要应用于同构图上,因此忽略了图的异构性
  • 先采用Meta-path的方式,将异构图转换成同构图,再采用GCN、GAT的方式去求
  • HANnd,表示去除节点的attention,将节点的attention都当做是同一个值,将每个节点和其邻居都赋予相同的权重
  • HANsem表示去除Meta-path下的权重,基于每个Meta-path都是相同的权重(在上图转换过程中的tanh(W*Z+b) )

分析Attention的重要性

  • HAN的一个显著特性是结合了层次机制,在学习代表性前如何考虑了节点邻居和元路径的重要性
  • 节点级别
    • 图中同颜色的节点所属同一类别,相同类别的attention相对于不同类别的会比较高
  • 语义级别
    • NMI表示聚类的评价指标,NMI指标越高 ,Meta-path重要性就越高
  • 6
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值