今天学习的是北京邮电大学石川老师组的论文《Heterogeneous Graph Attention Network》,发表于 WWW 2019。
石川老师作为异构信息网络领域的青年学者,作出了很多关于异构网络的重要研究工作。
本文提出了一种基于分层注意力的异构图神经网络,包括节点级注意力和语义级注意力。其中,节点级注意力的目的是学习节点与元路径上的邻居之间重要性,而语义级注意力的目的在于学习不同元路径的重要性。通过这两种注意力的学习可以充分考虑节点和元路径的重要性,然后基于元路径的的相邻节点的特征进行分层聚合,从而生成节点的 Embedding。
元路径可以表示连接着的两个对象的复合关系,被广泛用于捕获语义的方法。我们以下图 IMDB 数据集为例:
IMDB 数据集中包括了演员、电影和导演三种不同类型的节点(a),三者组成了一种拥有两种关系的异构网路图(b),在这个网络中我们可以获取两种元路径,包括可以反映共同出演关系的 Movie-Actor-Movie(MAM)和同一个导演关系的 Movie-Director-Movie(MDM)。我们可以看到,每个元路径都具有着不同的语义。所以如果直接将传统的 GNN 应用于异构网络图的话会损失大量的信息。
基于以上分析,在设计异构神经网络时我们需要解决以下几种问题:
针对以上问题,作者提出了异构图注意力网络(Heterogeneous graph Attention Network,以下简称 HAN)同时考虑了语义级注意力和节点级注意力。其大致流程如下:
接下来,我们来看具体的模型实现。
首先是模型架构:
可以看到,模型分为三大部分:Node-Level Attention、Semantic-Level Attention 和 Prediction。
我们先来看节点级注意力。
由于节点的异构特点,不同节点都具有不同的特征空间。因此,作者设计了一个特定类型的转换矩阵将不同类型的节点的特征映射到相同的特征空间中:
这便使得节点级注意力可以处理任意类型的节点。
接着,作者利用 self-attention 去学习不同节点间的权重。给定元路径 上的节点对 (i,j),节点级注意力分数为:
其中, 为计算节点级注意力的深度神经网络。对于给定元路径 ,其路径上的所有节点共享 。
值得注意的是, 是非对称的,这也是异构网络的一大特点。
然后与 GAT 类似,利用 masked attention 为模型提供结构信息,然后得到当前节点 j 与其邻居节点的归一化后的注意力系数:
其中, 为 concat 操作, 为元路径 下节点级注意力向量。注意,这里的权重系数也是非对称的。
然后便可以得到元路径 下节点 Embedding:
当然,为了模型的稳定性,作者使用了使用 multi-head 机制,即重复节点级注意力 K 次,并将所学到的 Embedding 进行连接:
给定元路径集合 ,我们可以得到 P 组特定语义的 Embedding 。
我们再来看语义级别的注意力。
经过节点级注意力,我们可以得到节点多种类型的语义信息。语义级注意力的目的在于将这些不同语义信息进行融合。
我们将 P 组特定语义的 Embedding 作为输入,根据不同任务可以得到不同权重:
其中, 为计算语义级注意力的深度神经网络。
为了计算每一个元路径的重要性,我们首先使用一个线性转换(如:一层 MLP)来转换特点语义的 embedding。然后将学到的特定语义的 embedding 的重要性为语义级注意向量 q 转置的 Embedding 相似度:
其中, 和 分别为权重矩阵和偏置向量, 为语义级注意力向量。这些参数对所有的元路径都是共享的。
然后我们进行归一化:
加权后得到最终的 Embedding 向量 Z:
为了更好的了解聚合过程,我们看下图 (b) 部分:
我们可以利用最终得到的 Embedding 来应用于到其他任务中。比如说半监督学习的节点分类任务,我们会最小化交叉熵损失函数:
其中,C 为分类器的参数, 为有标签的节点的索引, 为有标签的节点的标签, 为有标签的节点的 embedding。
HAN 的整体过程如下所示:
分析下模型。
HAN 可以处理异构网络中多类型节点、关系和丰富的语义信息,信息可以通过不同的关系从一种节点转移到另一种节点。利用 HAN 可以使得不同类型的节点 Embedding 进行相互融合、相互促进和相互升级;
HAN 高效且易于实现,注意力的计算可以基于节点和元路径进行并行计算。对于给定的元路径 ,节点级注意力的时间复杂度为 ,其中 K 表示 attention head 的数量, 表示节点数量, 为基于元路径的节点对的数量, 分别是转换矩阵的行数和列数。总的复杂度与节点数量和基于元路径的节点对的数量呈线性关系;
整个模型的 Attention 是共享的,因此参数的数量不取决于异构图的规模,能够应用于 Inductive 的问题;
该模型对于学习节点 embedding 具有很好的可解释性。基于注意力分数,可以查看哪些节点或元路径对相关任务的贡献度,有助于分析和解释实验结果。
简单看下实验部分。
首先是数据集:
不同模型在不同数据集和评价指标下的结果, 移除了节点级注意力,节点邻居具有同样的重要性; 移除了语义级注意力,每个元路径都具有相同的重要性, 是完整的模型。
聚类结果分析:
节点级注意力分析,可以看到相同类型的节点分数更高:
语义级注意力分析,NMI 为聚类结果,可以反映元路径的重要性,可以 NMI 较大的其注意力分数也更大:
可视化结果:
参数敏感性分析:
本篇文章针对异构图网络进行分析,指出了异构网络建模的三大难点,在此基础上提出了异构图注意力网络 HAN,该算法利用节点级注意力和语义级注意力分别捕获异构网络背后复杂的结构和丰富的语义信息,并在诸多数据集和任务中取得了不错的成绩。
推荐阅读
模型压缩实践系列之——bert-of-theseus,一个非常亲民的bert压缩方法
征稿启示| 200元稿费+5000DBC(价值20个小时GPU算力)
文本自动摘要任务的“不完全”心得总结番外篇——submodular函数优化
斯坦福大学NLP组Python深度学习自然语言处理工具Stanza试用
关于AINLP
AINLP 是一个有趣有AI的自然语言处理社区,专注于 AI、NLP、机器学习、深度学习、推荐算法等相关技术的分享,主题包括文本摘要、智能问答、聊天机器人、机器翻译、自动生成、知识图谱、预训练模型、推荐系统、计算广告、招聘信息、求职经验分享等,欢迎关注!加技术交流群请添加AINLPer(id:ainlper),备注工作/研究方向+加群目的。
阅读至此了,分享、点赞、在看三选一吧🙏