基于可解释需求问题的需求分类模型改进

互联不一般哥 2024-03-13 06:34:03

引用

Han L, Zhou Q X, Li T. Improving Requirements Classification Models Based on Explainable Requirements Concerns[C]//2023 IEEE 31st International Requirements Engineering Conference Workshops (REW). IEEE, 2023: 95-101.

论文:https://ieeexplore.ieee.org/abstract/document/10260874/

摘要

需求分类是需求分析的一个重要步骤。最近的研究大多采用机器学习技术来实现需求分类的自动化。特别是,最先进的技术,如Transformer的双向编码器表示(BERT),显著提高了分类任务的准确性。然而,这些模型大多被认为是黑盒模型,因此分类的基本原理不清楚,影响了分类模型的改进。在本文中,我们提出了一种基于可解释人工智能(XAI)框架的改进需求分类模型的技术。具体来说,我们提出的方法首先训练一个关注点提取模型来识别需求关注点。然后,使用可解释性框架分析需求分类模型以生成解释。最后,我们对训练数据集进行了去噪,并对模型进行了微调,以提高训练效率。实验结果表明,我们的方法显著提高了模型的性能。具体来说,准确度提高了7.68%,其中召回率提高了7.44%,F1分数总体提高了7.80%。

1 引言

需求分类是需求分析的一个关键步骤,它涉及到根据不同的需求的特征和属性对其进行分类。这个过程有助于识别需求的关键特征,并确定如何有效地解决这些特征。近年来,机器学习技术已被用于自动化需求分类过程。这些技术为分析大量需求数据提供了高效可靠的方法,从而显著提高了分类任务的准确性。

最近的研究证明,在需求分类中使用BERT是非常有效的。研究人员报告称,与传统的机器学习模型相比,使用BERT时的不准确性有了显著改善。BERT也被证明在处理有噪声和非结构化数据时更具鲁棒性,使其成为现实场景中需求分类的一种有价值的工具。机器学习技术,尤其是BERT通过提供高效准确的方法来分析大量需求数据,彻底改变了需求分类。随着对高质量软件产品的需求不断增加,对自动化需求分类的需求将变得更加关键,而像BERT这样的机器学习技术无疑将在满足这一需求方面发挥重要作用。

尽管BERT等机器学习技术显著提高了需求分类的准确性,但它们仍然带来了重大挑战。一个主要的挑战是,这些模型大多被认为是黑匣子模型。人类经常发现他们的内在推理机制难以解释和理解。因此,确定导致模型精度低的因素或在出现问题时解决问题可能是一项挑战。另一个挑战是,导致模型准确性低的因素可能是模糊或不清楚的。在某些情况下,由于语言使用的差异或其他细微差别,模型可能需要帮助来捕捉特定需求的关键特征。用于训练模型的训练数据的质量也会影响其准确性。低质量或有噪声的数据可能导致模型输出中的错误和不一致。

我们提出了一种基于可解释人工智能(XAI)框架的新技术,以解决与需求分类模型相关的挑战。我们首先训练一个相关提取模型来识别需求的关注点,并使用可解释性框架对模型进行分析,以更好地了解其内部推理机制。这种分析使我们能够确定模型可能存在困难的领域,并进行改进以提高其性能。我们对原始数据集进行去噪,以消除可能影响模型准确性的任何不一致或错误。这一步骤对于确保在高质量数据上训练模型至关重要,因为高质量数据会显著影响其整体性能。最后,我们使用去噪后的数据集对原始模型进行微调,以进一步提高其准确性和性能。

为了验证我们提出的技术的有效性,我们使用现有的需求分类方法进行了实验。具体来说,我们在一个广泛使用的BERT模型上评估了我们的方法的性能。实验结果表明,我们提出的技术显著提高了需求分类模型的性能。总的来说,我们的实验结果表明我们提出的技术为解决与需求分类模型相关的挑战提供了一个很有前途的解决方案。通过结合XAI技术和优化模型训练过程,我们显著提高了模型的性能,并为其决策过程提供了更透明和可解释的见解。

技术介绍--基于可解释性的模型变革

在以前的文本分析工作中,朴素贝叶斯、SVM和K-NN等方法由于其在推理过程中的简单性而被频繁使用。朴素贝叶斯是一种基于贝叶斯定理的机器学习技术。SVM是一种有监督的机器学习算法,它应用非概率方法来解决分类问题。同时,K-NN是一种基于实例的学习算法,通过将未知样本与K-近邻进行比较来确定未知样本的类别。

