Page 149 - 《软件学报》2025年第5期
P. 149

邓文涛 等: 基于图神经网络的多粒度软件系统交互关系预测                                                    2049


                 量, 并用  λ i 表示节点.
                                              (       )
                    每个节点    λ i 的局部特征表示为    ˆ 0 ˆ 0  d n ×1   , 然后通过线性投影将预先计算的   k 维节点全局位置编码添加到
                                               h ∈ R
                                            h
                                             i  i
                        ˆ 0
                 节点特征   h  中:
                         i

                                                            0
                                                         0
                                                        λ = C λ i +c 0                                (3)
                                                         i
                                                            ˆ 0
                                                         0
                                                        h = h +λ 0                                    (4)
                                                         i   i  i
                      0   d×k                                             0  d                  ˆ 0  ˆ 0
                 其中, C ∈   R   为  d×k 维矩阵, d  为节点初始特征维度, k 为位置编码维度, c ∈     R  , 节点  λ i 的初始特征为   h  , 而  h  为
                                                                                                 i    i
                 节点  λ i 添加位置编码后的特征.

                 2.3   特征优化
                    通过拼接的方式融合局部和全局特征, 然后使用                Graph Transformer 对融合后的特征进行优化. 这种方法能够
                 充分利用融合特征中包含的局部和全局信息               [28] , 通过  Graph Transformer 的多头注意力机制, 模型能够在不同的子
                 空间中学习节点间的不同关系, 更精准地捕捉软件网络中复杂的交互模式, 从而提升模型的预测性能.
                    Graph Transformer 利用其动态归纳式的学习方法, 允许在学习过程中调整和更新图结构的特征表示, 从而优
                 化节点特征. 具体来说, 原有的静态方法, 例如           GCN  [32] 中节点的特征是通过聚合其邻居节点的特征得到的, 然后在
                 整个训练过程中保持不变, 这样的特征表示在一定程度上缺乏动态性, 难以适应图中节点关系的变化. 而                                  Graph
                 Transformer 采用动态归纳式学习方法, 其中节点的特征表示在学习过程中是动态更新的, 不是固定不变的. 这意
                 味着在模型的训练过程中, 节点的表示可以随着学习的进行不断优化调整, 更能适应图数据的复杂性和交互关系
                 的动态性, 学到的特征更具表示性和可解释性              [33] . 这种实时更新的机制也使得模型能够灵活地适应复杂软件系统
                 中不断变化的交互关系.
                    对于每一层模型      L  的节点更新方程:

                                                                    
                                                          H ∑        
                                                            
                                                   ˆ l+1  l     k,l  k,l l                        (5)
                                                   h
                                                                ij
                                                    i  = O ∥     w V h  
                                                         h
                                                                     j
                                                          k=1
                                                             j∈N i

                                                                     
                                                               k,l l  k,l l
                                                                 i
                                                   k,l        Q h · K h  
                                                                      j 
                                                             
                                                             
                                                   ij
                                                  w = Softmax j    √                              (6)
                                                                  d k
                          k,l
                       k,l
                             k,l
                      Q ,K ,V ∈ R d k ×d                           O ∈ R d×d   , k 表示注意力的数量, ||表示连接. 为了
                                                                    l
                 其中,                 分别表示查询向量、键向量和值向量,
                                                                    h
                 确保  Softmax 函数的计算稳定, 通常会对输入的指数函数进行限制, 使其在−5~+5                 之间. 这样可以避免指数函数输
                 入值过大或过小, 导致数值上溢或下溢的问题, 从而影响计算结果的准确性和稳定性. 然后, 将注意力输出隐藏层
                 节点特征   h ˆ l+1  传递给一个前向传播网络, 该网络上一层和下一层均是残差连接和归一化层:
                         i
                                                              (     )
                                                               l
                                                     h ˆ ˆ l+1  = Norm h +h ˆ l+1                     (7)
                                                      i        i  i
                                                               (    )
                                                    ˆ ˆ ˆ l+1  l  l ˆ ˆ l+1
                                                    h  = W ReLU W h                                   (8)
                                                     i    2      1 i

                                                             (      )
                                                    h l+1  = Norm h ˆ ˆ l+1  +h ˆ ˆ ˆ l+1             (9)
                                                     i        i    i
                                                   l
                                                            l
                           h
                 其中,   h ˆ ˆ l+1   和   ˆ ˆ ˆ l+1   表示中间的隐藏层, 其中  W ∈ R 2d×d   ,   W ∈ R d×2d   ,   h l+1  为节点的最终特征, 激活函数使用  ReLU, 归
                       i    i                      1        2       i
                 一化方法使用     LayerNorm.

                 2.4   交互关系预测
                    软件系统中元素交互关系预测可映射为图结构数据中的链路预测问题, 即一种有监督的二分类任务                                  [34] . 将网
                 络中存在的连边视为正样本          (即正边), 不存在的连边当作负样本          (即负边). 然后将这些边分为两部分, 一部分训练
                 集, 一部分测试集. 训练集和测试集中都包含正边和负边, 目的是使训练集上训练出的模型能够准确分类这两种
                 边, 最后再在测试集上验证效果, 以达到交互关系预测的目的.
                    在第  2.3  节中利用  Graph Transformer 对训练集中的节点进行了特征优化, 得到了节点的向量表示, 然后使用
   144   145   146   147   148   149   150   151   152   153   154