1.一种基于多视图融合异质图神经网络的社交推荐方法,其特征在于,包括如下步骤:步骤1、获取社交网络中用户与商品之间的关系,根据用户与商品之间是否存在链接关系建立异质图;
步骤2、建立节点视图中的属性拓扑解耦模块,将建立的矩阵输入属性拓扑解耦模块,进行特征和拓扑解耦编码,得到节点视图下的节点嵌入表示;
步骤3、建立网络模式视图中的节点编码模块,进行节点编码,得到网络模式视图下的节点嵌入表示;
步骤4、建立语义视图中的语义融合模块,进行语义融合,得到语义视图下的节点嵌入表示;
步骤5、进行多视角节点表示的融合策略,利用拼接策略融合社交网络不同粒度的信息,得到用户信息的向量表示,进行个性化的推荐;
所述步骤1的具体过程为:建立的异质图用矩阵A表示, n代表用户节点总数,对应矩阵的总行数; 表示商品节点总数,对应矩阵的总列数;矩阵的行代表用户节点,列代表商品节点,如果第a个用户节点和第b个商品节点之间存在链接,则矩阵的第a行第b列的值设为1,否则为0;
所述步骤2的具体过程为:
步骤2.1、将矩阵A输入属性拓扑解耦模块,对于一个类型为φi的用户节点i,通过映射矩阵 把用户节点i的属性特征Xi投影到公共的维度区间,具体如下:其中, 是用户节点i的投影特征,d为维度;σ(·)是激活函数; 代表矢量偏置;
步骤2.2、把用户节点i的投影特征Hi和拓扑结构Ai通过多层感知机编码到公共的维度区间,具体如下:Zi,feat=σ(MLP(Hi)) (2);
Zi,topo=σ(MLP(Ai)) (3);
其中,Zi,feat是编码后的用户节点i的属性信息表示;Zi,topo是编码后的用户节点i的拓扑信息表示;MLP(·)是多层感知机;
步骤2.3、将两个编码后的表示拼接起来,再通过多层感知机和激活函数将用户和商品的属性信息映射到共享维度,最终得到节点视图下用户节点i的嵌入表示 具体如下:其中,||表示拼接操作;
所述步骤3的具体过程为:
设用户节点i与其它类型的的节点{Φ1,Φ2,…,Φm,…,ΦS}相连,Φ1、Φ2、Φm、ΦS表示不同的节点类型;
将节点级注意力应用于Φm类型的周围邻居中:
其中, 是用户节点i连接的类型为Φm的邻居节点嵌入表示; 为用户节点i连接的类型为Φm的邻居节点;hj是邻居节点j的投影特征;
为类型为Φm的邻居节点j对用户节点i的注意力,计算如下:其中,exp(·)为以自然常数e为底的指数函数;leakReLu(·)是激活函数;
是类型为Φm的节点级注意力向量;T为转置符号;hi为用户节点i的信息;
∥为拼接符号;
根据公式(5),得到用户节点i连接的所有不同类型的邻居节点嵌入表示利用类型级别的注意力将所有不同类型的邻居节点嵌入表示融合在一起,以获得网络模式视图下用户节点i的嵌入表示 公式如下:其中,S为类型总数,m为类型索引;
所述步骤4的具体过程为:
步骤4.1、通过语义知识,将原始社交网络划分为不同的图结构,将建模的图数据分解为不同的子模块以学习不同的语义信息;通过图级注意力融合不同语义来作为整合后的社交网络结构,计算如下:其中, 为不同语义关系合并后得到的最终关系矩阵;Ψ表示带有参数WΨ的图级注意力层,用于为每个交换矩阵分配不同的权重; 为语义关系P1的矩阵; 为语义关系P2的矩阵; 为语义关系Pm的矩阵;
步骤4.2、将 放入图卷积网络GCN中获取节点表示,计算如下:其中, 为语义视图下用户节点i的嵌入表示; 为归一化的关系矩阵;X是用户特征;W为权重参数;
所述步骤5的具体过程为:
将得到的三个视图下的用户节点的嵌入表示拼接在一起,并通过多层感知机得到节点最终的嵌入表示:其中,Zi为用户节点i的最终嵌入表示,该嵌入表示即为学习到的用户信息表示,然后根据用户的行为和属性信息进行个性化的推荐或者预测用户的喜好。