然而,随着深度学习的发展,出现了更精确的方法,包括LSTM和transformers。这些算法可以捕捉序列中复杂和长期的依赖关系,使其在文本生成、情感分析和机器翻译等任务中有效。

尽管这些先进的技术被用来更准确地理解文本,但它们往往是以不可理解为代价的。像深度神经网络这样的黑盒模型缺乏清晰的透明度和推理能力,这使得人们很难理解它们是如何得出预测的。作为模型开发中最重要的部分,模型调试的方法通常是决定性的。标准的模型调试方法包括使用交叉验证优化模型性能、调整参数和结构、增加训练数据集等。它们可以有效地提高模型的预测能力和泛化能力。然而,传统的模型调试方法对模型的推理过程理解不深,难以解释。

为了更好地理解模型预测的过程,可解释性方法可以以人类可读的方式表达模型如何进行预测。这些方法包括使用局部可解释性技术(如LIME、SHAP等)来解释个体预测的因果关系,以及使用全局可解释性方法(如神经网络可视化、规则提取等)来大致了解整个模型的行为和预测逻辑。这些方法可以帮助我们更好地了解模型的行为,增强对模型的信任,并可以用来发现模型中的漏洞和改进设置。因此,理解和使用可解释性方法对模型开发、提高模型的可靠性和预测能力至关重要。

我们提出一个能对需求分类模型改进的框架。整个流程如下图:

图1:改进需求分类模型的框架:工作总流程

A.提取需求的关注点

我们训练一个关注点提取模型,以找出哪些词对需求分类(即关注点)是决定性的。具体来说,我们对PROMISE NFR数据集进行了注释,并使用了BERT来训练我们的模型。结果,模型可以接收一个需求文本作为输入,并生成一组与文本相关联的约束作为输出。

1) 数据集:为了促进我们的注释过程,我们利用PROMISE NFR数据集,这是研究界公认的广泛使用的资源。该数据集包括625个例子,作为该领域各种研究的有价值的基准。在这个数据集中,有625个不同的需求,每个需求都可以分为功能性或非功能性。具体来说,255个需求是功能性的,代表了系统的预期行为和行动。另一方面,数据表还包括370个非功能性需求,这些需求获取了系统所需的质量、约束和性能方面。数据集分为三个不同的方面:功能、数据和行为。这种分类方案有助于系统地分析和理解需求,使研究和开发工作更加明智。

2) 注释问题数据集:基于PROMISE NFR数据集,我们从需求文本中进行了关键字提取。我们将性能要求、特定质量要求和约束条件视为非功能要求类别的一部分。例如,为了注释要求文本,“系统应每60秒刷新一次显示。”。“刷新显示器”映射了功能方面,“每60秒”映射了时间界限——所以我们将这些单词注释为关注点。

注释器使用doccano注释工具来说明需求文本,并将结果注释导出为JSON文件。我们已在以下链接中提供了代码和数据集。为了确保注释的准确性和一致性,注释过程涉及两名注释人员,他们共同审查并注释了100个示例,以就标记达成共识。随后,他们独立地随机注释了其余525个例子。我们使用kappa统计量来计算注释者之间的一致性,结果为0.7261,表明注释者之间有更高的一致性水平。这一联合努力进一步加强了结果注释的可靠性和一致性。

3) 训练提取模型:考虑到基于Transformer的BERT模型所取得的显著优势,该模型在不同的领域和任务中始终表现出卓越的性能,我们选择对BERT模型进行微调,专门用于从需求文本中提取关注点。通过微调这个强大的模型,我们可以利用其先进的功能,优化其性能,以执行我们的特定数据提取任务。

为了训练我们的关注点提取模型,我们使用了周等人[19]从他们之前的工作中开发的代码。我们针对我们的特定任务重新使用并微调了他们的代码。我们使用10倍交叉验证技术评估了模型的性能,该技术包括将数据集划分为几个子集。这种方法使我们能够在不同的子集组合上迭代训练和测试模型,确保对其有效性和泛化能力进行全面评估。

