Page 153 - 《软件学报》2025年第5期
P. 153
邓文涛 等: 基于图神经网络的多粒度软件系统交互关系预测 2053
即真实为负, 但模型错误地预测为正的样本数量; FN 为假负例数, 表示模型错误地将正类别的样本预测为负类别,
即真实为正, 但模型错误地预测为负的样本数量; TN 为真负例数, 表示模型正确地预测了负类别的样本数量, 即真
实为负, 模型也预测为负的样本数量. P 表示正例数, N 表示负例数. ∆Recall k 表示召回率在不同阈值下的变化,
TP k 和 FP k 分别表示召回率变化时的真正例数和假正例数.
对于基准方法, 选择了 4 个图神经网络模型, 分别为 k-GNN、GCN、GAT 和 GraphSAGE, 各模型参数设置均
同表 2.
表 2 模型参数
特征方式 参数 参数值
node2vec参数p 0.25
局部特征 node2vec参数q 2
node2vec嵌入特征维度 64
拉普拉斯位置编码维度 64
全局特征
图拉普拉斯算子的标准化 Symmetric
特征融合方式 Concat
Graph Transformer层数 2
注意力机制数量 8
输入特征维度 64
隐藏层特征维度 1 024
特征优化
输出特征维度 64
训练周期 200
优化器 Adam
学习率 0.001
dropout 0.1
k-GNN [41] 是一种基于 k 近邻图的图神经网络模型, 通过构建节点的 k 近邻图, 利用这些邻居节点的特征来更
新中心节点的表示, 以此来捕获节点之间的局部结构信息. 由于软件系统的复杂性表现为局部变化和相互调用,
而 k-GNN 可以通过考虑节点的 k 近邻来适应这种复杂性, 利用邻居节点的特征来更新中心节点的表示, 使得模型
更能适应软件系统中节点之间的相对位置和关系, 因此该方法能够适用于本研究.
GCN [32] 利用卷积操作在图结构上进行信息传播. 通过聚合节点的邻居特征来更新每个节点的表示, 每一层的
更新都利用了当前节点的邻居信息, 并通过权重共享的方式进行信息的传递和特征的聚合. 在软件系统这样的高
维、复杂数据中, 参数共享能够有效地减少过拟合的风险, 使得 GCN 较为适合作为软件交互关系预测的基准
模型.
GAT [42] 是一种利用注意力机制来学习节点间交互的图神经网络模型. 它引入了注意力机制, 允许节点对邻居
节点赋予不同的注意力权重, 从而更加灵活、精细地聚合邻居节点的信息. 这种灵活性使 GAT 能够更好地捕捉软
件系统中复杂的交互模式. 通过对邻居节点的不同关注程度, GAT 可以考虑节点之间细粒度的交互关系, 从而能
够提高对软件交互关系预测的准确性.
[43]
GraphSAGE 是一种基于采样和聚合的图神经网络模型, 它利用采样邻居节点的方式来构建每个节点的邻
居特征集合, 并通过聚合函数 (如均值、最大值等) 来更新每个节点的表示. 这种采样和聚合的策略使得 GraphSAGE
能够在考虑大规模图结构时有效地提取节点的局部特征, 从而能够捕捉软件系统中的交互关系. 因此该模型适用
于软件系统中的交互关系预测.
此外, 还有一些有关软件交互关系预测的论文, 例如 GoGCN [38] , 不选择其作为基准方法的原因在于该方法不
具有通用性, 在更细粒度的特征提取上, 如方法粒度, 不能够再提取到更细粒度的图中图结构特征. 并不适用于本
文设计一种囊括了包、类和方法这 3 种粒度的版本内和跨版本的交互关系预测方法.