异构图 Heterogeneous Graph Neural Networks

定义:包含不同类型节点和链接的异构图
像下面这个例子,是一个电影、导演和演员的异构图。
在这里插入图片描述
第一个异构图的算法

异构图图注意力机制Heterogeneous Graph Attention Networks

首先看一下作者给的异构图的定义

在这里插入图片描述

在这里插入图片描述Node-level attention(节点级别的attention)
通过meta-path:Movie-Director-Movie得到一个同构图,根据终结者的邻居节点(终结者2和泰坦尼克号)通过一种聚合的方式就可以学习到终结者的一个特征表示。这个就是节点级别的attention。
Semantic-level attention(语义级别的attention)
终结者电影有两个meta-path,将这两个特征做一个加权求和,就得到了终结者电影的最终特征表示。这样加权求和的方式,就叫作语义级别的attention。对不同的meta-path对应的邻居分配不同的权重。
在这里插入图片描述
下面介绍一下节点特征的attention和语义级别的attention具体的算法
蓝色节点是一类,黄色节点是一类。meat-path定义为蓝–黄--蓝。
通过meta-path得到下面的第二个图,得到这个第二个图后可求得节点级别的attention。
第一步,将节点映射到同一个维度,也就是说如果1节点和2节点不是同一个维度,通过投影函数
在这里插入图片描述

将这两个节点映射到同一个维度。
这个图中节点特征数量都是一致的,所以不需要做这一步。当然这一步也不是算法的主要流程。

下面介绍一下算法流程:
第一步,求节点i和节点j的attention值,输入的是节点i和j相连接,φ表示meta-path。我们现在要求1节点周围的邻居节点,1节点和2节点是有边连接的,现在要求e12的attention值,首先要将1节点和2节点的特征输入到这个函数中,attnode表示的是一个网络。
1节点本身也是1节点的邻居。

第二步,对这些得到的attention值做一个归一化的操作,得到归一化之后的attention系数,分母是该节点邻居节点做的操作。我们可以看到这跟GAT是一样的。

第三步,将这个节点的attention系数aij和这个节点的周围邻居做一个加权求和,再经过一个激活函数,就得到这个节点所对应的一个特征表示。

同样的方式可求得其他节点对应的特征,全部节点求得特征后,就得到了φ0这个meta-path下每一个节点对应的特征。
可能有多个meta-path,同理求得φ1下每个节点对应的特征。
在这里插入图片描述下面介绍一下语义级别的attention
第一步,选择了一个meta-path下的所有节点,比如选择橙色φ0下的所有节点,每个节点经过一个全连接层,然后经过一个激活函数,然后乘以一个可学习的参数q,这样就得到了这个节点在这个meta-path下所对应的标量。对所有的节点做同样的操作,然后加权求和,最后除以节点数量,这样就得到了在φ0这个meta-path下所对应的系数。
第二步,做一个softmax操作,进行归一化。
第三步,将节点做一个加权求和,最终得到了这个节点的embedding。

在这里插入图片描述

在这里插入图片描述
实验结果
在这里插入图片描述在这里插入图片描述

  • 9
    点赞
  • 65
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值