ARFT-Transformer:用于跨项目老化相关缺陷预测的度量依赖性建模

《Journal of Systems and Software》:ARFT-Transformer: Modeling metric dependencies for cross-project aging-related bug prediction

【字体: 时间:2026年02月11日 来源:Journal of Systems and Software 4.1

编辑推荐:

  软件系统长期运行易受软件老化影响,由老化相关bug(ARB)引发。传统跨项目ARB预测面临领域差异和数据稀缺挑战,现有方法忽略指标间关联且未有效处理类别不平衡。本文提出ARFT-Transformer框架,融合FT-Transformer的多头注意力机制捕捉指标关联,并采用Focal Loss解决类别不平衡问题,在三个大规模开源项目验证中显著提升预测性能。

  
葛顺宁|秦芳云|万晓辉|刘阳|戴倩|郑铮
首都师范大学信息工程学院,北京,中国

摘要

长期运行的软件系统常常会受到软件老化的困扰,这通常是由于老化相关错误(ARBs)引起的。为了在开发初期就降低ARBs的风险,软件老化研究中引入了ARBs预测方法。然而,由于收集ARBs的难度较大,项目内部的ARBs预测面临数据稀缺的挑战,因此提出了跨项目ARBs预测的方法。这一任务面临两个主要挑战:1)由于源项目和目标项目之间的分布差异导致的领域适应性问题;2)ARBs易发样本和ARBs免费样本之间的严重类别不平衡。尽管已经提出了多种跨项目ARBs预测方法,但现有方法通常独立处理输入指标,常常忽略了指标之间的复杂依赖关系,这可能导致信息重叠和指标重要性的误判,从而影响模型的性能。此外,它们在训练过程中通常使用交叉熵作为损失函数,无法区分样本分类的难度。为了克服这些限制,我们提出了ARFT-Transformer,这是一种基于Transformer的跨项目ARBs预测框架,它引入了指标级别的多头注意力机制来捕捉指标之间的交互,并结合了焦点损失函数(Focal Loss)来有效处理类别不平衡问题。在三个大规模开源项目上进行的实验表明,ARFT-Transformer在单源和多源情况下的平均性能均优于现有的跨项目ARBs预测方法,在平衡指标(Balance metric)上分别提高了29.54%和19.92%。

引言

