Xiao Wang, Houye Ji, Chuan Shi, Bai Wang, Yanfang Ye, Peng Cui, and Philip S Yu. 2019. Heterogeneous Graph Attention Network. In The World Wide Web Conference (WWW '19). Association for Computing Machinery, New York, NY, USA, 2022–2032. DOI:https://doi.org/10.1145/3308558.3313562
在这篇文章中提出了异构图注意力网络,非常有意思,特此记录一下。
论文的整体idea是:给定多个元路径,我们先学习每个源路径下节点的embedding,然后将多个元路径下节点的embedding结合起来,作为节点最终的表示。
因此论文研究的点有两个:
- 给定一个元路径,我们怎么学习节点在这个元路径条件下的表示。
- 如何将多个元路径下节点的embedding结合起来。
我们先来说第一点:
-
先进行数据的预处理,因为我们初始拿到的图上各个节点的表示维度可能不同,我们首先将整个图上节点的表示统一到一个维度:
h i ′ = M ϕ i ∗ h i h_i^{'}=M_{ϕ_i}*h_i hi′=Mϕi∗hi -
对于我们要计算表示的节点 i i i,我们先根据给定的元路径找到其邻节点们 N i ϕ N_i^ϕ Niϕ。
-
对于每一个邻节点 j j j,我们计算节点 j j j对节点 i i i的注意力:
-
在此之后,我们使用邻节点们的embedding乘以相应的权重来更新节点 i i i的表示:
第二点:怎么将各个元路径下节点的embedding结合起来
在这个过程之后,我们就得到了在元路径 Φ Φ Φ下节点的表示,我们记作 Z Φ Z_Φ ZΦ。给定 P P P个元路径,我们就得到了节点的 P P P个表示,记作 { Z Φ 0 , Z Φ 1 , . . . , Z Φ P } . \{Z_{Φ_0},Z_{Φ_1},...,Z_{Φ_P}\}. { ZΦ0,ZΦ1,...,ZΦP}.
我们的目标是为每个元路径 Φ Φ Φ学习一个权重 β \beta β,我们最终得到的节点的embedding就是 ∑ i P ( β i ∗ Z Φ i ) \sum_{i}^P(\beta_i*Z_{Φ_i}) ∑iP(βi∗ZΦi)。
我们从每个元路径下节点的表示学习出权重:
其中 q , W , b q,W,b q,W,b都是我们要learn到的内容,然后归一化得到权重:
之后,我们根据不同的任务设计损失函数,并逐步优化参数得到节点的embedding。