[论文解读] DeepTriage: Exploring the Effectiveness of Deep Learning for Bug Triaging
本文提出 DeepTriage,一种基于注意力机制的深度双向循环神经网络(DBRNN-A),用于从标题和描述中学习错误报告的上下文和语义表示,其性能优于传统的词袋模型。该方法通过利用未标记的错误报告并支持迁移学习,在三个开源数据集上实现了更高的 rank-10 平均准确率,且已公开发布代码与数据以支持可复现性研究。
For a given software bug report, identifying an appropriate developer who could potentially fix the bug is the primary task of a bug triaging process. A bug title (summary) and a detailed description is present in most of the bug tracking systems. Automatic bug triaging algorithm can be formulated as a classification problem, with the bug title and description as the input, mapping it to one of the available developers (classes). The major challenge is that the bug description usually contains a combination of free unstructured text, code snippets, and stack trace making the input data noisy. The existing bag-of-words (BOW) feature models do not consider the syntactical and sequential word information available in the unstructured text. We propose a novel bug report representation algorithm using an attention based deep bidirectional recurrent neural network (DBRNN-A) model that learns a syntactic and semantic feature from long word sequences in an unsupervised manner. Instead of BOW features, the DBRNN-A based bug representation is then used for training the classifier. Using an attention mechanism enables the model to learn the context representation over a long word sequence, as in a bug report. To provide a large amount of data to learn the feature learning model, the unfixed bug reports (~70% bugs in an open source bug tracking system) are leveraged, which were completely ignored in the previous studies. Another contribution is to make this research reproducible by making the source code available and creating a public benchmark dataset of bug reports from three open source bug tracking system: Google Chromium (383,104 bug reports), Mozilla Core (314,388 bug reports), and Mozilla Firefox (162,307 bug reports). Experimentally we compare our approach with BOW model and machine learning approaches and observe that DBRNN-A provides a higher rank-10 average accuracy.
研究动机与目标
- 解决自动化分类中错误报告数据的噪声与非结构化问题,这些数据包含文本、代码和堆栈跟踪。
- 克服传统词袋模型忽略词序与语义关系的局限性。
- 开发一种基于深度学习的表示模型,以捕捉错误报告中的长距离句法与语义依赖关系。
- 通过利用未修复(未标记)的错误报告作为额外训练数据,实现无监督预训练,从而提升分类性能。
- 通过公开基准数据集与源代码,提升研究的可复现性,以支持错误分类研究。
提出的方法
- 采用带有注意力机制的深度双向循环神经网络(DBRNN),将完整的错误报告(标题 + 描述)编码为统一的、上下文感知的向量表示。
- 在大量未修复错误报告(占数据总量约 70%)上进行无监督预训练,以学习鲁棒且可泛化的特征,而无需依赖标签。
- 用 DBRNN-A 学习到的表示替代传统的词袋或 TF-IDF 特征,作为下游分类器的输入。
- 在学习到的表示上训练并评估多种分类器(Softmax、SVM、朴素贝叶斯与余弦距离),以评估性能表现。
- 通过微调在 Google Chromium 上预训练的 DBRNN-A 模型,将其应用于 Mozilla Core 与 Firefox 数据集的错误分类任务,实现迁移学习。
- 从三个开源项目(Google Chromium、Mozilla Core 和 Mozilla Firefox)构建一个公开的基准数据集,采用标准化的预处理与评估协议。
实验结果
研究问题
- RQ1与传统的词袋模型相比,带有注意力机制的深度双向 RNN 是否能学习到更有效且更鲁棒的错误报告表示?
- RQ2通过无监督预训练利用未标记(未修复)的错误报告,是否能显著提升分类模型的性能?
- RQ3所提出的 DBRNN-A 表示在不同软件项目间的泛化能力如何?这一能力通过迁移学习得到验证。
- RQ4与仅使用标题相比,包含完整错误描述在错误分类中的表现有何差异?
- RQ5所提出的特征表示是否可有效复用于其他软件维护任务(如错误推荐、缺陷预测等)?
主要发现
- 在所有三个数据集(Chromium、Mozilla Core 和 Firefox)上,DBRNN-A 模型搭配 Softmax 分类器的 rank-10 平均准确率均高于所有基线模型(BOW、SVM、朴素贝叶斯、余弦距离)。
- 仅使用错误报告标题进行分类导致性能显著下降,凸显完整描述在输入中至关重要。
- 在 Chromium 数据集上预训练的模型在 Mozilla 数据集上实现了具有竞争力的分类准确率,证明了强大的迁移学习能力。
- 利用未修复错误报告进行无监督预训练显著提升了最终分类性能,而这些数据在以往研究中常被忽略。
- 所提出的方法在文献中现有最先进方法之上表现更优,包括使用 tf-idf、n-gram 和集成方法的模型,在某些情况下 rank-10 准确率提升达 10 个百分点。
- 公开发布的基准数据集、代码与评估协议,实现了完全可复现性,并为未来自动化软件维护研究提供了支持。
更好的研究,从现在开始
从论文设计到论文写作,大幅缩短您的研究时间。
无需绑定信用卡
本解读由 AI 生成,并经人工编辑审核。