Page 244 - 《软件学报》2026年第2期
P. 244

于朋健 等: 面向节点分类的多层异质图神经网络                                                          723


                                                   1  l ∑   1  l ∑
                                                        (i)
                                                                      (i)
                    类似地, 可以获得替代品关系表征           H S =   H =      A S ∗X∗W . 最后将互补品关系表征矩阵        H C  和替代品
                                                                       s
                                                         s
                                                   l        l
                                                     i=1     i=1
                 关系表征矩阵     H S  进行串联, 得到融合后的节点表征        H SC = Concat(H S ,H C ).
                  3.4   对比学习
                    对比学习在各种图学习任务中展示了其优越性.受此启发, 本文使用对比学习协调局部和全局两个视图中学
                 习到的差异性特征和相似性特征, 来增强模型的表征学习能力, 从而最大限度地提高跨不同视图学习的节点表示
                 的一致性, 捕获节点之间的复杂关系, 从而得到更有效的节点嵌入, 提高节点分类任务的效果.
                    对比学习模块中, 在不同视图中将相同节点的表征视为正样本对, 不同节点的表征视为负样本对. 对差异性和
                 相似性视图节点表征       H UV  和  H SC  使用  InfoNCE [42] 得到下面的跨视图对比损失:

                                                          exp s H UV,i ,H SC,i /τ
                                                   ∑         ( (      )  )
                                              L cl = −  log∑                                         (13)
                                                              ( (       )  )
                                                           exp s H UV,j ,H SC,j /τ
                                                    i∈V
                                                         j∈V
                 其中,   H UV,i  和   H SC,i  表示第  i 个节点的差异性节点表征和相似性节点表征;   s(·,·) 表示余弦相似度函数;    τ 是可调节的
                 温度系数超参数, 用于调整        Softmax  的尺度. 对比学习使得局部和全局两个视图相互协作监督, 从而增强节点表征
                                                                                              H ∈ R N×d  :
                 学习. 最后, 模型聚合多关系局部信息和高阶全局语义信息, 通过平均池化操作获得最终的节点表示

                                                         1
                                                      H =  (H UV +H SC )                             (14)
                                                         2
                    这种加权方法能简单有效地平衡不同关系的重要性, 增强模型对节点特征的表达能力, 同时保持对全局语义
                 信息的敏感性, 从而使节点表示更具鲁棒性.
                  3.5   模型学习
                    根据节点分类任务的特点和要求, 本文采用半监督的学习范式来训练                        MHGNN, 使用反向传播和梯度下降通
                 过最小化交叉熵损失来优化模型参数.

                                                         ∑
                                                    L nc = −  Y i ×ln(C×H i )                        (15)
                                                         i∈V ids
                                                   i
                 其中,  V ids  是具有标签的节点索引集,    Y i  是第   个节点的标签,  C  是节点分类器参数. 模型在标签信息的指引下基于
                 反向传播和梯度下降训练模型中的参数, 最终得到网络中的节点表征并预测节点标签.
                    最后, 将半监督学习损失与对比学习损失相结合, 共同优化模型:

                                                                                                     (16)
                                                       L = L nc +γ×L cl
                 其中,  γ 是用于调整对比学习重要性的超参数. MHGNN             框架的具体算法如算法        1  所示.
                 算法  1. MHGNN  框架.


                 输入: 图  G, 特征矩阵  X, 嵌入维度   d, 卷积层数   l;
                 输出: 节点嵌入    H. /*用于下游的节点分类任务*/

                 1.   将属性多层异质网络解耦为同质网络和二部网络, 得到邻接矩阵                  {A r |r = 1,2,...,|R|}
                                           (l)
                                                         (l)
                 2.   学习各个子图下的节点表征:       H = σ( ˆ A r ∗H (l−1) ∗W )
                                           r        r    r
                         (  )
                           l
                                                             V
                 3.    H r = f H  ( H r  由用户嵌入矩阵  H U   和商品嵌入矩阵  H  组成) /*  f  表示串联操作*/
                           r                  r              r
                 4.   使用公式  (4) 计算语义融合系数    a r
                                             u
                 5.   for  i = 1 to  l do
                 6.    使用公式  (5)、公式  (6) 分别计算  h (l)   和  h (l)
                                                u   v
                 7.   end for
                              (l)
                           (l)
                 8.    H UV = f(h ,h ) /*串联操作*/
                           u  v
   239   240   241   242   243   244   245   246   247   248   249