Page 125 - 《软件学报》2025年第12期
P. 125

5506                                                      软件学报  2025  年第  36  卷第  12  期



                         表 4 传统深度学习模型和使用          VulFewShot 框架训练的模型在     MVD  和  MVD-part 数据集上
                                                    各项性能指标表现 (%)

                                                    MVD                             MVD-part
                  模型框架       模型名称
                                       M_F1  W_F1  Mean_L Mean_M Mean_S  M_F1  W_F1  Mean_L Mean_M Mean_S
                              CNN      97.582 99.493  99.182  98.982  94.797  96.818 97.910  97.920  98.594  94.145
                              BiGRU    96.694 99.348  99.006  98.463  92.904  92.579 95.410  96.090  94.412  87.616
                  传统模型
                             BiLSTM    95.957 99.317  99.026  98.528  90.721  91.493 94.572  95.380  93.739  85.797
                           Atten-BiLSTM 97.621 99.487  99.169  98.797  95.092  93.960 95.537  95.925  96.329  89.936
                              CNN      97.788 99.512  99.121  99.262  95.180  97.296 97.920  97.760  99.336  94.970
                              BiGRU    97.658 99.335  98.955  98.589  95.590  95.348 96.411  96.745  95.561  93.853
                  VulFewShot
                             BiLSTM    97.585 99.395  98.977  98.856  95.111  94.346 95.142  95.360  95.344  92.478
                           Atten-BiLSTM 98.156 99.520  99.175  99.315  96.133  97.296 97.815  97.763  98.372  95.863

                    一方面, 虽然与     CNN  模型相比整体性能提升并不明显, 但与其他             3  种模型相比性能提升的表现则较为突出.
                 通过表   4  中的性能指标, 我们可以发现       CNN  在所有  4  种传统模型中的平均得分是最好的, 并且得分非常高, 所以
                 即使是轻微的改进也可以证明           VulFewShot 的优秀.
                    另一方面, 传统深度学习模型在           MVD-part 上的平均性能比     MVD  差  3.25%, VulFewShot 将这一差距缩小到
                 1.73%. 从第  2.2  节可知, MVD-part 在少样本漏洞类型的评价标准上优于           MVD, 因为  MVD  中不同漏洞类型样本
                 数量的不平衡会影响传统深度学习模型的学习过程, 与控制变量的原则相悖. 因此, 我们可以得出结论, VulFewShot
                 在少样本漏洞类型的分类上比传统的深度学习模型表现得更好.
                    从交叉实验结果中的数据分布也可以看出, 使用                VulFewShot 框架训练的模型具有更好的泛化能力, 这意味着
                 它们在多个实验中具有更稳定的性能.
                    综上所述, 根据评估指标的结果, 使用           VulFewShot 框架训练的模型优于传统深度学习模型, 在             MVD-part 数
                 据集上的优势更为明显.
                  4.3.2    RQ4
                    为了更好地展示传统深度学习模型和使用                VulFewShot 框架训练的模型在不同漏洞类型尺度上的性能比较,
                 用箱形图展示了每个模型在         MVD  和  MVD-part 上的性能, 如图  8 所示. 其中, CE  表示采用交叉熵损失而       CE+SupCon
                 表示结合交叉熵损失和对比学习损失. 我们在图               8  中可以看到的是本文的框架带来的不同漏洞类型规模上的性能
                 提升, 尤其是在少样本类型的漏洞上的提升是不可否认的. 同时, 本文的框架减少了从大规模漏洞类型到小规模漏
                 洞类型的性能下降程度.
                    具体而言, 对于小规模类型的平均             M_F1  分数, VulFewShot 相比于  CNN、BiGRU、BiLSTM      和  Atten-
                 BiLSTM  在  MVD  上提高分别为   0.383%、2.686%、4.390%  和  1.041%, 在  MVD-part 上分别提高  0.825%、6.237%、
                 6.681%  和  5.927%. 对于中等规模类型的平均     M_F1  分数, VulFewShot 相比于  CNN、BiGRU、BiLSTM   和  Atten-
                 BiLSTM  在  MVD  上提高了  0.126%–0.518%, 在  MVD-part 上提高了  0.742%–2.043%. 对于大规模类型的平均   M_F1
                 分数, VulFewShot 与  4  种传统模型在两个数据集上的比较实验中, 8           例中有   5  例性能略有下降    (0.020%–0.160%).
                 在其他   3  个案例中, 性能略有提升      (0.006%–1.838%). 在  CNN  上的改善效果比在其他模型上的改善效果少得多的
                 原因是   CNN  的分数很高, 一点点的增加都是有价值的. 可以看到在               MVD  和  MVD-part 上  CNN  和  VulFewShot 的
                 结果差异在大规模到小规模漏洞类型上是稳定增加的, 符合结果预期, 因此可以认为在排除错误的影响下, VulFew-
                 Shot 在对少样本漏洞类型的分类上确实优于             CNN. 此外, 部分案例在大规模类型上略有下降的原因可能有两个:
                 一是模型在大规模类型上已经取得了很好的结果                  (MVD  为  99.006%–99.182%, MVD-part 为  95.380%–97.920%),
                 改进空间有限. 另一个原因是实验中的随机性和偶然性.
                    图  9  显示了  MVD  和  MVD-part 上模型的平均标准偏差     (STD) 值. 从图  9  中可以看出, 本文的框架提高了模型
                 的泛化能力, 并且在      MVD-part 数据集中的改进更为明显. 在比较不同规模的漏洞类型时, 从大规模到小规模类型,
                 改进程度依次增加.
   120   121   122   123   124   125   126   127   128   129   130