为了获得高性能的提取模型,我们使用精度(p)、召回率(r)和F1分数来评估我们的模型指标。该模型表现出优异的性能,平均精度为0.88212,表明其能够从需求文本中准确识别问题。0.95512的召回率表示该模型能够捕获文本中很大一部分真实关注点。此外,0.91717的F1分数反映了准确性和召回率的平衡组合,证实了该模型在从需求文本中提取问题方面的总体有效性。这些结果验证了该模型的性能和适用性。

B.需求分类模型的变革

我们提出了一种噪声检测技术来揭示需求分类模型推理过程中存在的问题。具体来说,我们使用SHAP作为解释方法来生成解释。将它们与关注点提取模型的提取结果相结合来识别噪声。最后,通过去除噪声生成新的数据集,并对原始分类模型进行微调以提高模型性能。

1) 生成解释:我们的研究采用了广泛使用的可解释性方法SHAP(Shapley Additive Explanations),为我们的模型的预测生成解释。SHAP为每个特征提供了一个基本值,表示其对特定预测的贡献。通过分析这些关键值,我们可以深入了解哪些特征是真正重要的,以及它们如何影响模型。这有助于我们理解模型认为重要的因素及其预测背后的原因。SHAP已被证明是解释和解释机器学习模型内部工作的有效工具。

2) 识别噪声:在我们的解释分析中,我们观察到每个特征的重要性可以是正的,也可以是负的,这表明了它对当前分类的影响的方向和大小。重要性得分的绝对值反映了特定特征对模型决策过程的重要性和影响。越大的绝对值表示影响越大,并表明其在分类任务上特征的重要性越高。我们认为(1/N)上的绝对值是重要的。N是需求文本中包含的字数。

然后,我们使用经过训练的提取模型从需求文本中提取关注点。如果由其高绝对值重要性分数确定的重要特征与提取的任何关注点都不一致,我们认为它可能具有噪声。

例如,需求文档:“系统应每60秒刷新一次显示器。”是一项非功能性要求。我们从文本中提取出关切。结果显示,“刷新”、“显示”和“每60秒”是令人担忧的问题。SHAP用于生成解释,单词的重要性如表I所示。下面的单词的重要性超过阈值,被视为重要单词。但“应该”不是一个问题(基于问题提取模型),并且被视为将在新数据集中删除的噪声。

3) 生成增强的数据集和模型进化:我们的方法在PROMISE NFR数据集中的所有样本上实现了噪声检测过程。我们通过识别和去除每个样本中的噪声特征来获得新的数据集。然后使用这个新数据集对原始分类器进行微调,以提高性能。为了进一步提高的我们方法的鲁棒性,这个过程可以应用于多次迭代。每次迭代都涉及到从以前的数据集中检测和去除噪声,从而产生具有改进的数据质量的新数据集。这种迭代方法允许我们生成多个数据集,每个数据集都有不同程度的去噪。我们把这个过程称为模型进化。

实验评估

A.实验问题

为了评估我们的方法,我们设计了三个研究问题。

RQ1:基于解释的模型进化是否会提高模型性能?

我们想知道这种模型进化技术是否可以提高需求分类模型的性能,在多大程度上,或者为什么没有性能提高。此外,我们希望通过进行一次迭代或几次迭代来了解改进的范围。

RQ2:使用关注点检测噪声的效用在多大程度上?

我们想知道关注是否有助于识别噪音,以及停止语是否可以取代它们。

RQ3:当应用于看不见的数据集时,进化模型在多大程度上展示了泛化能力?

我们想知道进化模型的通用化是否发生了变化,是否存在更拟合的现象。

B.数据集

在这项研究中,我们利用两个数据集来评估我们提出的方法的性能:PROMISE NFR和NFR_exp。(1) 第一个数据集PROMISE NFR由625个样本组成,包括255个功能性和370个非功能性需求。我们将此数据集命名为PROMISE NFR。(2) 第二个数据集,NFRexrp,包括344个样本,包括189个功能性需求和155个非功能性需求。我们的方法在两个数据集上都进行了测试,以评估其鲁棒性和可推广性。使用这些数据集可以全面评估我们提出的方法在不同需求集上的性能。表二给出了数据集的各个视图。

表2:数据集

C.实验集合和执行

为了回答RQ1,我们用第一个数据集(PROMISE NFR)作为基线。该模型将需求分为功能需求和非功能需求。

