异构图神经网络(1)Heterogenous Graph Attention Networks

Heterogenous Graph Attention Networks 这篇文章发表在WWW 2019会议上,主要是用了注意力机制来进行节点级别聚合和语义级别的聚合,从而提出了HAN模型。

Motivation

异构性和丰富的语义学信息对构建一个适用于异构图的图神经网络带来了挑战。目前虽然自注意力机制取得了很大的进步,但还没有将其应用于对异构图的建模。

Introduction

构建一个适用于异构图的带有注意力机制的图神经网络需要以下要求:

  • 异构图与生俱来的异构特性,图中有多种类型的节点和边,不同类型的节点具有不同的属性。如actor具有sex、age和nationality,而movie则没有;
  • Semantic-level attention(语义级别注意力):这里有一个概念叫meta-path,元路径,描述了节点类型 V 1 V_1 V1 V ( l + 1 ) V_{(l+1)} V(l+1)之间的一个组合关系,后面会详细解释。不同的元路径会提取到不同的语义信息。Semantic-level attention的目的是学习到每个meta-path的importance,并赋予权值;
  • Node-level attention(节点级别注意力):每个节点很多个meta-path based neighbors,Node-level attention的目的是学习到每个邻居的权值。

Preliminary

G = ( V , E ) V : o b j e c t   s e t ;   E : l i n k   s e t ; Φ : n o d e   t y p e   m a p p i n g   f u n c t i o n   ; φ : l i n k   t y p e   m a p p i n g   f u n c t i o n   ; \begin{aligned} &G=(V,\mathcal{E})\\ &V:object {\,} set ; {\,}\\ &\mathcal{E}:link {\,}set;\\ &\Phi:node {\,}type {\,}mapping {\,}function{\,};\\ &\varphi: link {\,}type {\,}mapping {\,}function{\,};\\ \end{aligned} G=(V,E)V:objectset;E:linkset;Φ:nodetypemappingfunction;φ:linktypemappingfunction;
元路径(meta-path):
A 1 → R 1 A 2 → R 2 … → R l A ( l + 1 ) A_1 \stackrel{R_1}{\rightarrow}A_2 \stackrel{R_2}{\rightarrow}\ldots\stackrel{R_{l}}{\rightarrow}A_{(l+1)} A1R1A2R2RlA(l+1)
表示组合关系: R = R 1 ∘ R 2 ∘ … ∘ R l R=R_1\circ R_2 \circ \ldots\circ R_l R=R1R2Rl,比如两个电影之间的关系,MAM,表示movie-actor-movie,两个电影都有同一个演员;MDM,表示movie-director-movie,两个电影是同一个导演。

Model

在这里插入图片描述

Node-level Attention

首先,由于不同的节点有不同维度的属性,所以需要将节点的特征映射到同一个空间。
ϕ i \phi_i ϕi表示节点 v i v_i vi的类别,对于该类别,有转换矩阵 M ϕ i M_{\phi_i} Mϕi,映射过程为:
h i ′ = M ϕ i ⋅ h i h_i'=M_{\phi_i}·h_i hi=Mϕihi
得到所有节点的映射特征后,下面就是计算节点 v i v_i vi与其邻居节点的之间的attention。
假设给定节点对$(i,j),其通过meta-path Φ \Phi Φ相连接(或者说可以认为节点 j j j是节点 i i i关于meta-path Φ \Phi Φ的邻居节点),那么节点 i i i j j j之间的重要性计算为:
e i j Φ = a t t n o d e ( h i ′ , h ; Φ ) e_{ij}^\Phi=att_{node}(h_i',h;\Phi) eijΦ=attnode(hi,h;Φ)
作者认为,节点 i i i和节点 j j j之间的重要性与节点 j j j和节点 i i i之间的重要性完全不同,也就是 e i j Φ e_{ij}^\Phi eijΦ非对称的。
在得到 e i j Φ e_{ij}^\Phi eijΦ后,对其进行softmax运算,得到 a i j Φ a_{ij}^\Phi aijΦ
从而得到节点 i i i关于meta-path Φ \Phi Φ的嵌入表示:
z i Φ = σ ( ∑ i ∈ N i Φ α i j Φ ⋅ h j ′ ) z_i^\Phi=\sigma(\sum_{i∈N_i^\Phi}\alpha_{ij}^\Phi·h_j') ziΦ=σ(iNiΦαijΦhj)
论文中也提到了multihead attention来计算node-level的注意力。

Semantic-level Attention

( β Φ 0 , β Φ 1 , … , β Φ P ) = a t t s e m ( Z Φ 0 , Z Φ 1 , … , Z Φ P ) (\beta_{\Phi_0},\beta_{\Phi_1},\ldots,\beta_{\Phi_P})=att_{sem}(Z_{\Phi_0},Z_{\Phi_1},\ldots,Z_{\Phi_P}) (βΦ0,βΦ1,,βΦP)=attsem(ZΦ0,ZΦ1,,ZΦP)
β Φ i \beta_{\Phi_i} βΦi表示第 i i i个meta-path的权重,计算过程如论文的(7)(8)所示,首先将节点i关于meta-path Φ \Phi Φ的嵌入表示经过一层MLP处理,然后计算与语义层注意力向量 q T q^T qT的相似度,最后做softmax。
得到各个meta-path的权重后,进行加权求和,就得到了综合每个meta-path的embedding后的最终表示:
Z = ∑ i = 1 P β Φ i ⋅ Z Φ i Z=\sum_{i=1}^P\beta_{\Phi_i}·Z_{\Phi_i} Z=i=1PβΦiZΦi
(但我觉得这里的 Z Z Z是不是写成 Z i Z_i Zi更合适些)
下图的解释更清楚。
在这里插入图片描述

  • 6
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
heterogeneous graph neural network,即异构神经网络,是一种可以处理不同类型节点和边的神经网络模型。复现这个模型需要掌握神经网络的基本原理和异构的数据结构。 首先,需要构建一个异构数据集,包含不同类型的节点和边,并且节点和边都需要具有特定的属性。然后,可以使用PyTorch或TensorFlow等深度学习框架来实现异构神经网络。 具体来说,异构神经网络的实现步骤包括: 1. 定义节点嵌入(node embedding)和边嵌入(edge embedding)的方式:例如使用线性变换或卷积操作来从节点或边的属性中提取特征。 2. 实现消息传递(message passing)算法:这个算法可以让节点之间互相传递信息,更新自身的状态,并且可以在不同的节点之间共享信息。 3. 定义聚合函数(aggregation function):在不同的节点之间传递信息之后,需要将这些信息进行聚合。这个聚合函数可以是一个简单的平均池化操作,也可以是具有不同权重的加权求和操作。 4. 设计目标函数(objective function):这个函数用来度量模型的表现,例如使用交叉熵损失函数来进行分类任务。 在实现异构神经网络的过程中,需要注意一些细节问题:例如如何处理不同类型节点之间的关联、如何对不同类型节点和边进行嵌入以及如何选择合适的聚合函数。对于这些问题,可以参考相关的研究论文和代码实现,并且需要多次实验和调参来得到最佳的模型效果。 总之,异构神经网络的复现需要深刻理解神经网络的原理和异构的数据结构,并且需要有一定的编程经验和实践能力。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值