发布于 

Duplicate Bug Report Detection Using Dual-Channel Convolutional Neural Networks

  • 论文下载地址: 下载链接
  • 作者: Jianjun He, Ling Xu, Meng Yan, Xin Xia, Yan Lei
  • Affiliation: Chongqing University (重庆大学)
  • 发表: IProceedings of the 28th International Conference on Program Comprehension
  • 发表年份: 2020年
  • 关键词: duplicate bug report detection, bug tracking system, convolutional neural networks, dual-channel matrix, deep learning

摘要

本研究关注软件开发中的一个重要问题,即如何有效地检测和处理重复的Bug报告。Bug报告在开发过程中扮演着关键的角色,但由于不同报告人的表述差异,Bug跟踪系统中常常充斥着大量重复的报告。为解决这一问题,我们提出了一种基于双通道卷积神经网络(DC-CNN)的新方法。该方法首先使用Word2Vec模型将Bug报告文本转化为双通道矩阵,以捕捉文本之间的语义关系。然后,通过卷积神经网络模型对这些双通道矩阵进行训练和预测,以自动检测重复的Bug报告。我们在多个数据集上进行了实验,结果表明,我们的方法在重复Bug报告检测任务上取得了显著的性能提升,准确度、召回率、精确度和F1-Score等性能指标均表现出色。这一研究对提高Bug报告处理效率和软件开发质量具有重要意义。

创新点与借鉴点

创新点:

  1. 双通道矩阵表示法:该研究引入了双通道矩阵表示法,将Bug报告文本以一种结构化的方式表示出来,以捕捉文本之间的语义关系。这种方法的创新性在于结合了深度学习和自然语言处理技术,以更好地理解Bug报告之间的相似性。
  2. DC-CNN模型:研究提出了基于双通道卷积神经网络(DC-CNN)的新方法,用于处理Bug报告的重复性检测。DC-CNN模型具有一种独特的架构,能够有效地捕捉Bug报告之间的语义关系,这是先前研究中未曾使用的方法。
  3. 跨项目检测:该研究还考察了在跨项目检测设置下的方法效果,即是否可以从一个项目学习来构建检测模型并在其他项目中使用。这个创新点对于解决目标项目缺乏标记数据的情况具有重要意义。

借鉴点:

  1. 自然语言处理技术:该研究借鉴了自然语言处理领域的技术,特别是Word2Vec模型,用于将Bug报告文本转化为双通道矩阵。这种技术的借鉴有助于提高Bug报告的文本表示质量。
  2. 深度学习方法:研究借鉴了深度学习方法,特别是卷积神经网络(CNN),用于训练和预测Bug报告的重复性。这种方法的借鉴有助于提高模型性能和准确度。
  3. 性能指标:研究借鉴了传统的性能指标,如准确度、召回率、精确度和F1-Score,用于评估方法的有效性。这些指标的借鉴有助于进行客观的性能评估和比较。

实验

  1. 数据集收集与准备: 作者首先收集了多个Bug报告数据集,这些数据集包含了大量的Bug报告,其中一些是重复的。这些数据集来自不同的项目和领域,以确保方法的泛化性。数据集中包括结构化信息(如Bug ID、产品、平台等)以及Bug报告的文本描述。
  2. 文本预处理: Bug报告文本经过预处理,包括分词、去除停用词和标点符号等,以准备用于训练和测试模型的文本数据。
  3. 双通道矩阵表示: 作者使用Word2Vec模型将文本转化为20维的词向量,然后将每个Bug报告的词向量表示组合成双通道矩阵。这两个通道分别表示了不同方面的Bug报告信息,用于捕捉语义关系。
  4. DC-CNN模型: 提出了基于双通道卷积神经网络(DC-CNN)的模型,用于训练和预测Bug报告的重复性。该模型包括卷积层和全连接层,作者详细描述了模型的架构和超参数设置。
  5. 性能评估: 作者使用一系列性能指标来评估该方法的有效性,包括准确度、召回率、精确度和F1-Score。这些指标用于衡量模型的分类性能以及它在重复Bug报告检测任务上的表现。

总结

  • (1): 以往的研究采用了一些特征来表示Bug报告,但缺乏提取Bug报告之间语义关系的方法。该论文提出的方法借鉴自然语言处理领域的最新研究,提出了一种基于双通道卷积神经网络的重复Bug报告检测方法。该方法利用深度学习技术,将Bug报告转化为双通道矩阵表示,并通过卷积神经网络模型捕捉Bug报告之间的语义关系。
  • (2): 该论文提出的研究方法是使用双通道卷积神经网络模型来检测重复Bug报告。首先,采用Word2Vec模型将Bug报告中的文本进行预处理,并将其转化为二维矩阵。然后,将两个单通道矩阵拼接起来形成双通道矩阵,以表示Bug报告对。最后,使用卷积神经网络模型对这些Bug报告对进行训练和预测,以捕捉其相关的语义关系。