本发明涉及异构图节点嵌入技术领域,具体涉及一种基于自编码和注意力机制的异构图节点特征嵌入方法。
背景技术:
图,现实应用中实体间最为直接的数据表示。但其规模大、维度高,难以应用,图嵌入技术及图神经网络的发展使得这一问题得到解决。虽现有关图嵌入技术足以将高纬数据压缩至低纬,但仍面对如下问题:
1)多是对完整图或图中全部节点进行嵌入表示,无法对图中部分节点进行嵌入表示
2)多是对同构图进行嵌入表示,异构图相关的表示方法相对较少。
技术实现要素:
本发明为了克服以上技术的不足,提供了一种可处理范围广、最终结果更具可表示性的基于自编码和注意力机制的异构图节点特征嵌入方法。
本发明克服其技术问题所采用的技术方案是:
一种基于自编码和注意力机制的异构图节点特征嵌入方法,包括:
a)构建异构图,异构图由若干主节点及若干从节点构成,主节点含有一种类型,从节点含有多个子类型,若干主节点间相互关联构成关联关系,主节点与从节点之间关联构成包含关系;
b)聚合主节点所含从节点特征;
c)遍历当前主节点所包含关系,取一个主节点所构成包含关系的所有从节点的节点特征;
d)重复步骤b)和步骤c),直至遍历异构图中所有主节点所包含关系,保存主节点原特征为featrmain,对所有主节点特征进行更新,得到其初步表示;
e)通过主节点间关联关系,以图注意力神经网络gat为融合器,采用selu激活函数,结合注意力机制融合主节点自身及其一阶邻居节点的特征信息,对所有主节点特征进行更新,得到主节点嵌入表示;
f)对主节点反向聚合得到从节点特征;
g)计算步骤f)中所有从节点特征与步骤b)中所有从节点特征的相似度;
h)重复步骤b)至步骤g)大于等于n次,将步骤e)中的嵌入表示作为异构图中主节点的最终嵌入表示。
进一步的,步骤b)中通过公式
进一步的,步骤c)中通过公式
进一步的,步骤d)中通过赋值操作,将所有主节点featmain进行更新,得到其初步表示。
进一步的,步骤e)中通过赋值操作,将所有主节点featmain进行更新,得到主节点嵌入表示。
进一步的,步骤f)中通过公式
进一步的,步骤g)中通过公式loss=smoothl1(featnsub,featsub)计算得到反向集合后的所有从节点特征featnsub和所有从节点原始特征featsub的相似度差值loss,smoothl1(.)为smoothl1损失函数。
优选的,n取值为100。
本发明的有益效果是:建立在由主、从节点及对应关系构建的异构图上。主节点关联主节点,主节点包含从节点。通过包含关系,聚合从节点特征,编码至主节点。后通过关联关系,融合主节点周围邻居特征得到主节点嵌入表示。再通过包含关系,将含有邻居特征的主节点解码至从节点,最后通过计算编码前从节点与解码后从节点相似度来判断主节点嵌入表示的好坏。异构图中实现节点嵌入,较其他方法而言,一是从图数据结构角度,可处理范围更广,由同构图转向异构图;二是通过聚合-融合-反向聚合的操作,通过传递不同类型节点的特征信息,使得最终结果更具可表示性。
附图说明
图1为异构图主从节点关系示意图
图2为本发明的方法流程图。
具体实施方式
下面结合附图1、附图2对本发明做进一步说明。
一种基于自编码和注意力机制的异构图节点特征嵌入方法,包括:
a)如附图1所示,构建异构图,异构图由若干主节点及若干从节点构成,主节点有且只有一种类型,从节点含有多个子类型,是无孤立点的简单图。若干主节点间相互关联构成关联关系,主节点与从节点之间关联构成包含关系。即主节点包含从节点,从节点间无相互关联。
b)聚合主节点所含从节点特征。
c)遍历当前主节点所包含关系,取一个主节点所构成包含关系的所有从节点的节点特征。
d)重复步骤b)和步骤c),直至遍历异构图中所有主节点所包含关系,保存主节点原特征为featrmain,对所有主节点特征进行更新,得到其初步表示。
e)通过主节点间关联关系,以图注意力神经网络gat为融合器,采用selu激活函数,结合注意力机制融合主节点自身及其一阶邻居节点的特征信息,对所有主节点特征进行更新,得到主节点嵌入表示。
f)对主节点反向聚合得到从节点特征。
g)计算步骤f)中所有从节点特征与步骤b)中所有从节点特征的相似度。
h)重复步骤b)至步骤g)大于等于n次,将步骤e)中的嵌入表示作为异构图中主节点的最终嵌入表示。
建立在由主、从节点及对应关系构建的异构图上。主节点关联主节点,主节点包含从节点。通过包含关系,聚合从节点特征,编码至主节点。后通过关联关系,融合主节点周围邻居特征得到主节点嵌入表示。再通过包含关系,将含有邻居特征的主节点解码至从节点,最后通过计算编码前从节点与解码后从节点相似度来判断主节点嵌入表示的好坏。异构图中实现节点嵌入,较其他方法而言,一是从图数据结构角度,可处理范围更广,由同构图转向异构图;二是通过聚合-融合-反向聚合的操作,通过传递不同类型节点的特征信息,使得最终结果更具可表示性。
实施例1:
步骤b)中通过公式
实施例2:
步骤c)中通过公式
实施例3:
步骤d)中通过赋值操作,将所有主节点featmain进行更新,得到其初步表示。
实施例4:
步骤e)中通过赋值操作,将所有主节点featmain进行更新,得到主节点嵌入表示。
实施例5:
步骤f)中通过公式
实施例6:
步骤g)中通过公式loss=smoothl1(featnsub,featsub)计算得到反向集合后的所有从节点特征featnsub和所有从节点原始特征featsub的相似度差值loss,smoothl1(.)为smoothl1损失函数。
实施例7:
n取值为100。