软件系统通常是为长期运行而设计的,旨在提供稳定可靠的服务。然而,这样的长期运行的软件常常会面临软件老化的挑战(Huang等人,1995年)。通常认为,软件复兴是一种有效的策略,可以减轻软件老化的不利影响(Huang等人,1995年;Dohi等人,2020年;Castelli等人,2001年;Trivedi和Vaidyanathan,2007年),但它无法从根本上消除导致软件老化的老化相关错误(ARBs)。ARBs预测通过在软件开发的早期阶段提取指标,并利用机器学习技术构建预测器,能够及早识别出容易出错的区域,从而帮助消除ARBs,从根本上解决问题(Chouhan和Rathore,2021年;Zhang等人,2024年;Tian等人,2025年;Qin等人,2018年;Wan等人,2019年;Jia等人,2023年)。自Cotroneo等人于2013年首次开展ARBs预测研究以来(Cotroneo等人,2013b),ARBs预测已成为一个日益重要的研究热点。
然而,进行传统的项目内部ARBs预测(即使用目标项目的训练数据构建预测模型)是一项困难的任务。首先,由于长期错误积累导致的老化相关故障,收集相关数据集非常具有挑战性(Cotroneo等人,2014年;Grottke等人,2010年;Grottke等人,2008年)。其次,ARBs在总错误中所占比例很小(Cotroneo等人,2013a;Grottke等人,2010年;Grottke等人,2008年),需要分析大量的错误才能获得足够的老化相关训练样本。第三,对于处于初始开发阶段或没有历史错误数据的项目来说,进行预测更加困难。为了解决这些问题,研究人员提出了跨项目ARBs预测方法,即在目标项目中使用来自不同但相关项目的训练数据来完成ARBs预测任务。
尽管如此,跨项目ARBs预测仍然面临两个主要挑战。一方面,源项目和目标项目之间的分布差异对假设训练集和测试集具有相同分布的机器学习分类器的适应性构成了威胁。另一方面,ARBs易发样本和ARBs免费样本之间的严重类别不平衡会对分类器的性能产生负面影响。为了克服这两个挑战,研究人员结合了迁移学习和类别不平衡缓解技术提出了多种方法,例如TLAP与迁移组件分析(TCA)和随机过采样(Qin等人,2015年;Qin等人,2018年)、SRLA与自动编码器和随机过采样(ROS)(Wan等人,2019年)、JDA-ISDA与联合分布适应(JDA)和改进的子类判别分析(ISDA)(Xu等人,2020年)、JPKS与联合概率域适应(JPDA)和k均值SMOTE(KS)(Li等人,2021年)、KDK与核主成分分析(KPCA)、双重边缘化去噪自动编码器(DMDA)和K均值聚类清洗集成(KCE)(Xie等人,2023年)、BISP与平衡分布适应(BDA)和自适应采样集成(SPE)(Xu等人,2025年)。
虽然现有的跨项目ARBs预测方法在预测性能上取得了显著提升,但它们都是独立处理样本中的输入指标的。也就是说,没有考虑指标之间的潜在相关性。例如,较高的CountLineCode指标值通常伴随着较高的SumCyclomatic值。这种忽视相关性的做法可能导致高度相关指标之间的信息重叠,以及低估或高估某些指标的重要性,从而可能对预测模型的性能产生负面影响(Jiarpakdee等人,2018年;Tashtoush等人,2014年;Mamun等人,2017年)。表1使用Spearman等级相关测试(Spearman,1961年)列出了ARBs预测数据集中52个指标(1326个指标对)之间的相关性。从表中可以看出,三个数据集中91.86%、90.57%和83.94%的指标对显示出显著相关性(|ρ|?>?0.3,p?
此外,为了在模型训练期间缓解类别不平衡,以往的研究通常依赖于基本的采样策略,如随机过采样(Zhang等人,2024年)、SMOTE(Kumar和Sureka,2017年)、k均值SMOTE(Xie等人,2023年)、弱监督过采样(Zhou等人,2022年)和随机欠采样(Xu等人,2020年)来平衡ARBs易发样本和ARBs免费样本的数量。虽然这些技术有助于缓解类别不平衡,但它们可能不够充分,因为它们只能增加分类器对ARBs易发样本的关注。使用的标准交叉熵损失为同一类别的所有样本分配了相同的损失权重,而没有区分样本的难分类特性(Lin等人,2017年;Shrivastava等人,2016年;Wang等人,2019年)。结果,在同一类别中,大量容易分类的样本对总体损失贡献较大。由于ARBs预测中ARBs免费样本的数量较多,它们累积的损失往往主导了训练过程,从而抑制了对稀疏ARBs易发样本的学习。
在本文中,我们提出了ARFT-Transformer,这是一种基于FT-Transformer(Gorishniy等人,2021年)和焦点损失(Lin等人,2017年)的跨项目ARBs预测方法,考虑了指标相关性和样本分类难度。具体来说,ARFT-Transformer引入了基于FT-Transformer(Gorishniy等人,2021年)的指标级别多头注意力机制,动态捕捉指标之间的关系特征。每个指标都被转换为一个独特的表示向量,并使用最大均值差异(MMD)损失(Long等人,2015年)来对齐源数据和目标数据集之间的学习表示分布。为了应对模型训练期间类别不平衡的不利影响,同时使用ROS方法随机增加ARBs易发样本的数量,ARFT-Transformer设计了焦点损失函数(Lin等人,2017年)来处理难以分类的样本。
为了评估所提出方法的有效性,我们在ARB预测领域三个常见且广泛使用的数据集上进行了单源和多源实验,其中单源设置是指使用一个项目作为源项目来训练预测模型,多源设置是指结合多个项目作为源集来完成训练任务。我们将ARFT-Transformer在每种设置下的预测性能与几种最先进的方法进行了比较。此外,我们还设计了消融研究,以评估多头注意力(Vaswani等人,2017年)和焦点损失(Lin等人,2017年)作为ARFT-Transformer的两个关键组件的贡献。另外,我们还讨论了模型训练期间超参数选择的影响。
本文的贡献如下:
  • 我们提出了一种名为ARFT-Transformer的方法,这是一种通过多头注意力增强的神经网络框架,用于跨项目ARBs预测任务。据我们所知,这是第一个对ARB预测中的代码指标相关性进行建模的方法。
  • 我们引入了焦点损失(Focal Loss)和ROS,不仅更关注ARBs易发样本,还关注难以分类的样本,从而在模型训练期间缓解类别不平衡问题。
  • 我们在三个广泛使用的ARB预测项目中进行了单源和多源跨项目ARBs预测,以验证其有效性。结果表明,ARFT-Transformer在两种预测情况下都表现出良好的预测能力。
  • 本文的其余部分组织如下。第2节介绍背景。第3节介绍所提出的模型,第4节描述实验设置,第5节报告实验结果,第6节讨论超参数选择对模型性能的影响,第7节探讨了论文有效性的威胁,第8节介绍相关工作。

    节选

    背景

    在本节中,我们提供了关于软件错误预测的背景信息。
    软件错误预测是指利用代码复杂性、软件开发历史和开发人员等信息来预测哪些模块可能包含错误(Zhao等人,2023年;Wang等人,2018年;Hosseini等人,2017年;Nevendra和Singh,2022年)。根据研究的粒度,这里的模块可以代表软件包、源代码文件、类、函数或代码变更。
    软件错误预测的过程

    方法

    在本节中,我们介绍了用于跨项目ARB预测的ARFT-Transformer方法,旨在解决三个核心挑战:有效的ARB特征提取、跨项目领域适应以及预测模型训练期间的类别不平衡。我们首先介绍了ARFT-Transformer的总体框架,然后详细介绍了每个部分。

    实验设置

    本节详细介绍了实验设置,包括研究问题、数据集、训练和测试数据集设置以及模型评估标准。

    实验结果

    在本节中,我们将解决第1节提出的三个研究问题,并展示我们模型的实验结果和性能。

    敏感性分析

    在本节中,我们想讨论超参数选择对ARFT-Transformer性能的影响。它有两个关键超参数:FT-Transformer中的注意力头数m和焦点损失中的调节因子γ。我们改变这两个超参数,并在单源设置中测量六组指标对之间的预测性能变化。

    构建有效性的威胁

    构建有效性的威胁是指研究中使用的测量方法在多大程度上准确反映了所研究的理论概念,包括数据标注的质量和评估措施的适当性。根据以往的研究(Qin等人,2018年;Wan等人,2019年;Xu等人,2020年;Li等人,2021年;Xie等人,2023年),我们数据集中的错误报告被手动标记为ARBs易发或ARBs免费。根据原始论文,标注工作是

    相关工作

    在本节中,我们回顾了ARB预测的相关工作。
    自从(Cotroneo等人,2010年)指出了代码大小指标、Halstead代码指标和软件老化之间的关系,并提出了六个与老化相关的指标与其他静态指标结合用于ARB预测(Cotroneo等人,2013b)以来,ARB预测受到了广泛关注。一些研究专注于项目内部的ARB预测,其中训练和测试数据集来自同一个项目

    结论与未来工作

    在本文中,我们提出了一种名为ARFT-Transformer的跨项目ARB预测方法,该方法考虑了指标之间的关系,并通过FT-Transformer动态降低分类良好的样本的权重,同时利用焦点损失(Focal Loss)将模型的学习重点放在难分类的样本上。为了验证该方法的有效性,我们在三个广泛使用的数据集上进行了单源和多源实验,并将其结果与最先进的方法进行了比较。实验结果

    CRediT作者贡献声明

    葛顺宁:撰写 – 审稿与编辑,撰写 – 原稿,软件,资源,方法论,调查,数据整理,概念化。秦芳云:撰写 – 审稿与编辑,撰写 – 原稿,监督,资源获取,数据整理。万晓辉:撰写 – 审稿与编辑,监督。刘阳:撰写 – 审稿与编辑。戴倩:撰写 – 审稿与编辑。郑铮:撰写 – 审稿与编辑,监督,资金获取。

    利益冲突声明

    作者声明他们没有已知的财务利益或个人关系可能会影响本文报告的工作。
    相关新闻
    生物通微信公众号
    微信
    新浪微博
    • 搜索
    • 国际
    • 国内
    • 人物
    • 产业
    • 热点
    • 科普

    热点排行

      今日动态 | 人才市场 | 新技术专栏 | 中国科学人 | 云展台 | BioHot | 云讲堂直播 | 会展中心 | 特价专栏 | 技术快讯 | 免费试用

      版权所有 生物通

      Copyright© eBiotrade.com, All Rights Reserved

      联系信箱:

      粤ICP备09063491号