BERT(Transformers的双向编码器表示)是一种强大的预训练语言模型,用于从文本中获取上下文信息。它在各种自然语言理解任务中表现出了令人印象深刻的性能,展示了它在处理复杂语言处理挑战方面的有效性。BERT凭借其先进的体系结构和上下文表示学习,已成为自然语言处理中一种有价值的工具。我们使用BERT-base无约束模型来训练需求分类器作为基线。

我们使用T4 GPU在Google Colab平台上对其进行训练。我们使用精度、召回率和F1得分指标来评估我们模型的性能。精度衡量识别相关问题的准确性,召回率评估模型捕捉真实问题的能力,F1评分评估总体有效性。这些指标提供了对我们模型准确性和完整性的全面理解。我们使用了10倍交叉验证方法来评估我们的模型的有效性。研究结果显示,平均精度为0.9076,召回率为0.9100,F1得分为0.9088。然后,我们在数据集和分类器上执行我们的方法。我们总共进行了三次模型演进。结果如表3所示。

为了回答RQ2,我们比较了噪声和停止词列表,以确定它们的相似性。具体来说,我们的目的是调查噪声是否和顶部单词显著重叠。通过计算噪声中停止词的比例,我们得到了0.26032的结果。这一发现表明,停止词只构成数据集中存在的噪声的一小部分。因此,可以推断噪声包含了比停止词更广泛的元素。这一分析为噪声和停止词的不同性质提供了有价值的见解,强调了除了单纯依靠停止词去除之外,还需要专门的噪声检测技术。

为了回答RQ3,我们检查了第二个数据集(NFR_exp),以评估我们的技术中过拟合和泛化的潜在影响。在第一个数据集(PROMISE NFR)的基础上扩展了347个额外的需求文本样本。我们利用这些新样本来评估基线分类器和三个进化模型的可推广性。表3显示了这些模型在新增强的数据集上的性能结果。

D.结果

我们根据研究问题对模型进化技术进行了评估,并将在下面的评估结果中回答这些问题。

RQ1:基于解释的模型进化是否会提高模型性能?为了回答RQ1,我们训练了需求分类器作为基线,并使用该方法来评估性能改进。结果表明,该方法可将F1提高8%。我们的方法证明了它在对数据集进行去噪方面的有效性,并使模型能够专注于学习基本特征,从而提高分类模型的整体性能。

RQ2:使用关注点检测噪声的有效性在多大程度上?回答RQ2。通过比较噪声和兴趣点来评估其准确性和有用性。结果表明,噪声不仅包括停止词,还包括其他不相关或不确定的词。这一发现验证了我们的方法在正确识别和区分数据集中有意义信息的噪声方面的有效性。

RQ3:当应用于看不见的或外部的数据集时,进化模型在多大程度上证明了泛化能力?回答RQ3。我们进行了我们的方法,并在另一个数据集上全面评估了我们的噪声识别技术。我们在PROMISE NFR扩展数据集上评估了原始模型和三个进化模型。结果表明,我们的技术略微降低了模型的泛化性能,这可能是由于去噪生成的新数据与原始数据之间的高度相似性导致的过拟合。无论如何,我们的方法提供了一个进一步提高模型在同一数据集上性能的想法。

E.对有效性的威胁

在本节中,我们讨论了对我们的研究和实验设计有效性的可能威胁。

构造有效性:由于缺乏标记的需求文档,我们只使用PROMISE NFR数据集来训练关注点的提取模型。这种方法可能导致错误的噪声识别。此外,我们使用广泛使用的评估指标和固定的参数设置来确保实验的可生产性。

内部有效性:为了降低过拟合的风险,我们在基线分类器的训练过程中实施了早期停止方法。这项技术允许我们在单独的验证集上监控模型的性能,并在性能停止改进时停止训练。此外,我们通过随机分割数据集,分配90%用于训练,其余10%用于测试,确保了结果的可推广性。我们已经主动公开分享我们实验中使用的所有代码。通过提供这些资源,我们的目标是促进研究界对我们结果的复制和验证。

外部有效性:考虑到环境造成的差异,我们在Colab上进行了实验,并讨论了确保实验再现性的代码。此外,我们选择了广泛使用的BERT模型作为基线。

结论有效性:为了避免实验过程中可能出现的错误,我们使用了广泛使用的模型训练程序和数据集,并与多个参与者联合进行。

转述:肖媛

0 阅读:0

互联不一般哥

简介:感谢大家的关注